Таймер
- Войдите на сайт для отправки комментариев
Пт, 14/12/2018 - 21:22
Подскажите, пожалуйста, что не так в программе? Я, видимо, не так понял оператор millis..
const int senD = 2;
const int led = 3;
unsigned long timing; // Переменная для хранения точки отсчета
void setup() {
Serial.begin(9600);
pinMode(senD, INPUT);
pinMode(led, OUTPUT);
}
void loop(void){
if (senD == HIGH) { // Считываю показания ДД. Если ДД сработал, то:
timing = millis(); // Присваиваю переменной значение времени пройденного с момента запуска контроллера.
}
if (millis() - timing < 20000) { // Далее условие: если разница между временем с момента запуска контроллера и значением переменной менее 20сек, то:
digitalWrite(led, HIGH); // Включаю свет.
}
}
В программе все так. А вот Вам зайти бы в "песочницу", первый пост почитать.
Вы имеете ввиду "читай перечень литературы"?)
Вы имеете ввиду "читай перечень литературы"?)
нет,
1)вставляй код правильно
2) грамотно формулируй вопрос
Прошу прощения, не заметил. Исправляюсь.
Я в железе более мене разбираюсь. Собирал шкафы автоматики. В программировании только VisualBasic в универе.
Задача: Включать свет по датчику движения на заданный интервал времени. При этом, если датчик срабатывает повтороно - обнулять отсчет времени.
Наверняка подобная задача не раз решалась пользователями, но мне не удалось найти такую тему. Вероятно, неправильно запрос пишу.
Вот что я написал начитавшись разных источников:
При заливки данного скетча ничего не происходит, реле не срабатывает.
При этом, если напрямую включаю свет по срабатыванию датчика, то все работает (просто не нравится что дискатека получается):
у вас в первой же строке скетча переменной sensorD присваивается 2 и больше это значение в скетче не меняется. Оно никогда не станет HIGH
Ну то есть вместо
А еще свет, то включается, а где он выключается?
Так, я так понял, это я присваиваю второму входу тип данных и имя в программе.
Ок. спасибо!
То есть надо добавить
Так, я так понял, это я присваиваю второму входу тип данных и имя в программе.
Похоже совет "почитай книжки" выше был верным, а то пишете откровенную фигню.
Так, я так понял, это я присваиваю второму входу тип данных и имя в программе.
Это не программируемый контроллер... нет тут никаких присвоений входам и т.п. Есть команды "считать со входа #.." и "установить значение на выходе #.."
Надо менять мышление, если хотите продолжать заниматься с МК на уровне языка высокого уровня.
Ну я первый день пробую, буду читать.
Да, уже такие же ощущения посетили. Спасибо.
Спасибо всем за советы и уделенное внимание. Пробую, дальше.