Lekce 11
Ovládání zvuku pomocí světla

Úvod

Již jsme se naučili, jak pracovat s fotorezistorem, stejně tak jsme zvládli práci s bzučákem. Abychom si ukázali, že všechny zde uvedené lekce je možné kombinovat a být tedy inspirací pro vymýšlení dalších zapojení, zkusíme nyní lekci fotorezistoru a bzučáku vzájemně zkombinovat. Ukážeme si, jak lze ovládat bzučák pomocí fotorezistoru tak, aby pípal v různých frekvencích.

Použité komponenty

  • modul Arduino
  • USB kabel
  • fotorezistor
  • aktivní bzučák
  • rezistor (10 kΩ)
  • nepájivé pole
  • vodiče pro nepájivé pole

Princip

Když posvítíme na fotorezistor, bude intenzita dopadajícího světla větší, odpor fotorezistoru se sníží a naopak. V tomto pokusu je výstup fotorezistoru připojen na pin A0 modulu Arduino, kde je zpracován ADC převodníkem. Získanou hodnotu použijeme jako parametr čekací funkce v kódu, než se ozve bzučák. Pokud je dopadající světlo silné, je výsledná hodnota vyšší, což znamená, že bude bzučák pípat pomalu. Je-li světlo slabé, výsledná hodnota je nižší a bzučák bude pípat rychleji.


Postup experimentu

Krok 1: Sestavíme si obvod podle následujícího obrázku nebo schématu.

Blokové schéma

Blokove schema

Elektronické schéma

Elektronicke schema

Krok 2: V prostředí mBlock sestavíme následující program.


ikona vysvetleni Vysvětlení kódu

Jak již naznačují jednotlivé bloky tohoto kódu je jeho princip poměrně pochopitelný. V nekonečné smyčce „opakuj stále“ je načítána analogová hodnota na pinu A0, která odpovídá osvitu fotorezistoru. Čím je fotorezistor více osvícen, tím je díky jeho zapojení v tzv. děliči napětí na pinu A0 vyšší, tedy je vyšší i vstupní hodnota. Tato vstupní hodnota je uložena do proměnné sensorValue a následně použita jako čekací doba pro generování zvuku. To vidíme v následujících blocích, kde nejdříve nastavíme výstupní digitální pin 9 na vysokou úroveň (HIGH). Tím zapneme připojený aktivní bzučák. Následuje blok čekání – jelikož vstupní hodnota pinu A0 může být v rozmezí 0–1023, ale blok čekání vyžaduje vstupní hodnotu v sekundách, je hodnota proměnné sensorValue vydělena tisícem. Po uplynutí této čekací doby je výstupní pin 9 nastaven na nízkou úroveň (LOW), čímž je aktivní bzučák umlčen. Opět se čeká dobu určenou tisícinou hodnoty proměnné sensorValue. Zapínáním a vypínáním bzučáku a setrváním v tomto stavu dle načtené vstupní hodnoty tak generuje pípání, jehož četnost je odvislá od osvětlení fotorezistoru.


Krok 3: Zkompilujeme kód a nahrajeme do modulu Arduino tlačítkem tlacitko nahrat.

Krok 4: Pokud postavíte fotorezistor do tmy, bude bzučák pípat rychle. Osvětlíme-li fotorezistor, bude pípat pomalu. Funkčnost zařízení můžeme ověřit zakrýváním fotorezistoru rukou.

Pohled na experiment