Большинство наших манипуляций с электрическими нагрузками связано лишь с их включением и выключением. Для этого на все сто подходят обычный коммутационные выключатели. Включил - есть питание, выключил – нет! Однако дело осложняется, если перед нами появляются задачи несколько посложнее. Скажем одним коммутатором (выключателем или кнопкой) необходимо включать или выключать несколько нагрузок по очереди. Или у тех же самых нагрузок появляется какой-то алгоритм по питанию. Вот тут электрика и превращается в электронику. Вот тут нам и помогут микроконтроллеры. А так как Arduino это частный случай микроконтроллера в удобной для нас обвязке, то именно его мы и возьмем за базу для реализации функциональной схемы управления одной кнопкой 2 и более устройствами.  Об этом мы собственно и расскажем в нашей статье

Алгоритм для включения отключения 2 нагрузок с помощью Arduino

В нашем случае задачей было включать нагрузку одну за другой «по кругу», то есть первая, вторая. А затем отключать, так же как и включались нагрузки. Вначале первая, потом вторая. Вроде простая задача, но все простое требует порой гениальных решений. Нет, конечно, наше решение не гениально, но к нему тоже надо еще прийти!

Код – скетч для управления 2 устройствами с помощью Arduino

Можно разделить весь алгоритм работы по коду на три условия. Вначале ничего не горит, потом есть питание для первой нагрузки, после появляется питание для второй нагрузки. Затем отключается питание для первой нагрузки и после для второй. После этого цикл повторяется сначала.
 Так как у нас Ардуино, то программа заливается через ту же одноименную программку. Скетч для программы можно СКАЧАТЬ скопировав (комментарии в программке-скетче) или посмотреть прямо на сайте...

int flag=0; 

void setup()    
{ 
       
    pinMode(13, OUTPUT);   
    pinMode(12, OUTPUT);      
      
        
} 

void loop() 

{ 
        
     if(digitalRead(2)==HIGH&&flag==0)
     //если кнопка нажата    
     // и перемення flag равна 0 , то ... 
     { 
           
       digitalWrite(12,!digitalRead(12)); 
       flag=1; 
        // пишется высокий уровень для 12 ножки
        //присваивается значение 1 для переменной флаг 
        
    delay(800);
     } 




if(digitalRead(2)==HIGH&&flag==1)
     //если кнопка нажата    
     // и перемення flag равна 1 , то ... 
     { 
           
       digitalWrite(13,!digitalRead(13)); 
       flag=2; 
        // пишется высокий уровень для 13 ножки
        //присваивается значение 2 для переменной флаг 
        delay(800);
     
     } 





     
        
      if(digitalRead(2)==LOW&&flag==2)//если кнопка НЕ нажата 
     //и переменная flag равна - 2 ,то ... 


  delay(800);
     
     { 
           
        flag=0;//обнуляем переменную flag 
     } 
} 



В итоге у нас будет реализована возможность управлять 2 нагрузками. При необходимости програмку можно доработать и сделать управление нагрузками краткое количеству свободных выходов на Ардуино.

Видео об управления 2 устройствами с помощью Arduino

Добавить комментарий