Ez a kis programocska beállítja az Arduino Uno R3 4-es kivezetését (chip 6-os kivezetése, d port 4. bitje) bemenetnek, valamint az Arduino Uno R3 13-as kivezetését (chip 19-es láb, b port 5. bitje) kimenetnek. H a bemeneten magas szintet talál, akkor a kimenetet is magas szintre állítja be, ha a bemenet alacsony szintet talál, akkor a kimenetet is alacsony szintre állítja.
Természetesen a program kipróbálásához ki kell alakítanunk a hardver környezetet, vagyis rá kell kötnünk egy nyomógombot a bemenetre, és egy ledet a kimenetre. Praktikusan úgy szokták a nyomógombot bekötni, hogy lenyomásakor a bemenetet a földre húzza le, ha nincs benyomva, akkor pedig a chip-be beépített felhúzó ellenállás a bemenetet felhúzza +5V-ra (magas szintre). A kimenetre egy soros kb. 200ohm ellenállással közvetlenül ráköthetjük a led-et. Az alábbi ábrát a Tavir 60 napos tanfolyamából vettem kölcsön. Ezen külső felhúzó ellenállás is szerepel, ami nem kell, ha bekapcsoljuk a chip-be épített felhúzó ellenállást.
Természetesen ilyen bekötéssel a kapcsolás pont fordítva működik, a led folyamatosan világít és a nyomógomb lenyomásakor elalszik!
A példa programban az egyes sorokat kommentekkel láttam el. Remélem ez elegendő a működés megértéséhez.
Arduino C példaprogram:
void setup() { pinMode(7, OUTPUT); //7-es kivezetés kimenet pinMode(6, INPUT); //6-os kivezetés bemenet digitalWrite(6,HIGH); //belső felhúzó ellenállás bekapcsol digitalWrite(7,LOW); //7-es kivezetés alacsony szint (led nem világít) } void loop() { if (digitalRead(6)==HIGH) //ha a bemenet 1 {digitalWrite(7,HIGH);} //akkor led világít else //egyébként (bemenet 0) {digitalWrite(7,LOW);} //led nem világít }
BASCOM példaprogram:
$regfile = "m328pdef.dat" $crystal = 16000000 Config Portd.7 = Output 'portb.7 kimenet Config Portd.6 = Input 'portd.6 bemenet Portd.6 = 1 'felhúzó ellenállás bekapcsolva a portd.7 kimeneten Portd.7 = 0 'portb.7 kikapcsolva (led nem világít) Do If Pind.6 = 1 Then 'ha a bemenet 1, akkor Portd.7 = 1 'kimenet is 1 Else 'egyébként (bemenet 0) Portd.7 = 0 'kimenet is 0 End If Loop End
A BASCOM programhoz még annyi magyarázatot fűznék hozzá, hogy az első két sor el is hagyható, ha fejlesztő környezetben beállítjuk a chip típusát és a kristályfrekvenciát (lásd az első LED villogtató program leírását). Viszont ezeket a paramétereket a programba is beleírhatjuk, így a fordító innen is tudhatja, hogy milyen chip-et fogunk használni. Így a program is hordozhatóvá válik, nem kell egy másik gépen mindent újra beállítani, ezért érdemes ezt megtenni.
Ha nem untad meg, akkor kattints ide, hogy a megtudhasd, hogyan kell a PWM kimeneteket használni!