Мой вариант без программной задержки (ну очень уж она мешала в моем проекте):
PHP код:
iint back_on = 12; //номер порта для сигнала заднего хода
boolean time_flag=false; // статус счетчика
boolean cam_on=false; // статус работы камеры
unsigned long time_cam;
void setup()
{
pinMode(av_mode, OUTPUT);
pinMode(back_on, INPUT);
digitalWrite(back_on, HIGH); //Подключить внутренний подтягивающий резистор
digitalWrite(av_mode, LOW);
Serial.begin(115200);
}
//-----------------------------------------------
void loop()
{
camBack;
}
void camBack()
{
if (digitalRead(back_on) == LOW) // обрабатываем "ноль"
{
if (cam_on == false) // если камера не включена
{
if (time_flag == false) // если таймер не включен
{
time_cam = millis(); // засекаем время в "нуле"
time_flag = true; // уставливаем флаг счетчика
}
else // таймер включен
{
if ((millis()-time_cam) > 1000) // если прошло > 1 сек
{
time_flag = false; // сбрасываем флаг счетчика
cam_on = true; // камера включена
Serial.println("CamBack_on"); // в этоЙ строке д.б. команда на включение камеры
}
}
}
}
else // обрабатываем "единицу"
{
if (cam_on == true) // только когда камера включена
{
cam_on = false; // камера выключена
Serial.println("CamBack_off"); // в этоЙ строке д.б. команда на выключение камеры
}
}
}
Задержку на выключение не делал.