KKM: LM393 breakouti

Početnik si s Croduinom. Ili s elektronikom? Za oko ti je zapeo određeni modul, ali ne znaš kako ga koristiti? Bez brige, tu je KKM! Kako Koristiti Module (KKM) je serija blog tutorijala e-radionice na kojoj ćeš pronaći sve što ti treba kako bi započeo rad sa svojim omiljenim modulom. Tutorijali obuhvaćaju: tehničke karakteristike, princip rada, upute kako povezati modul s Croduinom te osnovni kod. Sve ostalo prepuštamo tebi na maštu.

UVOD

U ovom tutorijalu upoznati ćemo se s više senzora koji rade na sličnom principu. Svi senzori se povezuju na istu pločicu koja ima analogni i digitalni izlaz te sam senzor na sebi. Kako je moguće da istu pločicu koristimo za više senzora, te kako oni rade pojasnit ćemo u nastavku, a za početak idemo vidjeti koje sve senzore imamo.
 
Senzori koji rade s LM 393 breakoutom su:
• Hall effect senzor
• Senzor požara
• Senzor svjetlosti
• Senzor vibracije
• Senzor vlažnosti
• Senzor vlažnosti zemlje

KAKO RADI?

LM 393 je komparator napona koji uspoređuje dva napona i ovisno o njihovom odnosu izlaz spaja na GND ili na VCC(napon napajanja komparatora), a kako je u našem slučaju napon napajanja 5 V onda na izlazu komparatora imamo ili logičku 0 ili logičku 1. Svaki od ovih senzora je analogni odnosno kao izlaz daje analognu vrijednost koju možemo očitavati na Croduinu, ali s komparatorom pomoću potenciometra možemo podesiti točno određenu vrijednost prilikom koje će izlaz s logičke 0 priječi u logičku 1 ili obrnuto, više o radu komparatora možete pronaći u tutorijalu o LM393 komparatoru. Na pločici za senzor imamo i odgovarajuće otpornike i kondenzatore koji su potrebni za rad komparatora i senzora koji su spojeni na pločicu.
 
Hall effect senzor
Hall effect senzor je senzor koji mjeri magnetsko polje pomoću Hallovog efekta. Što je magnetsko polje jače to je napon na analognom izlazu iz modula manji. Senzor je veličine tranzistora te je također u plastičnom kućištu. Ovaj senzor se koristi za mjerenje brzine kod bicikala te u sličnim primjenama gdje je potrebno izmjeriti brzinu vrtnje (npr. mjerenje brzine vrtnje motora ili za određivanje položaja rotora motora). Ovaj senzor se najčešće koristi kao digitalni senzor jer za mjerenje brzine je dovoljno znati kada pored senzora prođe magnet, te onda samo brojimo koliko puta je magnet prošao u jednoj sekundi te dobijemo brzinu.

Senzor požara(fototranzistor)
Senzor požara je fototranzistor koji zbog svoje tamne leće detektira infracrveno svijetlo. Infracrvenu svjetlost emitira Sunce, ali i vatra te je zbog toga senzor pogodan za detekciju požara. Senzor se aktivira kada je blizu izvora koji emitira infracrveno zračenje i što je zračenje ječe analogni izlaz ima sve manju vrijednost. Digitalni izlaz ima 5 V(logička 1) kada nema zračenja, a kako se zračenje povećava pri podešenoj vrijednosti(vrijednost pri kojoj se mijenja stanje izlaza podešavamo potenciometrom) digitalni izlaz s logičke 1 prelazi u logičku 0.

Senzor svjetlosti
Senzor svjetlosti je fotootpornik koji vrijednost otpora mijenja ovisno o intenzitetu svjetlosti. Kada fotootpornik spojimo na naš breakout dobijemo senzor s kojim možemo mjeriti količinu svjetlosti, a na izlazu dobivamo napon koji je proporcionalan intenzitetu svjetlosti. Na ovom senzoru možemo digitalni izlaz iskoristiti da nam pali rasvjetu tako što ćemo podesiti razinu svjetlosti pri kojoj se aktivira digitalni izlaz. Senzor na analognom izlazu daje veći napon kada je mrak, a manji kada je osvijetljen.

Senzor vibracije
Senzor vibracije radi kao sklopka jer unutar sebe ima malu oprugu, a u sredini opruge je žica i kada se opruga zatrese dodirne središnju žicu i napravi kontakt. Senzorom možemo detektirati kada ima vibracija, a kada nema. Ako pogledamo sliku senzora kako izgleda shvatit ćemo i kako radi te da je to sklopka koja reagira na vibracije.

