Kodit
muuttuvat nykyisin yhä enemmän ”älykkäiksi”. Ainakin tuosta
aiheesta meuhkataan nykyään aika tavalla. Toisaalta on ehkä
hyväkin miettiä, onko ihmisen syytä kovinkaan paljon luovuttaa
aivotoimintaansa automaatille.
No, joka
tapauksessa sarja-37:stä löytyy paljon hyödyllisiä osasia kodin
”älykkyyden” nostamiseksi. Näin syksyllä kun päivätkin
hämärtyvät ja iltapäivät ovat jo aivan pimeitä, aloitan tämän
teeman hämäräkytkimellä.
Sarjassa
37 on yhtenä osasena LDR (Light
Dependent Resistor ) eli
valovastus. Niin kuin nimikin kertoo, riippuu komponentin vastusarvo
valon voimakkuudesta. Ensimmäiseksi ryhdyin mittaamaaan vastuksen
arvon riippuvuutta valon voimakkuudesta. Sain aluksi aivan omituisia
ja epäloogisia arvoja. Toisin sanoen törmäsin taas tähän
kiinalaiseen ”laatuun”. Kun katselin piirilevyä suurennuslasin
läpi, huomasin siinä kylmiä juotoksia. Toisin sanoen tina ei ollut
kunnolla sulanut ja tarttunut valovastuksen ja liittimen johtoihin.
Käytännössä tämä merkitsee sitä, että sähkön johtavuus
näiden komponenttien rajapinnoissa on häilyvä. Tästä selvisin
juottamalla komponentit uudestaan.
Nyt
merkinnät piirilevyllä ovat oikein. Miinus tulee maihin, plus 5V
kytketään keskelle ja signaali (analogia input) saadaan pisteestä
S. Mitattaessa vastusarvo vaihteli 250 ohmin (kirkkaan valon alla) ja
500 kilo-ohmin (suojattuna kynän hylsyllä) välillä. 10 kilo-ohmin
etuvastus on valmiina piirilevyllä. Kytkettynä Arduinon
analogiatuloon, vaihteli muunnoksen jälkeinen signaali 150
(pöytälamppu päällä) ja 800 välillä (LDR peitettynä
hylsyllä). Valitsin rajaksi 350 (const int Con_ValoRaja = 350;).
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimzPpirsMvTfbejbN5nAJeN9KhBbk8PMdrHKB-nC8_sA37CspltGpoSoFnc5q0SfHXxD03R9d1wKAjHj_8N2vCVH3YYDisDjX-PeSAJErShmnizjcd3ETMIZRGs-_pOgObPvuh1GT8Xp2g/s1600/LDR_LED_v1.png)
Ohessa
kykentä Arduinoon:
Raja-arvo
sattui ihan hyvään kohtaan, sillä jo kädellä peittäminen sai
LEDin syttymään.
![]() |
Vasemmalla
päytälamppu päällä ja oikealla pois päältä
|
Tästä
on hyvä jatkaa älykodin kehittämistä. Voisi laittaa
liiketunnistimen. Jos herää aamuyöstä, niin laite voisi laittaa
vessaan valot valmiikisi päälle ja sammuttaa, kun tärkeimmät on
hoidettu. LEDeillä voi myös lähettää dataa toiselle laitteelle
joka voisi tallettaa käyntikerrat, jolloin aamulla ei tarvitsi
keskustella asiasta, koska faktat ovat tallessa. Samoin kuorsausta
voisi tarkkailla, jolloin voisi tilastoida jokaisen rahinan ja apnean
ajankohdan ja keston. Ja varmaan paljon muutakin hyödyllistä. Mutta
olkoon tässä nyt vain tämä hämäräkytkin.
HÄMÄRÄKYTKIMEN
OHJELMA
/***************************************
*
Ohjelma 24
*
21.11.2016
*
Hämäräkytkin LDR -> LED
**************************************/
//
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;
// Hämärän määrittelyt
const
int Con_LDR = 0; // Analogiamittaus A0
const
int Con_ValoRaja = 350; // LEDin sytytysraja
int Int_LDR_Ana = 0; // LEDin mittausmuuttuja
const
int Con_LED = 2; // Lähtöpinni LEDille
//
ASETUKSET:
void
setup(){
Serial.begin(9600);
pinMode(Con_LED,
OUTPUT);
}//
Asetuksen loppu
//
FUNKTIOT
void
Fun_Tulostus(){
Serial.print("Valomuunnos
:"); Serial.println(Int_LDR_Ana);
}
//
PÄÄLOOPPI
void
loop(){
//
Ohjelmakierros / viivelaskuri
Unt_Kierrokset++;
if(Unt_Kierrokset >
Con_Kierrokset){ // Luvulla sovitetaan kierr -> sek
Unt_Sekunnit++;
Unt_Kierrokset = 0;
}
// Kierroslakuri loppu
Int_LDR_Ana
= analogRead(Con_LDR);
if(Int_LDR_Ana > Con_ValoRaja){
digitalWrite(Con_LED, HIGH);
}else{
digitalWrite(Con_LED, LOW);
}
Int_PrintViive--;
if(Int_PrintViive == 0){
Fun_Tulostus();
Int_PrintViive
= Con_PrintViive;
}
delay(1);
}
// Pääohjelma LOPPU
Ei kommentteja:
Lähetä kommentti