Під’єднання фоторезистора

 Даний приклад демонструє підключення фоторезистора для керування світлодіодом для створення аналога нічника. Опір фоторезистора залежить від інтенсивності світла, що падає на нього, тому при зменшенні освітленості світлодіод буде горіти яскраво, а при яскравому світлі відключатися.

Необхідні компоненти

  • Плата Arduino ;
  • Макетна плата;
  • Резистор на 220 Ом ;
  • Резистор на 10 кОм ;
  • Фоторезистор з номінальним опором 200кОм ;
  • Один червоний світлодіод;
  • Провід-перемички;

Схема

З'єднайте 9 -ий цифровий висновок Arduino з одним із висновків 220 Ом -ного резистора, інший висновок цього резистора з'єднайте з анодом світлодіода (довга ніжка), а катод світлодіода із землею (контакт GND на платі Arduino ). Контакт 5V плати Arduino з'єднайте з одним із висновків фоторезистора, а інший висновок з'єднайте з 0 -им аналоговим контактом Arduino і з одним з висновків 10кОм- го резистора, інший висновок резистора з'єднайте із землею (контакт GND на платі Arduino ).

Резистивний дільник напруги складається із двох резисторів, від співвідношення опорів залежить вихідна напруга. В даному прикладі один з резисторів змінний (фоторезистор, на номінальний опір в 200кОм , тобто при повній темряві опір фоторезистора дорівнює номінальному, а при яскравому світлі падати майже до нуля), тому ми можемо отримати зміну напруги. Інший резистор визначає чутливість. Якщо використовувати підстроювальний резистор, то можна зробити чутливість, що настроюється.

Фоторезистор arduino uno 1 bb.png

Від того, де розташований фоторезистор і номінал постійного резистора в схемі дільника напруги, залежить масштаб і точність показань. Змініть схему та подивіться через монітор порту (для цього можете завантажити код з розділу "Код для коригування параметрів" , розташований нижче) як змінюються показання.

Фоторезистор arduino uno 2 bb.png

У моніторі порту в першому та в другому випадку ви побачите, що не отримаєте весь діапазон значень (від 0 до 1023), тому що опір фоторезистора ніколи не буде рівним нулю. Але ви зможете визначити мінімальне (MIN_LIGHT) та максимальне (MAX_LIGHT) значення освітленості (значення залежать від умов освітленості, значення постійного резистора та характеристик фоторезистора) для побудови нашого "нічника".

Код

Завантажте скетч, наведений нижче, у плату Arduino .

#define RLED 9                                          //Червоний світлодіод підключаємо до 9-го цифрового контакту з підтримкою ШІМ
#define LIGHT 0                                          //Фоторезистор підключаємо до 0-го аналогового контакту
#define MIN_LIGHT 200                                        //Мінімальне значення освітленості
#define MAX_LIGHT 900                                        //Максимальне значення освітленості

int val = 0 ; //Змінна для зберігання значення, що зчитується з датчика                                                   

недійсне налаштування () 
{
  pinMode ( RLED , OUTPUT ); //Встановлюємо 9 висновок як вихід                                     
}

порожній цикл () 
{
  val = analogRead ( LIGHT ); //зчитуємо значення з аналогового входу                                    
  val = map ( val , MIN_LIGHT , MAX_LIGHT , 255 , 0 ); //перетворюємо діапазон зчитуваних значень                   
  val = constrain ( val , 0 , 255 ); //"визначаємо" області допустимих значень                                 
  analogWrite ( RLED , val ); //Керуємо світлодіодом                                    
}
  • Примітка: У цьому прикладі використовується фоторезистор з номінальним опором 200кОм . Якщо у вас фоторезистор на інший номінал, можливо, вам доведеться змінити мінімальне (MIN_LIGHT) і максимальне (MAX_LIGHT) значення освітленості.

Код для налаштування параметрів

Якщо у вас фоторезистор на інший номінал, можливо, вам доведеться підкоригувати мінімальне (MIN_LIGHT) і максимальне (MAX_LIGHT) значення освітленості. Для цього додайте два рядки коду (виділені кольором). І визначте мінімальне (MIN_LIGHT) та максимальне (MAX_LIGHT) значення освітленості, перекриваючи (і навпаки відкриваючи) рукою доступ до світла для фоторезистора та спостерігаючи за змінами значень за допомогою монітора послідовного порту. Після коригування ви можете закоментувати додані рядки коду.

#define RLED 9                                          //Червоний світлодіод підключаємо до 9-го цифровим контактом з підтримкою ШІМ
#define LIGHT 0                                          //Фоторезистор підключаємо до 0-го аналогового контакту
#define MIN_LIGHT 200                                        //Мінімальне значення освітленості
#define MAX_LIGHT 900                                        //Максимальне значення освітленості

int val = 0 ; //Змінна для зберігання значення, що зчитується з датчика                                                   

недійсне налаштування () 
{
  pinMode ( RLED , OUTPUT ); //Встановлюємо 9 висновок як вихід                                     
  Serial . begin ( 9600 ); //Конфігуруємо послідовне з'єднання на швидкості 9600 бод                                       
}

порожній цикл () 
{
  val = analogRead ( LIGHT ); //зчитуємо значення з аналогового входу                                    
  Serial . println ( val ); //Виводимо лічені значення з датчика по послідовному з'єднанню                                      
  val = map ( val , MIN_LIGHT , MAX_LIGHT , 255 , 0 ); //перетворюємо діапазон зчитуваних значень                   
  val = constrain ( val , 0 , 255 ); //"визначаємо" області допустимих значень                                 
  analogWrite ( RLED , val ); //Керуємо світлодіодом                                    
}

Немає коментарів:

Дописати коментар