Lekce 12
Dvanáctá lekce Arduino kurzu pro začátečníky: spojíte fotorezistor s bzučákem a budete světlem řídit, jak rychle bzučák pípá. Ukážeme si zapojení, čtení analogového vstupu funkcí analogRead i kód do Arduino IDE – ve tmě bzučák pípá rychle, na světle pomalu. Hravé propojení dvou dřívějších lekcí dohromady.
Popisek obrázku: bzučák je zapojený kladnou nožičkou (+) na pin 9 a druhou na GND. Fotorezistor tvoří dělič napětí s rezistorem 10 kΩ, jeho střed vede na analogový vstup A0.
| Komponenta | Arduino |
|---|---|
| Bzučák (+) | pin 9 |
| Bzučák (−) | GND |
| Fotorezistor (1. nožička) | 5V |
| Fotorezistor (2. nožička) + rezistor 10 kΩ | A0 |
| Rezistor 10 kΩ (druhý konec) | GND |
Tahle lekce spojuje fotorezistor z minula s bzučákem. Fotorezistor mění svůj odpor podle světla a přes dělič napětí posílá na vstup A0 hodnotu, kterou Arduino přečte funkcí analogRead. Tuto hodnotu pak rovnou používáme jako délku pauzy ve funkci delay mezi zapnutím a vypnutím bzučáku. Při silném světle je hodnota vysoká – pauzy jsou delší a bzučák pípá pomalu. Ve tmě je hodnota nízká a pípání je rychlé.
// Ovládání zvuku pomocí světla
// Když dáte fotorezistor do tmavého prostředí, bzučák bude pípat rychle.
// Když dáte fotorezistor do světlého prostředí, bzučák bude pípat pomalu.
// Email: podpora@laskakit.cz · Web: laskakit.cz
const int photocellPin = A0; // pin fotorezistoru
int sensorValue = 0; // přečtená hodnota z čidla
const int buzzerPin = 9; // pin bzučáku
void setup() {
pinMode(buzzerPin, OUTPUT); // bzučák jako výstup
}
void loop() {
sensorValue = analogRead(photocellPin); // přečíst hodnotu z pinu A0
digitalWrite(buzzerPin, HIGH); // zapnout bzučák
delay(sensorValue); // pauza nastaví frekvenci
digitalWrite(buzzerPin, LOW); // vypnout bzučák
delay(sensorValue); // pauza nastaví frekvenci
}
map do menšího rozsahu.QJak se chová bzučák, když fotorezistor zakryjete (tma)?