torstai 24. marraskuuta 2016

Automaattinen liekkivahti KY-26 ja KY-19

Synkkä syksyteema jatkuu. Iminen tarvitsee valoa, joten luonnollisesti valon ja myös tunnelman kohottamiseksi hän sytyttää iltojensa iloksi kynttilän. Avotuli on kuitenkin aina riski. Tämän riskin pienentämiseksi tekniikka onneksi tarjoaa apua, joten ihminen voi keskittyä mielekkäämpiin tehtäviin kuin kynttilän vahtimiseen. Vahtimisen voi hoitaa leikin tunnistin (KY-026). Se voi välittää hätätilan releelle (KY-019), mikä puolestaan käynnistää puhaltimen, jonka tehtävänä on sammuttaa tuli. Paremman kuvan kylän pelastamisesta saa katsomalla pienen videopätkän (antinarduvideo25. youtube.com).
Huojentavaa tietää, että kylä pelastuu

Kuvassa on kyllä ”vaahtosammuttaja”, mutta se on hämäystä. Sen etumerkki on negatiivinen. Se on sytkäri! Puhaltimen taustalla näkyy hiukan releen syrjää istutettuna tuohon testitasoon.







Kytkentä Arduinoon:













Puhallin (siis tämä käyttämäni) tarvitsee erilisen virtalähteen, sillä se ei toimi 5V:in jännitteellä. Myös sen ottama teho on paljon suurempi, mitä Arduinon pinni (noin 40mA) tai USB-linja pystyvät syöttämään. Paristot, akku tai tässä käyttämäni virtalähde toimivat oikein hyvin. On todella hyödyllistä omistaa jokin pieni virtalähde tai 12V:in akku erilaisten liitätälaitteiden syöttöön. Paristot myös, mutta niitä täytyy olla aika usein olla korvaamassa uusiin jos on innostunut kokeilija.

Jos Turussakin olisi aikoinaan (1827) ollut tällaisella Arduinolla toteutettu palovahti, niin kaupunki ei olisi tuhoutunut niin pahasti. Jos katsoo tuota videota (antinarduvideo25. youtube.com) voi huomata kuinka liekkianturin merkkiLEDi värähtelee sekä liekin ilmaisun alussa, että lopussa. Siksi on tärkeätä, että relettä ohjataan hallitusti ajan mukaan. Anturin (KY-026) levyllä on trimmeripotentiometri, minkä avulla tunnistuksen herkkyytä voi säätää. Arvon voi lukea ruudulta. Arvo vaihteli 30 (liekki tunnistettu) ja 800 välillä (ei liekkiä). Siksi olen jättänyt ohjelmaan tuon tulostuksen aliohjelman. Lisäksi printillä on käynti- ja ilmaisuLEDit.

OHJELMA 25
/***************************************
* Ohjelma 25
* 22.11.2016
* Liekkivahti (TY-026) tunnistaa kynttilän, jolloin
* rele (TY-019) vetää käynnistäen pahaltimen, mikä
* sammuttaa liekin.
**************************************/

// MÄÄRITTELYT:
// Ajastukset
const int Con_Kierrokset = 800;
unsigned int Unt_Sekunnit = 0; // Viivelaskuri
unsigned int Unt_Kierrokset = 0; // Ohjelmakierroslaskuri
int Int_Kierrokset = 0;

// Tulostuksen tahdistus
const int Con_PrintViive = 1000;
int Int_PrintViive = Con_PrintViive;

// Tulot ja lähdöt
const int Con_LiekData = 2;
boolean Bol_LiekData = false;
const int Con_Ohjaus = 3;
const int Con_LiekAna = 0;
int Int_LiekAna = 0;
const int Con_LED = 13;
int Seq_Ohjaus = 0;

// ASETUKSET:
void setup(){
Serial.begin(9600);
pinMode(Con_LiekData, INPUT);
pinMode(Con_Ohjaus, OUTPUT);
pinMode(Con_LED, OUTPUT);
}// Asetuksen loppu

// FUNKTIOT
void Fun_Tulostus(){
Serial.print("Tulon arvo :"); Serial.println(Int_LiekAna);
// Serial.print("Sekunnit :"); Serial.println(Unt_Sekunnit);
}

// PÄÄLOOPPI
void loop(){
Unt_Kierrokset++;
if(Unt_Kierrokset > Con_Kierrokset){ // Luvulla sovitetaan kierr -> sek
Unt_Sekunnit++;
Unt_Kierrokset = 0;
} // Kierroslakuri loppu

// Mittaukset ja merkkivalo tunnistuksesta
Int_LiekAna = analogRead(Con_LiekAna);
Bol_LiekData = digitalRead(Con_LiekData);
digitalWrite(Con_LED, Bol_LiekData);

// Puhallinjakson käynnistys
if(Bol_LiekData == true && Seq_Ohjaus == 0){Seq_Ohjaus = 1;}
// Puhallinjakson ohjaus. 5s jälkikäynti
switch (Seq_Ohjaus) {
case 1:
Unt_Sekunnit = 0;
digitalWrite(Con_Ohjaus, true );
Seq_Ohjaus = 2;
break;
case 2:
if(Unt_Sekunnit > 5){
digitalWrite(Con_Ohjaus, false);
Seq_Ohjaus = 0;
}
break;
}

Int_PrintViive--;
if(Int_PrintViive == 0){
Fun_Tulostus();
Int_PrintViive = Con_PrintViive;
} // Tulostuskutsu loppu
delay(1);
} // Pääohjelma LOPPU

Ei kommentteja:

Lähetä kommentti