выбор программ кнопкой

danieliw
Offline
Зарегистрирован: 19.02.2017

я только начал изучать ардуино. помогит с программой. допустим при зажатии на кнопку №1 у меня работает программа 1 при нажатии на кнопку №2 у меня переключаютя программы по кругу допустим их 5. но при нажатии на зажатии №1 у меня запускается та программа которая была назначиной кнопкой №2.  тоесть при включении ардуино изначально запускается программа 1 и при 2х нажатий на кнопку №2 и зажиме кнопки №1 у меня работает программа 3. 

danieliw
Offline
Зарегистрирован: 19.02.2017
nt regim=1;
 int flag=0;
 
 void setup()   
 {
    pinMode(10,OUTPUT);    
 pinMode(9,OUTPUT);    
        
 }
 
 void loop()
 
 {
        
     if(digitalRead(14)==HIGH&&flag==0)//если кнопка нажата   
     // и перемення flag равна 0 , то ...
     {
       regim++;   
       flag=1;
          
        //это нужно для того что бы с каждым нажатием кнопки
        //происходило только одно действие
        // плюс защита от "дребезга"  100%
           
        if(regim>4)//ограничим количество режимов
        {
          regim=1;//так как мы используем только одну кнопку,
                    // то переключать режимы будем циклично
        }
        
     }
        
      if(digitalRead(14)==LOW&&flag==1)//если кнопка НЕ нажата
     //и переменная flag равна - 1 ,то ...
     {
           
        flag=0;//обнуляем переменную "knopka"
     }
       
        
        
    if(regim==1)//первый режим
    {
      digitalWrite(9,LOW);//выключаем все светодиоды
      digitalWrite(10,LOW);
         
         
      //здесь может быть любое ваше действие
    }
    if(regim==2)//второй режим
    {
      digitalWrite(10,HIGH);//включае красный светодиод
      digitalWrite(9,LOW);
         
      //здесь может быть любое ваше действие
    }
       
    if(regim==3)//третий режим
    {
         
      digitalWrite(9,HIGH);//включае зеленый светодиод
      digitalWrite(10,LOW);
         
         
      //здесь может быть любое ваше действие
    }
       
    if(regim==4)//четвертый режим
    {
         
      digitalWrite(9,HIGH);//включаем светодиоды одновременно
      digitalWrite(10,HIGH);
      //здесь может быть любое ваше действие
    }
       
 }

 

вот нашол чтото подобное. как сюда вставить кнопку которая будет выполнять то дейстуие где флаг?
 
arDubino
Offline
Зарегистрирован: 12.01.2017

тут нет кнопок как средств визуализация если вы про программный объект . они могут быть только на сенсорных экрана типа тфт с помощью специальных библиотек.

а кнопку как физ.кнопку можно повесить на переменную и проверять какую-то ногу ардуинки просто на сигнал или его отсутствие т.е. на ноль или 1. тут она привязана на 14 ногу и проверяется 1. если есть сигнал делается +1. т.е. нажали 4 раза стал работать 4ый режим.

если у вас две кнопки надо две ноги. и проверять. по данному подобию

danieliw
Offline
Зарегистрирован: 19.02.2017

допустим стоит 3й режим и нам нужно чтобы при нажатии 2й кнопки он повторялся и повторялся это получается вписать 2ю кнопку в каждый из 4 разделов ??? неподскажешь код чтобы программа останавливалась и ждала ужержания кнопки чтобы повторять раздел который выбран???

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015