Тема: Arduino і домашня автоматизація: питання і відповіді
Всім привіт. Почав освоювати Arduino зокрема nano. Суть така: натискаєш кнопку - вмикається режим очікування. якщо під час цього режиму спрацьовують датчики то вмикається звукове сповіщення. якщо ще раз натиснути кнопку то вимикається звукове сповіщення і режим очікування.
це є не дуже складним завданням і є частиною більшої програми, але при симуляції в Proteus не завжди спрацьовує. в чому помилка?
/* Main.ino file generated by New Project wizard
*
* Created: Вт Лип 19 2016
* Processor: ATmega328P
* Compiler: Arduino AVR
*/
byte flag = 0;
void setup()
{ // put your setup code here, to run once:
DDRD=B01111110;
DDRB=B00000000;
/* pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode (7, INPUT); //кнопка, яка вмикає і вимикає режим очікування.
pinMode (8, INPUT);
pinMode (9, INPUT);
pinMode (10, INPUT);
pinMode (11, INPUT);
pinMode (12, INPUT);
//0,1,13 входи з датчиків
pinMode (13, INPUT);
pinMode (0, INPUT);
pinMode (1, INPUT);
*/
}
void loop()
{
if (digitalRead(7) == HIGH && flag==0) //увімкнення тривоги при спрaцюванні датчиків
{flag=1;}
if (flag==1 && digitalRead(13) == HIGH)
{ digitalWrite(5,HIGH); }
if (flag==1 && digitalRead(0) == HIGH )
{ digitalWrite(5,HIGH); }
if (flag==1 && digitalRead(1) == HIGH)
{ digitalWrite(5,HIGH); }
if (digitalRead(7) == HIGH && flag==1)
{ digitalWrite(5,LOW);
flag=0; }
}