//zalecam używanie #define zamiast zmiennych, jest to dobrym nawykiem ponieważ oszczędza pamięć mikrokontrolera
#define przekaznikGen 10 // pin do sterowania przekaznikiem generatora(stan niski)
#define przekaznikWen 11 // pin do sterowania przekaznikiem wentylatorow (stan niski)
#define przycisk 9 // pin przycisku mono stabilnego sterowany masą
#define startWent 20
#define stopWent 320
#define stopGen 300
int czas = 0;
void setup()
{
pinMode(przekaznikGen,OUTPUT); //ustawienie pinu 10 wyjscie
pinMode(przekaznikWen,OUTPUT); //ustawienie pinu 11 wyjscie
pinMode(przycisk,INPUT_PULLUP); // pin 9 wejscie po nacisnieciu o przycisku
digitalWrite(przekaznikGen, HIGH); // stan poczatkowy przekaznika wysoki >2,5V czy tu może być stan wysoki?? //może
digitalWrite(przekaznikWen, HIGH); //stan poczatkowy przekaznika wysoki >2,5V czy tu może być stan wysoki?? //może
}
void loop()
{ //zalecam używanie timera, można go wykorzystywać do wieu rzeczy na raz i znacznie upraszcza obliczenia dalszej części kodu
/////////////////////////////TIMER////////////////////////////////////////////////////////////////////////////////////////////////
static unsigned long zapamietanyCzas = 0;
unsigned int roznicaCzasu = millis() - zapamietanyCzas;
if(roznicaCzasu >= 1000) //co 1000ms
{
zapamietanyCzas = millis();
if(czas <= stopWent) czas++;
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if (! digitalRead(przycisk)) czas = 1;//wciśnięcie przycisku spowoduje przedłużenie czasu pracy
// jeśli chcesz żeby przycisk reagował dopiero po upływie cyklu wykorzystaj poniższą funkcję
// if ((! digitalRead(przycisk))&&((czas > stopWent))) czas = 1;
//pamiętaj o korekcji stuków przycisków (ten program akurat nie wymaga tego)
if((czas > startWent) && (czas <= stopWent))digitalWrite(przekaznikWen, LOW);
else digitalWrite(przekaznikWen, HIGH);
if((czas > 0) && (czas <= stopGen))digitalWrite(przekaznikGen, LOW);
else digitalWrite(przekaznikGen, HIGH);
}
Mam nadzieję, że pomoże. Pozdrawiam.
Ps. jeśli używasz przekaźników to pamiętaj żeby dać diodę równolegle do cewki podłączoną w kierunku zaporowym. Przekaźniki muszą być sterowane tranzystorami, bo wyjścia z arduino są za słabe. Jeśli masz pytania to zadawaj śmiało.