2012.01.21.
13:08

Írta: harsanyireka

Alapok: Kiolvasás analóg és digitális pinből, LED fade-elés

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.

button.png

 A dugaszolós próbapanel összeköttetései:

breadboard1.gif

 

"Az elektromos áram 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. "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

AnalogReadSerial_BB.png

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:

simplefade_bb.pngled_magyarazat.gif

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ó

pwm.gif

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/DigitalReadSerialhttp://arduino.cc/en/Reference/DigitalRead,

http://arduino.cc/en/Tutorial/DigitalPinshttp://arduino.cc/en/Reference/Inthttp://arduino.cc/en/Reference/Serial

http://arduino.cc/en/Serial/Printlnhttp://arduino.cc/en/Tutorial/AnalogReadSerial

http://arduino.cc/en/Tutorial/AnalogInputPinshttp://arduino.cc/en/Tutorial/Fade

http://arduino.cc/en/Reference/AnalogWritehttp://arduino.cc/en/Tutorial/PWM

cc-by-sa3s.jpg

Szólj hozzá!

Címkék: leckék

A bejegyzés trackback címe:

https://harsanyireka.blog.hu/api/trackback/id/tr313590153

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.
süti beállítások módosítása