Ноћно светло – Ардуино пројекат

Време тече, а како тече успео сам да себе натерам да направим овај видео туторијал за Ардуино. Овог пута тема је коло које на основу осветљености собе укључује или искључује ноћно светло. Згодна је ово ствар, поготово када су у кући мала деца, па је неопходно да светло буде упаљено у сваком тренутку. Наравно, постоји и модификација овог кола, како би оно могло да се користи за рецимо уличну расвету. Позитивне стране оваквог пројекта можемо лако сагледати и набројати.

Ноћно светло – видео туторијал

Потребне компоненте

Овај пројекат спада у једноставније, зато се врло лако изводи и не одузима пуно времена. Од компоненти, потребно је 2 отпорника. Вредности отпорности су 220Ω за заштиту ЛЕД диоде и 10kΩ. Дужан сам и једно појашњење, на електричној шеми приказан је 1 отпорник, док се на реалном колу виде 2 отпорника везана редно. За отпорност од 10kΩ морао сам да вежем два отпорника од 5kΩ, такве имам на располагању. Потом ЛЕД (плаве боје, мада може и било које друге), фотоотпорник, краткоспојници и тест плоча.

Шема кола

Night light Arduino project – scheme

Принцип рада кола

Ситуација у којој се примењује оваква врста пројекта већ је поменута у уводном делу. Уколико из било ког разлога постоји потреба да се светло држи упаљеним у условима смањене осветљености (нпр. подрумске просторије, спаваћа или радна соба, улично осветљење…) потребан нам је овај склоп. Новина у овом пројекту је примена фотоотпорника којим ћемо мерити осветљеност просторије (у овом случају игра улогу сензора). Уколико је ниска осветљеност просторије, коло ће укључити ЛЕД, у супротном ће ЛЕД бити искључен. Мерење се врши константно.

Ардуино може да мери само напонске сигнале, тако да отпорност која се развија на фотоотпорнику се мора превести у напон. Како би добили информацију о осветљености формиран је напонски разделник који чине редно везани фотоотпорник и отпорник од 10kΩ (такође овај отпорник штишти Ардуино). Средњи извод овог разделника (тачка између фотоотпорника и отпорника) се води на улаз А0 Ардуина. Напон који се развија на фотоотпорнику зависи од отпорности, а отпорност од осветљености просторије. У зависности од тог напона, шаље се одговарајући сигнал на пин 13. На аноду ЛЕДа прикључујемо пин 13 Ардуина, катода је повезана преко „-“ краја на тест плочи са уземљењем Ардуина. Са пина 13 слаћемо сигнал „укључи“ или „искључи“ у зависности од информације о осветљености просторије.

Фотоотпорник

Фотоотпорник је компонента која омогућава да осветљеност просторије претвара у отпорност. Отпорност је обрнуто пропорционална осветљености, у преводу што је већа осветљеност то је отпорност мања и обратно и изражава се у kΩ.

Образац који важи за рачунање отпорности је:

R = 500 / L

У условима слабе осветљености, односно мрака, вредност осветљености собе је око 50lx, па је и вредност отпорности фотоотпорника око 10kΩ (зато нам је потребан отпорник или отпорници од 10kΩ).

Скица

#define led 13
#define sensor A0

void setup()
{
  pinMode(sensor, INPUT);
  pinMode(led, OUTPUT);
}

void loop()
{
  if (analogRead(sensor) <= 300) {
    digitalWrite(led, HIGH);
  } else {
    digitalWrite(led, LOW);
  }
  delay(500);
}

Објашњење скице

Одељак дефиниција

У одељку дефиниција дефинишемо две константе light и sensor. Константа light има вредност 13 и представља информацију о пину који користимо за управљање ЛЕД диодом. Док константа sensor има вредност А0 и представља улазни пин у Ардуино на који стиже информација о осветљености собе.

Одељак конфигурације

Light константа са вредношћу 13 дефинише као излаз, док се константа sensor дефинише као улаз помоћу функције pinMode. Ова функција има два аргумента, први је пин који подешавамо, а други је режим рада, дакле улаз (INPUT) или излаз (OUTPUT). Други аргумент се мора написати великим словима!

Одељак петље

Врши се мерење и у зависности од вредности мерења (у овом случају испитујемо да ли је осветљеност мања или већа од 300lx) на излаз дефинисан константом light шаљемо сигнал укљући (HIGH) ili искључи (LOW). Вредност осветљености просторије добијамо помоћу функције analogRead(sensor). Дословно се може прочитати као очитај вредност са аналогног улаза дефинисаног константом sensor. Помоћу функције digitalWrite на излаз дефинисан константом light шаљемо сигнал HIGH или LOW у зависности од испуњености услова у блоку гранања.

Идеје за унапређење пројекта

За крај ево неких идеја за унапређење овог пројекта. Поред мерења осветљености собе, могу се додати сензор покрета, сензор звука, можда и инфрацрвени сензор. Сензор покрета би омогућио информацију о присутности људи у просторији, па би могло да се омогући укључивање светла када је тај услов испуњен. Сензор звука би омогућио гласовно контролисање склопа, рецимо да се на ударац длановима укључи или искључи светло. Исто би важило и за инфрацрвени сензор који би омогућио управљање даљинским.

Претходни пројекти и туторијали