1. LED
Potrebné pomôcky
- Breadboard, Arduino Nano, dupont káble
- LED (ľubovoľnej farby)
- rezistor (ideálne v rozsahu 100Ω-400Ω)
Poznámky
- LEDka má dlhšiu nohu na anóde (+), skosenú hranu na katóde (-) a medzeru vo vnútri medzi dvoma plochami bližšie k anóde (+).
- Na vyskúšanie (a zamyslenie) – čo sa stane ak sa použije silnejší rezistor (10kΩ) a čo ak sa vymení poradie z Vcc-R-LED-GND na Vcc-LED-R-GND?
- 7-segmentový displej. Vcc na prostredný pin (na ľubovoľnej strane) a GND na niektorý z ostatných pinov (okrem prostredného).
- Bonusová úloha – zapojte si medzi rezistor a LEDku jeden potenciometer, ktorým sa bude dať ovládať intenzita.
Zapojenie
2. DigitalWrite
Potrebné pomôcky
- Breadboard, Arduino Nano, dupont káble
- LED (ľubovoľnej farby)
- rezistor (ideálne v rozsahu 100Ω-400Ω)
Poznámky
- V Arduino IDE si nastavte v Tools:
- Board: Arduino Nano
- Processor: ATPMega328P (old bootloader) – skúsenosť bola, že väčšine to pri iných možnostiach nechcelo ísť.
- Port: (záleží od OS) – ak nefunguje prvá možnosť, skúste pozorovať, ktoráý port sa neobjavuje pri odpojenom zariadení
- Vyskúšajte si tento kód najprv s pinom 13 na zabudovanej LEDke. (File -> Examples -> 01.Basics -> blink)
- Pri digitalWrite je nutné nastaviť režim pinu na OUTPUT.
- Použite nasledovný kód a zapojenie – v tomto prípade je výstup na pine D6. Číslo pinu si môžete v prípade potreby zmeniť.
Kód
const int pin = 6; void setup() { pinMode(pin, OUTPUT); } void loop() { digitalWrite(pin, HIGH); delay(1000); digitalWrite(pin, LOW); delay(1000); }
3. AnalogWrite
Potrebné pomôcky
- Breadboard, Arduino Nano, dupont káble
- LED (ľubovoľnej farby)
- rezistor (ideálne v rozsahu 100Ω-400Ω)
Poznámky
- Zapojenie je totožné s predošlým experimentom.
- V prípade použitia iného pinu ako D6 si skontrolujte (pinout), či príslušný pin podporuje PWM.
- AnalogWrite nepotrebuje nastavovat pinMode.
Kód
const int pin = 6; void setup() { } void loop() { for (int i = 0; i < 256; i+=10) { analogWrite(pin, i); delay(50); } for (int i = 255; i >= 0; i-=10) { analogWrite(pin, i); delay(50); } }
Zapojenie
4. AnalogRead
Potrebné pomôcky
- Breadboard, Arduino Nano, dupont káble
- LED (ľubovoľnej farby)
- rezistor (ideálne v rozsahu 100Ω-400Ω)
- potenciometer
Poznámky
- LED je pripojené na pin s PWM (adresujeme fialovým číslom, viď pinout). Potenciometer je pripojený na analógový pin (v tomto prípade A3)
- Serial.begin v setup() a Serial.println() v loop() slúžia na sériovú komunikáciu.
- V Arduino IDE – serial monitor (CTRL+SHIFT+M) alebo v ponuke vpravo hore, resp. v Tools.
- Bonusová úloha – skúste odpojiť stredný kábel od potenciometra. Aké hodnoty sa namerajú?
Kód
const int pin = 6;
const int analogPin = 3;
int val = 0;
void setup() {
Serial.begin(9600);
}
void loop() {
val = analogRead(analogPin);
analogWrite(pin, val /4);
Serial.println(val);
}
Zapojenie
5. Tlačidlo
Potrebné pomôcky
- Breadboard, Arduino Nano, dupont káble
- tlačidlo
Poznámky
- Sledujte zmeny hodnôt v serial monitore. Pri stlačení to dáva 0, inak rôzne hodnoty.
- Iba pri meraní prechádza minimálny prúd (high-impedance state, akoby tam bol veľmi silný rezistor). Nie je potrebný rezistor.
Kód
const int analogPin = 3; int val = 0; void setup() { Serial.begin(9600); } void loop() { val = analogRead(analogPin); Serial.println(val); }
Zapojenie
6. AnalogRead, tlačidlo s pullup rezistorom
Potrebné pomôcky
- Breadboard, Arduino Nano, dupont káble
- tlačidlo
- rezistor (napr. 10kΩ)
Poznámky
- Kód je rovnaký ako v predošlej úlohe.
- Vo výsledku by mala byť nula pri stlačenom tlačidle a 1023 pri nestlačenom.
Zapojenie
7. DigitalRead, zabudovaný pullup rezistor
Potrebné pomôcky
- Breadboard, Arduino Nano, dupont káble
- tlačidlo
Poznámky
- Zapojenie je rovnaké ako v úlohe č. 5 – teda iba jedno tlačidlo bez rezistora.
- Zmenil sa analogRead na digitalRead (čítajú sa hodnoty 0 a 1).
- pinMode INPUT_PULLUP nastaví input režim + zapne pullup rezistor.
- Ak by ste namiesto INPUT_PULLUP nastavili iba INPUT, tak pri nestlačenom tlačidle môžu tie hodnoty prichádzať náhodne.
Kód
const int pin = 3; int val = 0; void setup() { pinMode(pin, INPUT_PULLUP); Serial.begin(9600); } void loop() { val = digitalRead(pin); Serial.println(val); }
Zapojenie