Mi az, hogy port?

A port angolul azt jelenti, kikötő. A kikötőbe hajók futnak be, vagy hajók indulnak. Egy mikrokontroller lábait is portnak nevezik, mert oda jelek futnak be, vagy jelek indulnak ki.

Ismered a számítógép-hálózatokat? Ott is használjuk a port szót ugyanilyen értelemben: ott egy portra csatlakozva adatok futnak be, vagy adatok indulnak ki. A számítógépes hálózatok esetén azonban a port nem megfogható dolog, csak a számítógépek hálózat-vezérlő programjában létezik.

Az A-star panelen az alábbi kivezetéseket használjuk:

Az A-star panel portjai

Ezek közül a 0-12 közötti port - mert innen jelek indulhatnak el, vagy jelek futhatnak be. De akkor mi a többi? A többi nem port, a többi fix villany bemenet, vagy kimenet. A VIN és a GND közé elemet tehetünk, így az A-Star önállóan is működtethető. A jobb oldalon az 5V kivezetés és a GND között 5V villany van, ezt akkor fogjuk használni, ha olyan érzékelőket építünk be, amiknek szükségük van folyamatos energiaellátásra.

Milyen lehet egy port?

Lehet kimenet, vagy bemenet, ezt gondolom már kitaláltad. De ezen kívül is vannak variációk:

Van egy kis rendetlenség azonban az analogRead esetén! Először is, nem minden port tud analóg bemenetként működni, csak azok amik mellett a panelen kis háromszög van. Ezek mellé A0, A1, stb. betűket is tettem a rajzon. Ráadásul ezek furán vannak számozva: ha a 4-es porton lévő villany értékét akarjuk megkapni, akkor az analogRead(6)-ot kell írni. Ez apró kis kényelmetlenség, de vagy megszokjuk, vagy később megtanuljuk, hogy hogyan lehet elrejteni.

Az analogWrite azokon a portokon működik, amik mellé kis hullámvonalat rajzoltak. Ilyen a 3,5,6,9,10 és 11-es port. Ezért néha lehet, hogy variálni kell, hogy melyik be és kimenetet melyik portra tesszük: ha szeretnénk analóg kimenetet, akkor csak ezeket használhatjuk.

Ugye emlékszel még a 07-es részből, hogy mi az, hogy analóg és digitális jel? A digitális bekapcsolva vagy kikapcsolva van, míg az analóg értéke arányos valamivel. Például, egy fényérzékelőből olyan villany jön, aminek az értéke annál nagyobb, minél több fény éri. Az A-star pedig ezt meg tudja mérni, és minél több fény van, annál nagyobb számot ad az analogRead. Az analogWrite segítségével pedig ledeket tudunk fényerőszabályozni: tudunk kisebb és nagyobb fényt csinálni, és a fény nagysága arányos azzal a számmal, amit az analogWrite-ba írunk.

Ezt most mind meg kell tanulni? Dehogy kell! Csak annyit kérek, hogy ne feledd, az A-star analóg és digitális dolgokhoz is jó!

Miért a 0. port a legelső?

A számítógépeknél a 0 a "legelső" egész szám, ezért sokszor nullával kezdenek minden sorszámozást. Ez egy egyszerű szokás, amin nem kell meglepődni.

Tegyél rá egy ledet!

Upsz, van egy kis gond. A ledek igaziból 1.8-2V körüli villanyt kedvelnek, az A-starból pedig 5V jön ki. Ezt a különbséget úgy lehet megszüntetni, hogy a leddel sorba be kell tenni egy pici ellenállást. Az ellenállás - ez a kis hernyószerű alkatrész - arra jó, hogy nehezebben megy benne a villany. Egy ledhez 220-470 ohm értékű ellenállás kell, és azzal már 5V-ról is jól megy, valahogy így:

Tegyél rá ledet!

Mi történik itt? Az A-star 0-ás kimenetére csatlakozik az ellenállás. Az ellenállásra a led. A led másik oldala pedig a GND pontra megy. (A GND pont olyan, mint az elemek (-) kivezetése: minden villanyt ehhez képest létezik, így amikor az A-star 5V-ot tesz ki az 1-es porton, az ehhez képest 5V.)

Emlékszel a legelső DM-re? A led polaritásfüggő: ezért nem mindegy, hogy melyik oldalát hova kötöd. A led belsejében látható pici háromszög megy a portra, a másik pedig a GND-re. A rövid verzió: fordítsd meg, ha nem megy! :)

Az 5V-os led

Ez az ellenállás dolog azért elég macera. Ezért készítenek olyan ledet is, amibe ez be van építve, így a ledet csak simán rá kell kötni az A-starra, és készen vagyunk.

5V-os led

A rajzon a bekarikázott pici fekete mákszem az ellenállás! Alig látszik, és innentől nekünk sem kell törődni vele! Ezért használunk ilyen ledeket mostantól fogva! Ekkor ilyen egyszerű lesz minden:

Tegyél rá 5V-os ledet!

Mit csinál az A-star?

Lehet, hogy kicsit fura, hogy mit is kötöttünk össze mivel az előbb. De valójában ez még mindig csak olyan, mint a legelső elemlámpa kapcsolásunk:

A program nyomja a gombot

Éppen csak annyi a különbség, hogy a gombot a programunk nyomogatja! Amikor bekapcsoljuk a kimenetet, az pont olyan, mintha megnyomnánk a gombot. A lámpa helyett most egy ledet tettünk be.

Sajnos az A-star (és a legtöbb chip) nem elég erős ahhoz, hogy egy igazi izzólámpát kapcsoljon közvetlen. Ezért kérlek, ne tegyél lámpát közvetlen az A-star portjára, mert ettől az megdöglend. Hasonlóképp ne köss össze egy kimenet a GND-vel vagy az 5V-al közvetlenül, hiszen az olyan rövidzárlat, amit az elemek sem szeretnek, és a chipek nagyon nagyon utálnak.

Próbáljuk ki az analóg kimenetet!

Elviekben, ha az 9-es portot analóg formában írjuk, akkor 0..255 közötti értéket tehetünk rá. A 07-es részből tudjuk, hogy ez azt jelenti, hogy 0 esetén kikapcsolt, 255 esetén bekapcsolt lesz a led, a közte lévő értékeknél meg - halványabb!

A led a 9-es porton
Miért pont a 9-es? Tekerj kicsit feljebb ezen az oldalon! Sajnos nem használható az összes port analóg kimenetnek, csak a 3,5,6,9,10 és 11-es!

Próbáld csak meg:

void setup() {
  pinMode(9, OUTPUT);
}

void loop() {
   analogWrite(9, 0); 
   delay(100);
   analogWrite(9, 50); 
   delay(100);
   analogWrite(9, 100); 
   delay(100);
   analogWrite(9, 150); 
   delay(100);
   analogWrite(9, 250); 
   delay(100);
}