Kiolvasás digitális pinből
Szükség lesz egy nyák mikro nyomógombra, 10 kiloOhmos ellenállásra, dugaszolós próbapanelre. Az ábrán látható módon kösd össze őket. A nyomógomb azért van középen hogy a lábai ne legyenek egymáshoz bekötve, mivel a próbapanel közepén ott nincs átvezetés.
A dugaszolós próbapanel összeköttetései:
"Az elektromos áram a töltéssel rendelkező részecskék rendezett áramlása.
Egyenáramnál az áramforrásnak pozitív és negatív pólusa van, az áram megszakítás nélkül folyik a vezetékben és az Ohm-törvény segítségével egyszerűen kiszámítható.
A váltakozó áram esetén az áramot létrehozó váltakozófeszültség értéke ismétlődően (periodikusan) ellentétes értékeket vesz fel (vagyis a pólusok váltakoznak)." http://hu.wikipedia.org/wiki/%C3%81ram
Habár az elektronok a negatív töltéstől a pozítív felé áramlanak, az elektronikában az áram folyási iránya mindig a pozitívtól a negatív felé vannak értelmezve. "A konvencionális áram iránya ellentétes az elektronok tényleges áramlási irányával fémekben, a tipikus elektromos vezetőkben, ami félreértések forrása az elektronika kezdői számára."
http://hu.wikipedia.org/wiki/Elektromos_t%C3%B6lt%C3%A9s#T.C3.B6lt.C3.A9s_az_elektrotechnik.C3.A1ban
Arduino kód a nyomógombhoz:
/* DigitalReadSerial Reads a digital input on pin 2, prints the result to the
serial monitor
///A 2. digitális pint bemenetként használjuk, a kiolvasott
eredményt soros porton továbbítjuk
This example code is in the public domain. */ void setup() { Serial.begin(9600); //soros kom. bekapcsolása, 9600 bps pinMode(2, INPUT); //2. pint bemenetként inicializáljuk } void loop() {
//integerként defíniáljuk a bejövő adatot
int sensorValue = digitalRead(2);
//egész szám, válotzó
//a kapott értéket kiírjuk (serial monitor)
Serial.println(sensorValue);
}
A jobb felső sarkoban lévő gombbal tudod megnyitni a serial monitort. Vagy 0-t vagy 1-t ír ki attól függően hogy meg van-e nyomva a gomb.
SZINTAXISOK
digitalRead(pin);
pin: annak a pinnek a száma, amiből ki akarod olvasni az adatot, integer=egész szám. A kapott érték lehet HIGH (1, be) vagy LOW (0, ki).
int var = val;
var: az általad elnevezett integer változód neve
val: az érték amit ehhez a változóhoz hozzárendelsz
Speciális esete ha folyamatosan növekvő vagy csökkenő változót akarsz: (int x; x= x+1; vagy x= x-1;)
Serial.begin(9600); és Serial.println(val, format);
Az elsővel bekapcsoljuk a soros kommunikációt 9600 bit/sec-on, a másodikkal kiíratjuk a kapott adatokat
val: az érték amit ki akarunk iratni - bármilyen adat lehet
format: elhagyható, ilyankor decimális számrendszet használ (ha oda akarjuk írni: DEC -tizes ,HEX -tizenhatos számrendszer, OCT -nyolcas, BIN -kettes számrendszer)
Kiolvasás analóg pinből
Ehhez egy 1 kiloOhmos potmétert fogunk használni. Ezzel a feszültséget tudjuk szabályozni, egyfajta változtatható ellenállásként alkalmazható. potenciométer
Első lába az 5V pinbe megy, a középső az analóg A0-ba, és a harmadikat le kell földelni. Kiolvasáshoz az analogRead() funkciót fogjuk használni, ami egy számértéket ad vissza 0-1023 között (a használt feszültséghez arányosítva, pl 5V=1023).
Arduino kód:
/* AnalogReadSerial Reads an analog input on pin 0, prints the result to
the serial monitor
//Az A0 analóg pinből kiolvasott értéket küldi soros portra This example code is in the public domain. */ void setup() { Serial.begin(9600); } void loop() { int sensorValue = analogRead(A0); Serial.println(sensorValue); }
SZINTAXISOK
analogRead(pin);
pin: annak az analóg pinnek a száma amiből ki akarunk olvasni
pinMode(A0, OUTPUT); digitalWrite(A0, HIGH);
LED fade-elés
220 Ohmos ellenállásal bekötjük a LED a digitális 9 pinbe:
1. a rövidebb lába a negatív. 2. itt le vn csapva az oldala. 3. a LED rajzi jele. Minden alkatrésznek van ilyen áramköri jele. 4. a pozitív tábánál van az ellenállás.
Az analogWrite() funkciót használjuk a feladathoz, ami PWM-mel működik. Hihetetlenül gyorsan kapcsolja a pin állapotát ki-be így idézi elő a fade effektet. 0-255 közötti értéket használ, pl. az analogWrite(127); 50%-ot jelent.
PWM=pulse with modulation=impulzus-szélesség moduláció
kép: www.cnv.hu/gallery/cikkek/elektronika/pwm%20magyarazat.jpg
Arduino kód:
/* Fade This example shows how to fade an LED on pin 9 using the analogWrite() function.
// a 9. pinbe kötött LED fade-elése This example code is in the public domain. */ int brightness = 0; //LED fényerejét változóként adjuk meg int fadeAmount = 5; // fade effekthez használt érték void setup() { // 9 pint kimenetként deklaráljuk: pinMode(9, OUTPUT); } void loop() { // a brightness nevű változó értékét kiküldjük: analogWrite(9, brightness); //loop következő lefutásához megváltoztatjuk a fényerőt: brightness = brightness + fadeAmount; //a fade-elés irányát megváltoztatjuk ha a végére ért: if (brightness == 0 || brightness == 255) { fadeAmount = -fadeAmount ; /// +ból -, -ból + lesz } //30 ms-t várunk hogy lássuk a fényerő csökkenést : delay(30); }
SZINTAXIS
analogWrite(pin, value);
PWM pinre küldhetünk vele értéket, hogy analog tulajdonsággal ruházzuk fel a digitalis pint.
pin: amelyik pwm pint kimenetként használjuk
value: értéke 0-255 között
(emlékeztető: az analogRead() 0-1023 között olvas ki)
FELADAT:
http://arduino.cc/en/Tutorial/BarGraph For ciklus, if, else -szerepel a kódban.
forrás: http://arduino.cc/en/Tutorial/DigitalReadSerial, http://arduino.cc/en/Reference/DigitalRead,
http://arduino.cc/en/Tutorial/DigitalPins, http://arduino.cc/en/Reference/Int, http://arduino.cc/en/Reference/Serial
http://arduino.cc/en/Serial/Println, http://arduino.cc/en/Tutorial/AnalogReadSerial,
http://arduino.cc/en/Tutorial/AnalogInputPins, http://arduino.cc/en/Tutorial/Fade,
http://arduino.cc/en/Reference/AnalogWrite, http://arduino.cc/en/Tutorial/PWM