Lekce 14
Čtrnáctá lekce Arduino kurzu pro začátečníky: postavíte si jednoduchý voltmetr s I²C LCD displejem a potenciometrem. Ukážeme si zapojení, čtení analogového vstupu funkcí analogRead i kód do Arduino IDE – otáčením potenciometru měníte napětí a jeho hodnota se rovnou zobrazuje na displeji ve voltech.
Popisek obrázku: potenciometr má krajní nožičky na 5 V a GND, prostřední (běžec) vede na analogový vstup A0. I²C LCD displej připojíte čtyřmi vodiči – GND, VCC na 5 V, SDA na A4 a SCL na A5.
| Komponenta | Arduino Uno | Arduino Mega |
|---|---|---|
| Potenciometr (krajní nožičky) | 5V a GND | 5V a GND |
| Potenciometr (běžec, prostřední) | A0 | A0 |
| LCD – GND | GND | GND |
| LCD – VCC | 5V | 5V |
| LCD – SDA | A4 | 20 |
| LCD – SCL | A5 | 21 |
Potenciometr funguje jako dělič napětí – otáčením jeho běžce nastavujete napětí mezi 0 a 5 V. Arduino ale rozumí jen číslům, takže analogový signál převede svým 10bitovým ADC (analogově-digitálním převodníkem) na hodnotu 0 – 1023. Tu pak v kódu přepočítáme zpět na volty vzorcem val / 1024 * 5.0 a výsledek pošleme na I²C LCD displej. Otočíte knoflíkem a číslo na displeji se hned změní.
LiquidCrystal_I2C (postup je v lekci 6).// Voltmetr
// Nastavte potenciometr a uvidíte, že se napětí na displeji I2C LCD1602 změnilo.
// Email: podpora@laskakit.cz · Web: laskakit.cz
// připoj knihovny
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// adresa displeje 0x27 pro 1602
LiquidCrystal_I2C lcd(0x27, 16, 2);
float val = 0;
int volt = A0; // pin pro měření napětí
void setup() {
Serial.begin(9600); // spustit sériový monitor na 9600 Bd
lcd.init(); // inicializace LCD
lcd.backlight(); // zapnout podsvícení
lcd.setCursor(5, 0); // kurzor na sloupec 5, řádek 0
lcd.print("Napeti:"); // vypsat "Napeti:" na displej
}
void loop() {
val = analogRead(volt); // přečíst hodnotu z pinu A0
val = val / 1024 * 5.0; // převést na napětí ve voltech
Serial.print(val); // vypsat napětí do sériového monitoru
Serial.println("V"); // vypsat "V" a přejít na nový řádek
lcd.setCursor(6, 1); // kurzor na sloupec 6, řádek 1
lcd.print(val); // zobrazit napětí na LCD
lcd.print("V"); // zobrazit "V" na LCD
delay(300); // počkat 300 ms
}
LiquidCrystal_I2C. Doinstalujte ji přes Správce knihoven v Arduino IDE (postup v lekci 6).QCo v Arduinu převádí analogové napětí na číslo?