Ви не увійшли.
для простого задания - включать вентилятор в WC после выключения света приобрел Нано и модуль реле. Мой уровень нулевой, как говорил Панда, но переключать светодиоды, моторчики я уже научился. А вот с этой простой задачей торможу, аж стыдно. Как контроллеру показать, что свет не просто выключен, а только что БЫЛ выключен? Или - как остановить loop после одного цикла? Массу интересного и понятного материала по ардуино прочитал, и, как правило, в самом интересном месте объяснения становятся туманны . Помогите выйти из депресняка!
Неактивний
сделал вот так
const int ledPin = 11;
const int desireDelay = 5000;
void setup() {
// initialize the LED pin as an output:
pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, LOW);
delay(desireDelay);
digitalWrite(ledPin, HIGH);
}
void loop() { }
предполагаю, будет критика. Хотелось бы все таки сделать правильно
Неактивний
эта штука может и так работать, но мне таки интересно: как показать, что сигнал не просто выключен, а был выключен только что? И как правильно работать с millis - как оформить, что событие одноразовое, и должно длиться такое то время? Подскажите, где почитать подробно, пожалуйста.
Неактивний
const int ledPin = 11;
unsigned long desiredBeginDelay = 5000; //trigger's interval
unsigned long desiredEndDelay = 5000; //trigger's interval
unsigned long signalBeginTime = 0; //0 - stop, millis() - begin interval
unsigned long signalEndTime = 0; //0 - stop, millis() - begin interval
bool isTriggerTime(unsigned long beginTime, unsigned long interval) {
bool result = false;
if(beginTime > 0)
result = (millis() - beginTime) >= interval;
return result;
}
void setup() {
pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, LOW);
delay(10); //set internal time > 10
signalBeginTime = millis(); //start trigger at current time
}
void loop() {
if(isTriggerTime(signalBeginTime, desiredBeginDelay)){
digitalWrite(ledPin, HIGH);
signalEndTime = millis();
signalBeginTime = 0;
}
if(isTriggerTime(signalEndTime, desiredEndDelay)){
digitalWrite(ledPin, LOW);
signalEndTime = 0;
}
}
Неактивний
мне еще надо много читать, чтоб понять, что вы написали. Спасибо за помощь, но получилась та же история - в самых интересных местах комментариев то и нет . Я сделал вот так:
на лампе освещения реле с нормально замкнутыми. свет вкл - контакты разомк. свет выкл - реле вкл питание ардуине, исполняется вот такое
const int fan = 12;
int fanState = LOW;
unsigned long previousMillis = 0;
const long interval = 60000;
void setup() {
pinMode(fan, OUTPUT);
}
void loop() {
unsigned long currentMillis = millis();
if (currentMillis >= interval) {
fanState = HIGH;
} else {
fanState = LOW;
}
digitalWrite(fan, fanState);
}
Неактивний
просто как таймер.
если в течении 6 секунд после выключения опять включить свет, то вентилятор перестанет работать.
а если свет не выключить то и не запустится вентиль.
идеально было бы чтоб свет и вентилятор сам включался и включался в зависимости от нахождения человека. а микроконтроллер работал постоянно, реагируя на какие либо события/прерывания. дальше можно прикрутить датчик дыма (для курящих) и уровня воды ....
Неактивний
Всем привет такой вопрос как по состоянию трех входов запустить три независимых таймера ?
Библиотека EveryTimer поможет, если вам нужны не аппаратные таймеры.
Неактивний
хуй
сасай
быстро б**ь
я дрочу дрочу дрочу
и на лодочке лечу
спермой землю заливаю
с новым годом поздравляю