Senzor vlažnosti
Senzor vlažnosti nam daje analogne vrijednosti ovisno o vlazi, tako da se analogna vrijednost napona smanjuje s povećanjem vlažnosti. Senzor je otporna pločica koja otpor mijenja s promjenom vlažnosti. Digitalni izlaz ima vrijednost 5 V kada vlažnost ima manju vrijednost što podešavamo potenciometrom, a gasi se kada vlažnost bude veća od određene podešene vrijednosti.

Senzor vlažnosti zemlje
Ovaj senzor je sličan senzoru vlažnosti jer radi na istom principu samo što ga koristimo u zemlji, odnosno senzor zabijemo u zemlju kako bi nam mjerio vlažnost zemlje.

KAKO POVEZATI?

Senzori se povezuju ili s A0 izlaza na analogni pin Croduina ako želimo očitavati analogne vrijednosti ili možemo povezati digitalni izlaz(D0) sa senzora na bilo koji digitalni pin Croduina te očitavati samo kada se pin prebaci iz logičke 0 u logičku 1 i suprotno, a vrijednost pri kojoj se to događa moramo podesiti potenciometrom na pločici. Nekada nam je u projektu dovoljno da očitavamo prijelaz između dva stanja, a nekada trebamo analognu vrijednost kako bi mogli ovisno o toj vrijednosti raditi neke stvari( možemo imati više od 2 stanja) pa prema tome trebamo odabrati koji izlaz ćemo koristiti ili možemo koristiti oba izlaza.
Na pločicu trebamo još spojiti +5 V i GND i možemo očitavati vrijednosti sa senzora.

ARDUINO KOD

Za sve senzore je kod isti, i u primjeru smo koristili analogni ulaz i samo s njega očitavali vrijednosti, spremali u varijablu i tu varijablu ispisivali na Serial monitoru.

int ocitanje;//varijabla u koju spremamo vrijednost sa senzora
int analogPin=A0; //pin na koji je spojen analogni izlaz sa senzora
void setup() {
pinMode(analogPin,INPUT); //postavljamo analogni pin kao ulaz
Serial.begin(9600); //Inicijalizacija serijske komunikacije( brzina 9600 bauda)
}
void loop() {
ocitanje=analogRead(analogPin);//spremamo vrijednost s analognog pina u varijablu očitanje
Serial.println(ocitanje);//ispisujemo varijablu očitanje na Serial monitor
delay(1000);//pauza od 1 sekunde
}

 
Za drugi primjer smo uzeli senzor svjetlosti te smo spojili jednu LED diodu te smo ju postepeno palili kako dolazi mrak i isto tako gasili kada se osvijetli naš senzor. Možemo koristiti i neki drugi senzor i kontrolirati nešto drugo, ali ovdje je samo pokazano kako možemo iskoristiti analognu vrijednost sa senzora da dobijemo više stanja.

int ocitanje;//varijabla u koju spremamo vrijednost sa senzora
int analogPin=A0; //pin na koji je spojen analogni izlaz sa senzora
int ledPin=9;
void setup() {
pinMode(analogPin,INPUT); //postavljamo analogni pin kao ulaz
pinMode(ledPin,OUTPUT);
Serial.begin(9600); //Inicijalizacija serijske komunikacije( brzina 9600 bauda)
}
void loop() {
ocitanje=analogRead(analogPin);//spremamo vrijednost s analognog pina u varijablu očitanje
Serial.println(ocitanje);//ispisujemo varijablu očitanje na Serial monitor
//ovisno o očitanju sa senzora postepeno palimo ledicu na pinu 9
//(ako je vrijednost veća od 900 ledica najjače svijetli
//ako je očitanje manje od 200 ledica je ugašena)
if(ocitanje>=900){
analogWrite(ledPin,255);
}
else if(ocitanje>=680){
analogWrite(ledPin,200);
}
else if(ocitanje>=500){
analogWrite(ledPin,150);
}
else if(ocitanje>=350){
analogWrite(ledPin,100);
}
else if(ocitanje>=200){
analogWrite(ledPin,50);
}
else if(ocitanje<200){
analogWrite(ledPin,0);
}
delay(1000);//pauza od 1 sekunde
}
Leave a Reply