Caută cod

Utilizarea LCD cu Digispark USB pentru afișarea textului | Robojax

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
%%WIRING%%

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
64-LCD1602 display for Arduino: basic code
Limba: C++
// 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

Resurse și referințe

Fișiere📁

Alte fișiere

  • Digistump Drivers
    Driver package for Digistump boards, including the Digispark. Contains USB drivers required to program Digistump development boards from the Arduino IDE.
    Digistump.Drivers.zip