Оформи код соответствующим тэгом
Помогите решить вопрос или направьте в нужную сторону.
Есть вот такой скетч
Возможно абсолютно бесполезный
Какая задача
Хочу сделать ходовые огни из поворотников на ардуино
Лампа поворота обычная с одной нитью
Что должно быть реализовано:
1.При включении габарита миктроконтролер должен включать лампу чтобы она горела на постоянной основе
2.Режим поворотника то есть чем вообще и должен заниматься поворотник
Как в моём понимании это должно работать
Включаешь габариты микроконтролер зажигает лампу поворота и паралельно проверяет не появился ли сигнал с пина поворота
Появляется сигнал поворота то есть логическое один с сигнала поворота но при появлении первого сигнала поворота лампа не должна гаснуть так как тогда она будет работать в разнобой с другими лампами поворота в машине
При первой вспышке сигнала поворотников микроконтролер должен заходит либо в цикл,либо в какую-то функцию поворота в которой он будет в течении какого-то времени ждать повторного сигнала поворота и если его нет,то зажигать лампу в режиме габарита.
Основной вопрос в чём:
Как сделать задержку по времени так,чтобы если время этой задержки ещё не прошло но допустим появился какой-то сигнал микроконтролер вышел из режима ожидания?
Через апаратные прерывания возможно?
Или как-то проще можно?
Есть вот такой скетч
C++:
#define LAMPA_POV 5
#define SIGNAL_POV 6
boolean pov;
void setup() {
pinMode(LAMPA_POV, OUTPUT); // объявляем пин 5 как выход
pinMode(SIGNAL_POV, INPUT); // объявляем пин 6 как вход
}
void loop() {
pov = digitalRead(SIGNAL_POV);
if (pov == 0) {
digitalWrite(LAMPA_POV, HIGH);
} else {
while (pov == 1) {
pov = digitalRead(SIGNAL_POV);
digitalWrite(LAMPA_POV, HIGH);
if (pov == 0) {
for (int i = 0; i < 2000; i++)
{ digitalWrite(LAMPA_POV, LOW);
if (pov == 1 ) break;
delay(1);
}
}
pov = digitalRead(SIGNAL_POV);
//if (pov == 0) continue;
}
}
digitalWrite(LAMPA_POV, LOW);
}
Какая задача
Хочу сделать ходовые огни из поворотников на ардуино
Лампа поворота обычная с одной нитью
Что должно быть реализовано:
1.При включении габарита миктроконтролер должен включать лампу чтобы она горела на постоянной основе
2.Режим поворотника то есть чем вообще и должен заниматься поворотник
Как в моём понимании это должно работать
Включаешь габариты микроконтролер зажигает лампу поворота и паралельно проверяет не появился ли сигнал с пина поворота
Появляется сигнал поворота то есть логическое один с сигнала поворота но при появлении первого сигнала поворота лампа не должна гаснуть так как тогда она будет работать в разнобой с другими лампами поворота в машине
При первой вспышке сигнала поворотников микроконтролер должен заходит либо в цикл,либо в какую-то функцию поворота в которой он будет в течении какого-то времени ждать повторного сигнала поворота и если его нет,то зажигать лампу в режиме габарита.
Основной вопрос в чём:
Как сделать задержку по времени так,чтобы если время этой задержки ещё не прошло но допустим появился какой-то сигнал микроконтролер вышел из режима ожидания?
Через апаратные прерывания возможно?
Или как-то проще можно?
Вложения
-
754 байт Просмотры: 0
Изменено: