← 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.