добрый Chip, подскажи пожалуйста как получить мигание стробами при нажатии кнопки 8!? нужно как то зациклить мигание стробов, пока нажата кнопка, при этом что бы они не реагировали на нажатие других кнопок. спасибо!
//программка : при нажатии реле 8 в CF выводЫ d10 , d11 СТРОБИРУЮТ
// ПРИ ПРИХОДЕ КОМАНДЫ ОТ CF ВКЛЮЧАЕТСЯ СООТВЕТСТВУЮЩЕЕ РЕЛЕ
void setup() // начальные настройки программы, выполняемые 1 раз в момент вкл. питания
{
Serial.begin(9600);//// установить скорость работы с сом портом =9600
for (int i=2; i < 12; i++) // выходы на реле управления. присвоить имя i выводам с d2 по d11
{
pinMode(i,OUTPUT); // присвоить выводам i статус выход
digitalWrite(i, LOW);// присвоить выводам i статус низкий( отсутствие напряжения на выходе )
}
}
// закончили наначение выводов
void loop() //ЦИКЛИЧНОЕ ВЫПОЛНЕНИЕ ПРОГРАММЫ
{
byte a, b, c;
if (Serial.available() > 2) // ждем данные от плагина
{
a = Serial.read(); //дискриптор
b = Serial.read(); //номер реле
c = Serial.read(); //состояние реле
if(a == 0xFF) //если данные от плагина, то выполим команду
{
digitalWrite(b+1, (c==0x01) ? HIGH:LOW ); //выполнить
if (digitalRead(9) == LOW) //проверить вывод D9 на наличие "1".кнопка выключена
digitalWrite(10, LOW); // выключаем светодиод 10
digitalWrite(11, LOW); // выключаем светодиод 11
if (digitalRead(9) == HIGH) //проверить вывод D9 на наличие "1" кнопка включена.
button_off();
}
}
}
//-----------------------------------------------
// ПОДПРОГРАММА СТРОБОВ
void button_off()
{
digitalWrite(11, HIGH); // зажигаем светодиод 11
delay(50);
digitalWrite(11, LOW); // выключаем светодиод 11
delay(50);
digitalWrite(11, HIGH); // зажигаем светодиод 11
delay(50);
digitalWrite(11, LOW); // выключаем светодиод 11
delay(50);
digitalWrite(11, HIGH); // зажигаем светодиод 11
delay(50);
digitalWrite(11, LOW); // выключаем светодиод 11
delay(500); // ждем секунду
digitalWrite(10, HIGH); // зажигаем светодиод 10
delay(50);
digitalWrite(10, LOW); // выключаем светодиод 10
delay(50);
digitalWrite(10, HIGH); // зажигаем светодиод 10
delay(50);
digitalWrite(10, LOW); // выключаем светодиод 10
delay(50);
digitalWrite(10, HIGH); // зажигаем светодиод 10
delay(50);
digitalWrite(10, LOW); // выключаем светодиод 10
delay(500); // ждем секунду
}




Ответить с цитированием