В программировании я не соображаю особо)
Но была поставлена задача реализовать управление сервоприводными шаровыми кранами(2 проводные) ардуиной
Суть кода не буду объяснять, ну там и понятно в принципе...
То что у меня не получилось сделать - таймер отключения сигнала через 5-6 сек.(в if, для того что бы кран не сгорел когда он заклинит по какой ни будь причине), автоматическое проворачивание крана время от времени для предотвращения его "закисания"
Подскажите ка это сделать, может кто делал подобное, киньте пример
Мое чудо:
Код: Выделить всё
const int kran = 3;
const int bak = 4;
int nasos = 13;
int kran_open = 12;
int kran_close = 11;
int bak_open = 10;
int bak_close = 9;
void setup() {
pinMode(kran, INPUT);
pinMode(bak, INPUT);
pinMode(nasos, OUTPUT);
pinMode(kran_open, OUTPUT);
pinMode(kran_close, OUTPUT);
pinMode(bak_open, OUTPUT);
pinMode(bak_close, OUTPUT);
}
void loop() {
int kranState, bakState;
kranState = digitalRead(kran);
bakState = digitalRead(bak);
if ((kranState == LOW) && (bakState == LOW))
{
digitalWrite(nasos, LOW);
digitalWrite(kran_open, HIGH);
digitalWrite(kran_close, LOW);
digitalWrite(bak_open, HIGH);
digitalWrite(bak_close, LOW);
}
else if ((kranState == HIGH) && (bakState == LOW))
{
digitalWrite(nasos, HIGH);
digitalWrite(kran_open, HIGH);
digitalWrite(kran_close, LOW);
digitalWrite(bak_open, LOW);
digitalWrite(bak_close, HIGH);
}
else if ((kranState == LOW) && (bakState == HIGH))
{
digitalWrite(nasos, HIGH);
digitalWrite(kran_open, LOW);
digitalWrite(kran_close, HIGH);
digitalWrite(bak_open, HIGH);
digitalWrite(bak_close, LOW);
}
else if ((kranState == HIGH) && (bakState == HIGH))
{
digitalWrite(nasos, HIGH);
digitalWrite(kran_open, HIGH);
digitalWrite(kran_close, LOW);
digitalWrite(bak_open, LOW);
digitalWrite(bak_close, HIGH);
}
}


