← zpět na zápisky z Arduino projektů
Programované blikače
Rozšířená verze ručních blikačů, jen už budeme programovat. Jednoduché vrstvení příkazů za sebou (sekvence), osahání si Arduino IDE, nahrávání programu do Arduina. Napájení Arduina z USB nebo z baterie.
Různá zapojení automatických blikačů. Základní struktura programu (nastavení v setup() a dokola opakovaný kód v loop()). Časování pomocí delay(), příkazy digitalWrite(), pinMode(), HIGH, LOW.
Vysvětlení, co je to GND, VCC, jaké typy napětí kde na Arduinu najdeme.
Co je potřeba umět
Foto
Fotografie nezobrazuje přesně typ automatického blikače, který je dále popsán kódem.
Hardware
- dostatek různě barevných LED, některé se asi spálí
- rezistory 220 Ω - 330 Ω
- volitelně spínače
Blikač 1
Schéma zapojení
Program
blikac.ino - kód je napsán osmiletým dítětem
// jak dlouho ma pockat
const int cas = 100;
void setup() {
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(12, OUTPUT);
pinMode(13, OUTPUT);
}
void loop() {
// rozsvit
digitalWrite(9, HIGH);
digitalWrite(13, HIGH);
// cekej
delay(cas);
// zhasni
digitalWrite(9, LOW);
digitalWrite(13, LOW);
// cekej
delay(cas);
// rozsvit
digitalWrite(8, HIGH);
digitalWrite(12, HIGH);
// cekej
delay(cas);
// zhasni
digitalWrite(8, LOW);
digitalWrite(12, LOW);
// cekej
delay(cas);
}
Blikač 2
Schéma zapojení
Program
blikac2.ino - kód je napsán osmiletým dítětem
// nastavi delku cekani
const int cekani = 100;
const int cekanimezi = 50;
// nastavi cisla pinu pro led
const int red1 = 11;
const int red2 = 10;
const int red3 = 9;
const int red4 = 8;
// reknu mu ze na nej budu psat
void setup() {
pinMode(red1, OUTPUT);
pinMode(red2, OUTPUT);
pinMode(red3, OUTPUT);
pinMode(red4, OUTPUT);
}
// udelam blok blikni
void blikni(int led) {
digitalWrite(led, HIGH);
delay(cekani);
digitalWrite(led, LOW);
}
// udelam blok vsechny
void blikniVsechny() {
digitalWrite(red1, HIGH);
digitalWrite(red2, HIGH);
digitalWrite(red3, HIGH);
digitalWrite(red4, HIGH);
delay(cekani);
digitalWrite(red1, LOW);
digitalWrite(red2, LOW);
digitalWrite(red3, LOW);
digitalWrite(red4, LOW);
delay(cekanimezi);
}
void loop() {
blikni(red1);
blikni(red2);
blikni(red3);
blikni(red4);
blikni(red3);
blikni(red2);
blikni(red1);
blikniVsechny();
blikniVsechny();
}
Možná vylepšení
- Nejrůznější variace blikačů, světla železničního přejezdu, nebo semafor či Knight rider.
Poznatky
V prvních chvílích není ani tak důležité, aby děti rozuměly všemu, co se v kódu píše, ale aby to blikalo. Časem si osahají jednotlivé příkazy a konstrukce, případně i cykly.

