Stránka 1 z 3

Úroveň hladiny v jímce

Napsal: 20 čer 2020, 16:42
od Pojkynet
Ahoj všem příznivcům arduina
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);  
 }
Předem moc děkuji za každou radu

Re: Úroveň hladiny v jímce

Napsal: 26 čer 2020, 06:27
od Diego
Ahoj,
Prvni vec me napada vypnou sirenu primo vypinacem.
Pokud to chces resit v programu tak este rekni kdy se zas ma po vypnuti sirena aktivovat ;-)

Re: Úroveň hladiny v jímce

Napsal: 26 čer 2020, 08:06
od Axamith
Praktická otázka nasr.... souseda. už mu to zase 3 hodiny houká a nechce to vypnout . . .
Co tam dát nějaké časování? Např. alarmy dle ČSN sní houkat max. 1 minutu. Jasně, kdo to ale dodržuje?

Re: Úroveň hladiny v jímce

Napsal: 28 čer 2020, 23:12
od Pojkynet
Diego píše:
26 čer 2020, 06:27
Ahoj,
Prvni vec me napada vypnou sirenu primo vypinacem.
Pokud to chces resit v programu tak este rekni kdy se zas ma po vypnuti sirena aktivovat ;-)
Idea je přijdu k houkající jimce vypnu tlačítkem sirenu, odstraním problém neodčerpané vody a zresetuji arduino.

Re: Úroveň hladiny v jímce

Napsal: 29 čer 2020, 06:12
od pavel1tu
To není vůbec žádný problém,
ale osobně jsem proti, tak nic neupravuji.
Houkání max. 1min, bez opakování ...

Re: Úroveň hladiny v jímce

Napsal: 29 čer 2020, 13:30
od Pojkynet
pavel1tu píše:
29 čer 2020, 06:12
To není vůbec žádný problém,
ale osobně jsem proti, tak nic neupravuji.
Houkání max. 1min, bez opakování ...
Děkuji to je opravdu "přínosná rada"🙂

Re: Úroveň hladiny v jímce

Napsal: 29 čer 2020, 13:35
od Pojkynet
Jedna minuta je opravdu málo.Je to taková malinká piezo.
Potřeboval bych alespoň,aby se to po nějakém čase zopakovalo.Jinak si toho nikdo nevšimne dokud nebude vyplavená zahrádka

Re: Úroveň hladiny v jímce

Napsal: 29 čer 2020, 14:07
od analytik
Napadlo mě zdánlivě jednoduché řešení neposílat na sirénu tvrdé hodnoty HIGH a LOW, ale aktuální stav proměnné, jejíž hodnota by se mimo dosud používaným čidlem dala překlopit ovládacím tlačítkem do stavu LOW (siréna by zmlkla) a po poklesu hladiny znovu nahodit do základního stavu HIGH (siréna připravena k další aktivaci čidlem)třeba při vypnutí relé. Problém vidím v začlenění takovéto úpravy do užívaného stylu ovládání v cyklech For, kde jsou hodnoty HIGH a LOW natvrdo pro všechny výstupy.

Re: Úroveň hladiny v jímce

Napsal: 29 čer 2020, 16:22
od kiRRow
Tím, že máš sirénu na stejném výstupu jako ledku, tak ti to nepůjde moc dobře implementovat. Musíš zhasnout ledku, ale ta se ti při příštím cyklu zase rožne, takže si musíš pamatovat odstaveníSirény a tu ledku už nepoužívat do té doby než poruchu odstraníš. Dej si na tu sirénku natvrdo přepínač a tím ji odstavuj. Když si koupíš dvouřadový, tak si přes druhou řadu můžeš i na tvrdo prohnat LEDku (nebo rovnou dvě - nebo dvoubarevnou zelená/červená), která tě upozorní na to, že máš sirénu odstavenou. Ono i naštvaná půlka vesnice je furt lepší než jímka na zahradě. Od toho ty sirény přece jsou, aby to zburcovalo lidi a ti šli zjistit co je to za kravál.
Jinak pokud ti to píská málo, tak doporučuji SA-105. Malá 12V piezosirénka, ale kravál jak hrom - v uzavřeném prosotru se k ní nedá přiblížit : hluk narušuje centrum rovnováhy :D

Re: Úroveň hladiny v jímce

Napsal: 29 čer 2020, 23:05
od Pojkynet
..to řešení s vypínačem,není úplně blbé řešení asi do toho půjdu,jiné řešení zatím nemám :? a už to potřebuji zprovoznit,protože pořád prší :o