Ви не увійшли.
Сторінки 1
Аа всё, врубился. Вместо == лучше поставить <,> или >=, <=
NEW_NOOB пише:После неоднократного вскипания, мой мозг додумался до этого.
... if (val==1 && analogRead(Photorez)==500) { //Сработает вечером ... if (analogRead(Photorez)==200) { ... //Если темно, вкл режим "ночь" if (analogRead(Photorez)==800) { ... //Если светло, вкл режим "день" }
Для начала неплохо. Только не используйте равенство при определении порога освещенности, такого в природе не бывает.
А как же тогда ?
Так?
if (800>analogRead(Photorez)>810)
После неоднократного вскипания, мой мозг додумался до этого.
const int ledPin = 13;
long previousMillis = 0;
int Photorez = A6;
long interval = 1000*60*60*6;
void setup() {
pinMode(ledPin, OUTPUT);
pinMode(button, INPUT);
int val = 1; //Если день, val=1. Если ночь, val=0.
}
void loop() {
if (val==1 && analogRead(Photorez)==500) { //Сработает вечером
digitalWrite(ledPin, 1); //Вкл свет
unsigned long currentMillis = millis();
if(millis() - previousMillis > interval) { //Подождать 6 часов
previousMillis = currentMillis;
digitalWrite(ledPin, 0); //Выкл свет
}
} else { digitalWrite(ledPin, 0);
}
if (analogRead(Photorez)==200) {
val = 0 } //Если темно, вкл режим "ночь"
if (analogRead(Photorez)==800) {
val = 1 } //Если светло, вкл режим "день"
}
А как сбросить таймер millis? Нужно что бы он считал не с начала включения ардуино, а с начала включения лампы.
а как вы автополив сделаете, если это осилить не можете.
if (A1 < 500) {
digitalWrite(13, 1);
}
if (A1 > 800) {
digitalWrite(13, 0);
Вот автополив
А для автовыключение света, нужно сделать задержку, причем без влияния на работу остального кода
Ну если не сложно
В общем не могу вместить в голове всё это... Только начал разбираться... Вот что нужно: При значении 500 с фоторезистора (Вечером)
включается подсветка на n-времени, после сама выключается. Скетч нужен с функцией milis а не delay. Нужно всё это для автодосвета растения. delay не подходит, потому что будет реализован ещё и автополив, так бы и сам написал).
Сторінки 1