Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const int ledpinEV1 = 22; // setta il pin elettrovalvola e led
- const int ledpinEV2 = 23; //setta il pin elettrovalvola e led
- const int ledpinEV3 = 24; //setta il pin elettrovalvola e led
- const int ledpinEV4 = 25; //setta il pin elettrovalvola e led
- const int ledpinPom = 26; //setta il pin elettrovalvola e led
- const int ledpinRes = 27; //setta il pin elettrovalvola e led
- const int puls = 4; // setta il pulsante
- const int Temp = A0; // setta il sensore temperatura
- const int EV1 = A1; // setta flussometro 1
- const int EV2 = A2; // setta flussometro 2
- const int EV3 = A3; // setta flussometro 3
- const int EV4 = A4; // setta flussometro 4
- const int ingresso = 2; //Piedino di ingresso del flussostato
- double flusso; //Quantità di acqua che scorre
- volatile unsigned int count = 0; //Variabile di conteggio
- void impulso();
- bool readSensors();
- void setup() {
- Serial.begin(9600);
- pinMode(ledpinEV1, OUTPUT);
- pinMode(ledpinEV2, OUTPUT);
- pinMode(ledpinEV3, OUTPUT);
- pinMode(ledpinEV4, OUTPUT);
- pinMode(ledpinPom, OUTPUT);
- pinMode(ledpinRes, OUTPUT);
- pinMode(puls, INPUT);
- pinMode(Temp, INPUT);
- pinMode(EV1, INPUT);
- pinMode (ingresso, INPUT); //Imposta piedino 2 in ingresso
- attachInterrupt (0, impulso, RISING); //Configura interrupt 0 pin 2
- }
- void loop() {
- char fromSerial = ' ';
- if (Serial.available())
- fromSerial = Serial.read();
- switch (fromSerial) {
- case 'a':
- break;
- case 'h':
- digitalWrite(ledpinEV1, LOW);
- break;
- case 'b':
- digitalWrite(ledpinEV2, HIGH);
- break;
- case 'i':
- digitalWrite(ledpinEV2, LOW);
- break;
- case 'd':
- digitalWrite(ledpinEV3, HIGH);
- break;
- case 'l':
- digitalWrite(ledpinEV3, LOW);
- break;
- case 'e':
- digitalWrite(ledpinEV4, HIGH);
- break;
- case 'm':
- digitalWrite(ledpinEV4, LOW);
- break;
- case 'f':
- digitalWrite(ledpinRes, HIGH);
- break;
- case 'n':
- digitalWrite(ledpinRes, LOW);
- break;
- case 'g':
- digitalWrite(ledpinPom, HIGH);
- break;
- case 'o':
- digitalWrite(ledpinPom, LOW);
- break;
- case 'p':
- while (!readSensors()) {}
- break;
- case 'q':
- digitalWrite(ledpinEV4, LOW);
- break;
- default:
- break;
- }
- }
- void impulso() {
- count++; //Incrementa count di 1
- }
- bool readSensors() {
- int ELE1 = analogRead(EV1);
- delay(10); //Meglio lasciare questo piccolo delay per motivi interni ad Arduino
- int NTC = analogRead(Temp);
- count = 0; //Resetta il conteggio
- interrupts(); //Abilita gli interrupt
- delay (1000); //Pausa di 1 secondo
- noInterrupts(); //Disabilita gli interrupt
- flusso = (double(count) * 1.12); //1.12mL per ogni impulso
- flusso *= 60.0; //Trasforma i secondi in minuti
- flusso /= 1000.0; //Trasforma i mL in litri
- Serial.print("HIGH\n");
- Serial.print("\tT: ");
- Serial.println(NTC);
- Serial.print("\tV: ");
- Serial.println(ELE1);
- Serial.print("\tF: ");
- Serial.println(flusso);
- digitalWrite(ledpinEV4, HIGH);
- delay(2000);
- digitalWrite(ledpinEV4, LOW);
- delay(2000);
- digitalWrite(ledpinEV4, HIGH);
- delay(2000);
- digitalWrite(ledpinEV4, LOW);
- if (NTC > 400)
- digitalWrite(ledpinRes, HIGH);
- if (flusso >= 2.0)
- return true;
- return false;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement