В очередной раз переколбасил управление водяной башкой Autortol, на этот раз используя Arduino Nano.
Программку переписал, чтобы по кнопке текущий цикл прерывался.Да и просто переписал, пограмотнее - всего 1368 байт получилось, а под переменные и вовсе 9 байт.
#define OPTIC 8
#define RELAY 9
#define BTN 10
boolean btnPressed()
{
int buttonState = digitalRead(BTN);
if(buttonState == 1 )
return(true);
else
return(false);
}
void waitFor(int secdel)
{
int seconds=secdel*600;
int runsec=0;
while (runsec<seconds)
{
if(btnPressed())
break;
delay(100);
runsec++;
}
}
void cycle(int duration)
{
digitalWrite(RELAY,1);
waitlabel();
waitsolid();
digitalWrite(RELAY,0);
waitFor(duration);
}
void waitlabel() //wait for label
{
while(!opticState())
delay(100);
}
void waitsolid()
{
while (opticState()) //until label is visible
delay(100);
}
boolean opticState() //true=label false=solid
{
int inputState;
inputState = digitalRead(OPTIC);
if (inputState==1)
return(true);
else
return(false);
}
void regen()
{
cycle(10); //backwash
cycle(5); //regenerant draw
cycle(3); //slow rinse
cycle(2); //system pause to resurpresse tank
cycle(1); //KMnO4 inject
cycle(15); //fast rinse
cycle(3); //backwash
cycle(3); //fast rinse
//final aproach
digitalWrite(RELAY,1);
delay(6400); //roll to zero position
digitalWrite(RELAY,0);
} //regen
void setup()
{
pinMode(BTN, INPUT);
pinMode(OPTIC, INPUT);
pinMode(RELAY, OUTPUT);
}
void loop()
{
if(btnPressed())
regen();
delay(500);
}
Ардуина велик и могуч!
ОтветитьУдалитьЯ тут постепенно к Малинкиному GPIO подбираюсь, вот где сила. Особенно если их с Ардуинами вместе сопрячь.
УдалитьДмитрий, с удовольствием почитал ваш блог.
ОтветитьУдалитьПочему заглох вариант контроллера на ЕСП?
Я начал дрейфовать в сторону минимализма.
УдалитьДа и пока в семье добавился мелкий - элементарно не до изысканий.
Понятно. Дети - это святое.
УдалитьА насчет минимализма - так проще ESP может быть только диод.
Мне полноценный контроллер на ЕСП некогда ваять, но модуль для дистанционного запуска умягчителя я сделаю.
можешь потом на fockeach@gmail.com прислать - выложу и повторить попробую.
УдалитьПришлю, конечно, но... это же будет простейшее устройство, которое будет считать расход через умягчитель и подавать импульс для активизации промывки.
ОтветитьУдалить