Оформи код соответствующим тэгом. И сделай шрифт нормального размера
Нужна помощь в написании скетча для гаражных ворот. Точнее нужно установить таймер при открытии и закрытии 30сек. , пауза между открытием и закрытием 2сек. , если не сложно то атидребизг .
Сам скетч написал правда ушло на это полтора года поэтому прошу помощь .
скетч работает но нужны паузы
Сам скетч написал правда ушло на это полтора года поэтому прошу помощь .
скетч работает но нужны паузы
C++:
int But1 = 2; // кнопка открыть
int But2 = 3; // кнопка закрыть
int But3 = 4; // кнопка стоп
int Led1 = 5; // мотор открыть
int Led2 = 6; // мотор закрыть
int Berx = 7; // концевик открыто
int Nuz = 8; // концевик закрыто
int flag1 = 0;
int flag2 = 0;
int flag3 = 0;
void setup()
{
pinMode(Led1, OUTPUT); // pin5 = выход мотор открыть
pinMode(Led2, OUTPUT); // pin6 = выход мотор закрыть
pinMode(2, INPUT); // pin2 = кнопка открыть
pinMode(3, INPUT); // pin3 = кнопка закрыть
pinMode(4, INPUT); // pin4 = кнопка стоп
pinMode(7, INPUT); // pin7 = концевик открыто
pinMode(8, INPUT); // pin8 = концевик закрыто
boolean flag1 = false; // flag1 = 0
boolean flag2 = false; // flag2 = 0
boolean flag3 = false; // flag3 = 0
}
void loop()
{
if (digitalRead(But1) == HIGH && flag1 == 0 && (digitalRead(Led2) == LOW) && (digitalRead(7) == LOW)) {
digitalWrite(Led1, !digitalRead(Led1)); // ЗДЕСЬ открыть через 2сек. и на протяжении 30сек.
flag1 = 1;
}
if (digitalRead(But1) == HIGH && flag1 == 0 && (digitalRead(Led2) == HIGH)) {
digitalWrite(Led2, LOW);
flag1 = 1;
}
if (digitalRead(But1) == LOW && flag1 == 1) {
flag1 = 0;
}
if (digitalRead(But2) == HIGH && flag2 == 0 && (digitalRead(5) == LOW) && (digitalRead(8) == LOW)) {
digitalWrite(Led2, !digitalRead(Led2)); // ЗДЕСЬ закрыть через 2сек. и на протяжении 30сек.
flag2 = 1;
}
if (digitalRead(But2) == HIGH && flag2 == 0 && (digitalRead(5) == HIGH)) {
digitalWrite(Led1, LOW);
flag2 = 1;
}
if (digitalRead(But2) == LOW && flag2 == 1) {
flag2 = 0;
}
if (digitalRead(But3) == HIGH && flag3 == 0) {
flag3 = 1;
digitalWrite(Led1, LOW);
digitalWrite(Led2, LOW);
}
if (digitalRead(But3) == HIGH && flag3 == 1) {
flag3 = 0;
}
if (digitalRead(Berx) == HIGH ) {
digitalWrite(Led1, LOW);
} if (digitalRead(Nuz) == HIGH ) {
digitalWrite(Led2, LOW);
}
}
Вложения
-
2 KB Просмотры: 3
Изменено: