Датчик света slide

Датчик света

Описание Датчик света

 

В этом примере мы попробуем управлять светодиодом, используя фоторезистор в качестве датчика освещенности.

Немного теории.

Резистивный делитель.

При проектировании электрических цепей возникают случаи, когда необходимо уменьшить величину напряжения (разделить его на несколько частей) и только часть подавать на нагрузку. Для этих целей используют делители напряжения.

Входное напряжение и выходное такого делителя связаны коэффициентом передачи. Ниже на рисунках приведены примеры зависимости выходного напряжения от соотношения сопротивлений в делителе.

Резистивный делитель Arduino


Резисторы R1 - 360 Ом, R2 - 10 кОм.
 

Работа датчика основана на свойстве фоторезистора изменять величину своего сопротивления в зависимости от степени освещенности.
В отсутствии освещения величина сопротивления фоторезистора составляет 10 Ком.
А при освещении ярким солнечным светом или обычной лампочкой сопротивление фоторезистора уменьшиться в 10-20 раз.

Соответственно на средней точке между фоторезистором и резистором R2 согласно правилу резистивного делителя будет изменяться напряжение.  Так же эта средняя точка подключена к контакту A0 платы Ардуино. А0 – это аналоговый вход платы, который «умеет» измерять напряжение от 0 вольт до 5 Воль и преобразовывать измеренные величины в цифровой код  со значением  0-1024.
 

Пример 1

 int led = 9; //Устанавливаем переменную для светодиода

 int liht = 0; // Устанавливаем переменную для фоторезистора

 void setup()

{

pinMode(led, OUTPUT);

}

void loop()

{

if (analogRead(light) < 800) digitalWrite(led, HIGH);

 // 800 – это значение в пределах 0 – 1024. Т.е  Ардуино измеряет напряжение на контакте //А0, преобразовывает его в цифровое значение. И, если это значение меньше значения //900, то светодиод включается.

 else digitalWrite(led, LOW); //иначе  светодиод выключаем

 }

 

Для примера можно изменить границу (значение от 0 до 1023) срабатывания датчика.

Так же можно изменить алгоритм работы датчика. Т.е, что бы при значениях ниже 900 светодиод включался

 

  Пример 2

 /*Так же, как в предыдущем примере устанавливаем переменные для фоторезистора и светодиода
*/
//Подключаем фоторезистор
int lightPin = 0;
 
int ledPin = 9;   // в данном примере светодиод обязательно долен быть подключен к //контакам 3,5,6,9,10,11.  Это контакты, которые могут работать в режиме ШИМ.
 
void setup()
{
  pinMode(ledPin, OUTPUT); // устанавливаем контакт светодиода, как выход
}
 
void loop()
{
 int lightLevel = analogRead(lightPin);
                                       
 lightLevel = map(lightLevel, 0, 900, 0, 255);
 
 lightLevel = constrain(lightLevel, 0, 255);
                                          
 analogWrite(ledPin, lightLevel); 
}

 




Arduino фоторезистор





Другие проекты