Utilizarea LCD cu Digispark USB pentru afișarea textului | Robojax
Acest proiect demonstrează cum să interfatați un ecran LCD 1602 cu un microcontroler Digispark pentru a afișa mesaje text. Aceasta este o abilitate fundamentală în sistemele încorporate, utilă pentru crearea de afișaje personalizate pentru diverse aplicații. Dimensiunea mică și costul redus al Digispark-ului îl fac ideal pentru proiecte compacte.
Idei de proiecte:
- Creați un ceas digital simplu.
- Afișați citiri de la senzori (temperatură, umiditate etc.).
- Construiți un indicator de stare personalizat pentru un proiect mai mare.
- Dezvoltați un joc de bază cu feedback pe ecran.
Hardware/Componente
Proiectul folosește un ecran LCD 1602 (16 caractere x 2 linii) (în videoclip la 00:21), un microcontroler Digispark (fie versiunea USB, fie micro USB – conexiunile sunt în mare parte aceleași, dar conectarea la computer diferă (în videoclip la 00:34)) și fire de legătură. Ecranul LCD include un modul de comunicare I2C (în videoclip la 00:56), o lumină de fundal și un potențiometru pentru reglarea luminozității ecranului (în videoclip la 01:31).
Ghid de cablare
Conexiunile de cablare sunt următoarele (în videoclip la 02:09):
- LCD Ground la Digispark Ground
- LCD VCC la Digispark 5V
- LCD SDA la Digispark Pin 0
- LCD SCL la Digispark Pin 1
Explicația codului
Codul Arduino folosește biblioteca LiquidCrystal. Este crucial să determinați adresa I2C a LCD-ului dvs. folosind scanerul I2C (în videoclip la 03:36). Această adresă (de obicei o valoare hexazecimală precum 0x3F, 0x27 sau 0x38) trebuie introdusă în cod (în videoclip la 03:29). Codul definește, de asemenea, numărul de coloane (16) și rânduri (2) ale LCD-ului (în videoclip la 05:57). Funcția setup() inițializează LCD-ul și afișează un mesaj inițial. Funcția loop() șterge continuu LCD-ul, afișează „RoboJax" pe prima linie și „Hello World!" pe a doua linie (în videoclip la 06:54), cu o întârziere de jumătate de secundă între actualizări (în videoclip la 07:46).
// ... (alte coduri omise) ...
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
// ... (alte coduri omise) ...
//Această linie setează adresa I2C a LCD-ului
lcd.begin(16, 2); //Această linie setează dimensiunile LCD-ului
// ... (alte coduri omise) ...
Proiect live/Demonstrație
Videoclipul demonstrează compilarea și încărcarea cu succes a codului pe Digispark (în videoclip la 08:20). LCD-ul afișează textul programat, confirmând funcționalitatea circuitului (în videoclip la 08:48).
Capitole
- [00:01] Introducere
- [00:21] Prezentare generală LCD 1602
- [01:06] Conexiuni hardware
- [02:09] Detalii de cablare
- [02:53] Prezentare generală a codului
- [03:27] Găsirea adresei I2C
- [05:04] Încărcarea codului
- [06:54] Explicația codului: Funcția Loop
- [08:20] Demonstrație live
// 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
}
Lucruri de care ai putea avea nevoie
-
eBay
-
AliExpressPurchase Digispark Attiny85 from AliExpresss.click.aliexpress.com
Resurse și referințe
-
ExternATtiny88 datasheet (PDF)ww1.microchip.com
Fișiere📁
Alte fișiere
-
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