Ви не увійшли.
Сторінки 1
Я початківець, нещодавно почав вчити Arduino. Написав скетч для Arduino uno, датчик вібрації SW-420 і Модуль 1 реле 5V для Arduino. Як працює скетч – в стані покою на цифровий вхід 8 від датчика вібрації подається HIGH, реле вимкнуто - на цифровому виході 4 LOW. Коли спрацював датчик на 8 піні LOW, через команду millis() на протязі 5сек., на 4 піні HIGH. В початку скетча використав команду delay так як при подачі напруги на Arduino зразу вмикається реле на 5 сек., потім скетч виконується нормально. В чому саме потрібна допомога – хочу зробити цей скетч так, щоб коли на 8 пине з’явилося LOW то на 4 пине HIGH з’являлося лише через 3сек., трималося там 5сек., і вимикалося. Головна умова не використовувати DELAY.
Дякую.
int releyPin = 4;
int vibrationPin = 8;
unsigned long vibr;
int vibrationState = 0;
void setup() {
delay (5000);
pinMode (releyPin, OUTPUT);
pinMode (vibrationPin, INPUT);
}
void loop()
{
vibrationState = digitalRead(vibrationPin);
if (vibrationState == HIGH) {
digitalWrite(releyPin, LOW);
}
if (vibrationState == LOW && millis() - vibr > 5000) {
digitalWrite(releyPin, HIGH);
vibr = millis();
}
}
Сторінки 1