Vasaló Őr :)

Kezdjük valami egyszerűvel.

Találkoztatok már azzal a jelenséggel, (főleg gyerekes családoknál fordul elő) hogy a frissen megszáradt ruha utolsó percben lesz kivasalva indulás előtt, és a vasaló bekapcsolva marad és ott kattog a vasalódeszkán ameddig hazajössz és észre nem veszed, hogy furcsán meleg van ebben a szobában pedig itt a fűtés alapjáraton szokott menni. 🙂

Aztán rájössz, hogy a vasaló volt és hogy tűzveszélyes meg, hogy 8 órán keresztül 1500W lógott a hálózaton és vámpírkodott a villanyszámládon.

A következő projekt ezt hivatott orvosolni.

Szükséges kellékek:

Csak a burkolata 🙂
Arduino Pro Mini 5V
Arduino Pro Mini 5V
12V kapcsolóüzemű tápegység 400mA
5V kapcsolóüzemű tápegység 400mA

Egyéb hozzávalók:

  • ellenállás R1,R2 1K   2db
  • ellenállás R3 10K 1db
  • tranzisztor Q1 BC817 1db
  • dióda D1 1N4148 1db
  • 3mm piros LED DS1 1db (nem kötelező)
  • 5V relé 10A tudjon kapcsolni AC-ben (nagyon fontos, hogy a vasaló által felvett teljesítményhez igazítsd)
  • mikrokapcsoló S1 1db
  • pc speeker (hangszóró) LS1 1db

Működés:

Az áramkör feladata időzítés, hogy a rákapcsolt eszköz csak bizonyos ideig működjön. A készüléken található egy bekapcsoló gomb, ezt megnyomva a készülék bekapcsolja a rádugott eszközt, jelzi a bekapcsolást zenével, leszámolja a programban megadott időt jelen estben 30 percet majd kikapcsol. 29 percnél zenével jelzi hogy ki fog kapcsolni, ha tovább akarunk vasalni meg kell nyomni a bekapcsoló gombot és újabb 30 perc áll rendelkezésre. 30-dik perc végén kikapcsol. (a hosszabbítás bármikor indítható a gomb benyomásával) Így megelőzi a bekapcsolva felejtett vasaló jelenségét. 🙂

NAGYON FONTOS, hogy a relé kapcsolási teljesítményét a fogyasztó, jelen estben vasaló által felvett teljesítményhez igazítsd, különben egy olvadt műanyag pacát találsz a helyén és tűzveszélyes is lehet. A vasalón fel van tüntetve mennyit fogyaszt pl.:1500W a relén viszont az átfolyatható áram van megadva pl.:10A. Mivel 230V feszültségen  és 10A fog átfolyni rajta ezért P=U x I x cos(Fi) jelen esetben a fázisszög elhanyagolható, mivel rezisztív  fogyasztónk van. Tehát a kapcsolható teljesítmény P= 230 x 10 tehát 2300W ami elegendő a vasalóhoz.

MÉG-FONTOSABB! Az áramkör egyes részei életveszélyes feszültségen vannak, ennek figyelembevételével építsd meg. Bármilyen anyagi, illetve nem anyagi kár esetén engem felelősség nem terhel. Én szóltam!!! 🙂

Program:

A programot több Arduino példaprogramból ollóztam össze (főleg csak a saját részeket fogom lefordítani). Az Arduino pro mini panel gyárilag beépített LED-jét hagytam villogni. A programban nincsenek késleltetések (delay) ugyanis egy delay idejére tulajdonképpen szünetel a mikrokontrollerben a programfutás, várakozik.

#include “pitches.h”

// hangok:
int melody[] = {
NOTE_C4, NOTE_G3, NOTE_G3, NOTE_A3, NOTE_G3, 0, NOTE_B3, NOTE_C4
};

// hangok ideje: 4 = quarter note, 8 = eighth note, etc.:
int noteDurations[] = {
4, 8, 8, 4, 4, 4, 4, 4
};
// kimenetek, bemenetek és változók megadása
const int ledPin = LED_BUILTIN;// the number of the LED pin
int rele=6; // relé a 6 lábon
int gomb=A1; // nyomógomb az A1 bemeneten
int g_allapot; // változó a nyomógomb állapotának tárolására
long kikapcs = 0;//ennyit várjon kikapcsolás előtt változó

// Variables will change :
int ledState = LOW; // ledState used to set the LED

// Generally, you should use “unsigned long” for variables that hold time
// The value will quickly become too large for an int to store
unsigned long previousMillis = 0; // will store last time LED was updated

// constants won’t change :
const long interval = 1000; // interval at which to blink (milliseconds)

void setup() {

pinMode(ledPin, OUTPUT);
pinMode(rele, OUTPUT);
digitalWrite(rele, LOW);
pinMode(gomb, INPUT);
}

void loop() {
g_allapot=analogRead(gomb); // gomb állapotának beolvasása
if(g_allapot<=100){ // mivel beépített AD átalakítót használunk ha 100 alá esik az AD által mért érték
kikapcs=1800000; // 30 perc milliszekundumban
digitalWrite(rele, HIGH); // relé behúz
hang(); // nóta indul 🙂
}
unsigned long currentMillis = millis();

if (currentMillis – previousMillis >= interval) {
// save the last time you blinked the LED
previousMillis = currentMillis;
kikapcs=kikapcs-interval;

if(kikapcs==60000){ // mivel visszaszámlálás folyik ha kikapcs változó elérte az 1 percet

hang(); // nóta indul
}

if(kikapcs<=0){ // ha kikapcs változó elérte a 0-át
kikapcs=0;
digitalWrite(rele, LOW); // relé elenged
}
// if the LED is off turn it on and vice-versa:
if (ledState == LOW) {
ledState = HIGH;
} else {
ledState = LOW;
}

// set the LED with the ledState of the variable:
digitalWrite(ledPin, ledState);
}
}

// hang lejátszó funkció 8 lábon a hangszóró

void hang(){

// iterate over the notes of the melody:
for (int thisNote = 0; thisNote < 8; thisNote++) {

// to calculate the note duration, take one second
// divided by the note type.
//e.g. quarter note = 1000 / 4, eighth note = 1000/8, etc.
int noteDuration = 1000 / noteDurations[thisNote];
tone(8, melody[thisNote], noteDuration);

// to distinguish the notes, set a minimum time between them.
// the note’s duration + 30% seems to work well:
int pauseBetweenNotes = noteDuration * 1.30;
delay(pauseBetweenNotes);
// stop the tone playing:
noTone(8);
}

}

 

Program letöltése

Végeredmény:

Indul:

A tartalom nem elérhető.
A sütik használatát az "Elfogadás" gombra kattintva lehet jóváhagyni.

Többszöri újraindítás (fárasztó tartani a telefont 🙂 ):

A tartalom nem elérhető.
A sütik használatát az "Elfogadás" gombra kattintva lehet jóváhagyni.

Kikapcsolás jelzése és kikapcsolás:

A tartalom nem elérhető.
A sütik használatát az "Elfogadás" gombra kattintva lehet jóváhagyni.