calcola
| Inviato il: 05/09/2017 14:30:58
|
Anni fa ho scritto e pubblicato sul questo forum un programma per arduino per comandare in automatico l'accensione di un generatore di corrente dotato di motorino d'avviamento. Se può servire...
//Inizio listato
//prodotto da calcola (antrec.geo@yahoo.com)//
//avvio motore ver.1_2
//
//ATTENZIONE:
//
//CC BY-NC-SA 4.0
//Uso non commerciale, modificabile, con obbligo di condivisione-
//http://creativecommons.org/licenses/by-nc-sa/4.0/deed.it
//
#define confAvv 3 //sensore avviamento
#define feed A0 //verifica accensione
#define evBenz 5 //valvola benzina
#define relCarb 6 //tira l'aria carburatore
#define motAvv 7 //motorino avviamento
byte statoBenz = 0;
byte mem0 = 0;
byte mem1 = 0;
unsigned long temp0 = 0;
unsigned long temp1 = 0;
void setup(){
//Apro la comunicazion seriale
Serial.begin(9600);
pinMode(confAvv, INPUT);
pinMode(feed, INPUT);
pinMode(evBenz, OUTPUT);
pinMode(relCarb, OUTPUT);
pinMode(motAvv, OUTPUT);
}
void loop(){
//se vi è il consenso all'avvio (pin3 high), apro la benzina e fisso la variabile 0
{if ((digitalRead(confAvv) == HIGH) && (mem0 !=1)) {digitalWrite(evBenz, HIGH); statoBenz = 1; temp0 = millis(); mem0 = 1;}
if ((digitalRead(confAvv) == HIGH) && (mem0 ==1)) {digitalWrite(evBenz, HIGH);}
else (digitalWrite(evBenz, LOW));}
//attendo 20 secondi ed chiudo l'aria
{if ((millis() > (temp0 + 20000)) && (statoBenz == 1)){digitalWrite(relCarb, HIGH);}
else digitalWrite(relCarb, LOW);}
//aspetto due secondi ed avvio il contatto del solenoide
{if ((millis() > temp0 + 22000) && (statoBenz == 1)){digitalWrite(motAvv, HIGH);}
else digitalWrite( motAvv, LOW);}
//se sul pin analogico A0 arriva +5V (>500) spengo l'avviamento, attendo 30 secondi e apro l'aria
{int tensione=(analogRead(feed));
if ((tensione > 800) && (mem1 != 1)) {digitalWrite(motAvv, LOW); temp1 = millis(); mem1 = 1;}
if ((tensione > 800) && (mem1 == 1)) {digitalWrite(motAvv, LOW);}
if ((tensione>800) && (millis() > (temp1 + 30000)) && (mem1 == 1)) {digitalWrite(relCarb, LOW);}
}
if (digitalRead(confAvv) == LOW){temp0 = 0; temp1 = 0; statoBenz = 0; mem0 = 0; mem1 = 0;}
}
// fine listato
Modificato da calcola - 05/09/2017, 14:34:49
--------------- Impara l'arte e mettila da parte 14 pannelli da 100w, inverter kemapower 3kw, regolatore morningstar tristar ts60, banco batterie n.1 di 12 elementi 2v 480Ah C5 corazzate per trazione pesante, banco batterie n.2 di 400Ah in C5 formato da 24 elementi 2V 200Ah corazzate al gel per fotovoltaico in due serie da 12 elementi, centralina di gestione impianto autoprodotta.
|