Opět bych potřeboval vaší pomoc ,nebo radu.
Mám sestrojené zařízení na hlídání hladiny v jímce
V jímce je plastová trubka z osmi nerezovými sondami.
Hladina je signalizována sloupcem led diod a v případě dosažení předposlední sondy se sepne relé na určitou dobu,aby se vyčerpal určitý obsah vody.
Pokud by se voda z nějakého důvodu neodčerpala je na poslední sondě siréna,která se spustí při zaplavení poslední sondy.
a teď potřebuji poradit:Pokud siréna houká potřeboval bych jí po příchodu k zařízení vypnout tlačítkem,které je připojené přes zapnutý pullup na A3,ale nevím jak to do programu implementovat.
sonda pro sirénu je na D6 a výstup sirény je na A5
Zde je kod pro arduino
Kód: Vybrat vše
//source:Jimka 3 /
byte sensorPin[] = {7, 8, 9, 10, 11, 12, 6, 13}; // číslo pinu senzoru
byte ledPin[] =    {5, 4, 3, 2, A0, A1, A5, A2}; // číslo pinu pro LED = číslo senzoru
const byte sensors = 8;
int level = 0; 
const int rele = A4;
const int instantResetPin  = A3;
void setup() {
  for(int i = 0; i < sensors; i++) {
     pinMode(sensorPin[i], INPUT); //Senzor piny nastaveny na vstup
     pinMode(ledPin[i], OUTPUT); //led pin nastaveny na výstup
  }
  pinMode(rele, OUTPUT); //výstup pro relé
  pinMode(instantResetPin, INPUT_PULLUP);
}
void loop() {
  level = 0; 
  for(int i = 0; i < sensors; i++) {
     if(digitalRead(sensorPin[i]) == LOW) {
        digitalWrite(ledPin[i], HIGH);
        level = sensors - i;
     } else {
       digitalWrite(ledPin[i], LOW);       
     }    
  }
  
  
  switch(level) {
     case 1:
       digitalWrite(rele,HIGH);
       delay(5000);
        break;
      
     case 2:
     digitalWrite(rele, LOW);
      
       break;
     case 3:
       digitalWrite(rele, LOW);
       break;
     case 4:
       digitalWrite(rele, LOW);
       break;
     case 5:
       digitalWrite(rele, LOW);
       break;
     case 6:
       digitalWrite(rele, LOW);
       break;
     case 7:
       digitalWrite(rele, LOW);
       break;
     case 8:
       digitalWrite(rele, LOW);
       break;
     default:
       digitalWrite(rele, LOW);   
      break;
  }
  delay(50);  
 }