Použitie LCD s Digispark USB na zobrazenie textu | Robojax
Tento projekt demonštruje, ako pripojiť 1602 LCD obrazovku k mikrokontroléru Digispark na zobrazovanie textových správ. Toto je základná zručnosť v oblasti vstavaných systémov, užitočná na vytváranie vlastných displejov pre rôzne aplikácie. Malá veľkosť a nízka cena Digisparku ho robia ideálnym pre kompaktné projekty.
Nápady na projekty:
- Vytvorte jednoduché digitálne hodiny.
- Zobrazujte údaje zo senzorov (teplota, vlhkosť atď.).
- Zostavte vlastný indikátor stavu pre väčší projekt.
- Vyviňte základnú hru so spätnou väzbou na obrazovke.
Hardvér/Komponenty
Projekt používa 1602 LCD obrazovku (16 znakov x 2 riadky) (vo videu o 00:21), mikrokontrolér Digispark (buď USB alebo micro USB verziu – zapojenie je z veľkej časti rovnaké, ale pripojenie k počítaču sa líši (vo videu o 00:34)) a prepojovacie vodiče. LCD obrazovka obsahuje I2C komunikačný modul (vo videu o 00:56), podsvietenie a potenciometer na nastavenie jasu obrazovky (vo videu o 01:31).
Sprievodca zapojením
Pripojenia sú nasledovné (vo videu o 02:09):
- LCD Ground na Digispark Ground
- LCD VCC na Digispark 5V
- LCD SDA na Digispark Pin 0
- LCD SCL na Digispark Pin 1
Vysvetlenie kódu
Arduino kód používa knižnicu LiquidCrystal. Kľúčové je zistiť I2C adresu vašej LCD pomocou I2C skenera (vo videu o 03:36). Táto adresa (zvyčajne hexadecimálna hodnota ako 0x3F, 0x27 alebo 0x38) musí byť zadaná do kódu (vo videu o 03:29). Kód tiež definuje počet stĺpcov (16) a riadkov (2) LCD (vo videu o 05:57). Funkcia setup() inicializuje LCD a vypíše úvodnú správu. Funkcia loop() nepretržite vymaže LCD, vypíše "RoboJax" na prvý riadok a "Hello World!" na druhý riadok (vo videu o 06:54), s polsekundovým oneskorením medzi aktualizáciami (vo videu o 07:46).
// ... (ostatný kód vynechaný) ...
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
// ... (ostatný kód vynechaný) ...
//Tento riadok nastavuje I2C adresu LCD
lcd.begin(16, 2); //Tento riadok nastavuje rozmery LCD
// ... (ostatný kód vynechaný) ...
Živý projekt/Demonštrácia
Video demonštruje úspešnú kompiláciu a nahratie kódu do Digisparku (vo videu o 08:20). LCD zobrazuje naprogramovaný text, čo potvrdzuje funkčnosť obvodu (vo videu o 08:48).
Kapitoly
- [00:01] Úvod
- [00:21] Prehľad LCD 1602
- [01:06] Hardvérové pripojenia
- [02:09] Podrobnosti zapojenia
- [02:53] Prehľad kódu
- [03:27] Nájdenie I2C adresy
- [05:04] Nahrávanie kódu
- [06:54] Vysvetlenie kódu: Funkcia Loop
- [08:20] Živá demonštrácia
// LCD1602 Display for Arduino
// January 21, 2018 14:25 this example will work with a 1602 LCD
// Code used for YouTube video for RoboJax channel
// Watch the video https://youtu.be/S4ya3Q7uhJs
// Video and other Arduino Tutorials http://robojax.com/learn/library
// January 21, 2018 14:25
// original source https://www.arduino.cc/en/Tutorial/HelloWorld
// include the library code:
#include <LiquidCrystal.h>
// initialize the library by associating any needed LCD interface pin
// with the arduino pin number it is connected to
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
void setup() {
// RoboJax LCD1602 Test
// set up the LCD's number of columns and rows:
lcd.begin(16, 2);
// Print a message to the LCD.
// RoboJax LCD1602 Test
}
void loop() {
// RoboJax LCD1602 Test
lcd.setCursor(0, 0);
lcd.print("RoboJax LCD Test");
// set the cursor to column 0, line 1
// (note: line 1 is the second row, since counting begins with 0):
lcd.setCursor(0, 1);
// print the number of seconds since reset:
lcd.print("Hello World!");
delay(500);
// RoboJax LCD1602 Test
}
Things you might need
-
eBay
-
AliExpressPurchase Digispark Attiny85 from AliExpresss.click.aliexpress.com
Resources & references
-
ExternalATtiny88 datasheet (PDF)ww1.microchip.com
Files📁
Other files
-
Digistump DriversDriver package for Digistump boards, including the Digispark. Contains USB drivers required to program Digistump development boards from the Arduino IDE.
Digistump.Drivers.zip