Connexió de LCD 1602 a Arduino: descripció, funcions, instruccions, característiques, problemes i solucions

Taula de continguts:

Connexió de LCD 1602 a Arduino: descripció, funcions, instruccions, característiques, problemes i solucions
Connexió de LCD 1602 a Arduino: descripció, funcions, instruccions, característiques, problemes i solucions
Anonim

Tots els radioaficionats, després d'un senzill treball de bricolatge, assoleixen l'objectiu de construir alguna cosa grandiós amb sensors i botons. Després de tot, és molt més interessant mostrar dades a la pantalla que al monitor del port. Però aleshores sorgeix la pregunta: quina pantalla triar? I en general, com connectar-lo, què es necessita per connectar-lo? Les respostes a aquestes preguntes es parlaran en aquest article.

Pantalla LCD 1602 per a connexió a arduino
Pantalla LCD 1602 per a connexió a arduino

LCD 1602

Entre les moltes opcions entre pantalles, m'agradaria destacar la pantalla LCD1602 basada en el controlador HD4478. Hi ha aquesta pantalla en dos colors: lletres blanques sobre fons blau, lletres negres sobre fons groc. Connectar el LCD 1602 a l'Arduino tampoc no causarà cap problema, ja que hi ha una biblioteca integrada i no cal que baixeu res addicional. Les pantalles difereixen no només pel preu, sinó també per la mida. Sovint els radioaficionats utilitzen 16x 2, és a dir, 2 línies de 16 caràcters. Però també hi ha 20 x 4, on hi ha 4 línies de 20 caràcters. Les dimensions i el color no juguen cap paper a l'hora de connectar la pantalla lcd 1602 a Arduno, estan connectats de la mateixa manera. L'angle de visió és de 35 graus, el temps de resposta de la pantalla és de 250 ms. Pot treballar a temperatures de -20 a 70 graus centígrads. Quan treballa, utilitza 4 mA per a la pantalla i 120 mA per a la llum de fons.

Pinout de la pantalla LCD 1602
Pinout de la pantalla LCD 1602

On s'utilitza?

Aquesta pantalla té la seva popularitat no només entre els radioaficionats, sinó també entre els grans fabricants. Per exemple, les impressores i les màquines de cafè també utilitzen LCD1602. Això es deu al seu baix preu, aquesta pantalla costa entre 200 i 300 rubles als llocs xinesos. Val la pena comprar-hi, ja que a les nostres botigues els marges d'aquesta pantalla són molt alts.

Connexió a Arduino

Connexir LCD 1602 a Arduino Nano i Uno no és diferent. Podeu treballar amb la pantalla en dos modes: 4 bits i 8. Quan es treballa amb una pantalla de 8 bits, s'utilitzen tant els bits inferiors com els superiors, i amb un de 4 bits, només els inferiors. No té cap sentit especial treballar amb 8 bits, ja que s'afegiran 4 contactes més per connectar, cosa que no és aconsellable, perquè la velocitat no serà més alta, el límit d'actualització de la pantalla és de 10 vegades per segon. En general, s'utilitzen molts cables per connectar el lcd 1602 a l'Arduino, la qual cosa causa alguns inconvenients, però hi ha blindatges especials, però més endavant. La foto mostra la connexió de la pantalla a l'Arduino Uno:

Connectant la pantalla a l'arduino
Connectant la pantalla a l'arduino

Exemple de codi:


inclou //Afegiu la biblioteca necessària LiquidCrystal lcd(7, 6, 5, 4, 3, 2); // (RS, E, DB4, DB5, DB6, DB7) void setup(){ lcd.begin(16, 2); // Estableix la dimensió de la pantalla lcd.setCursor(0, 0); // Posa el cursor al començament de la línia 1 lcd.print("Hola, món!"); // Mostra el text lcd setCursor(0, 1); // Posa el cursor al començament de la línia 2 lcd.print("fb.ru"); // Text de sortida } bucle buit(){ }

Què fa el codi? En primer lloc, la biblioteca per treballar amb la pantalla està connectada. Com s'ha esmentat anteriorment, aquesta biblioteca ja està inclosa a l'IDE d'Arduino i no cal que la descarregueu i instal·leu addicionalment. A continuació, es defineixen els contactes que estan connectats als pins: RS, E, DB4, DB5, DB6, DB7, respectivament. A continuació, s'estableix la mida de la pantalla. Com que estem treballant amb una versió amb 16 caràcters i 2 línies, escrivim aquests valors. Posem el cursor al principi de la primera línia i mostrem el nostre primer text Hello World. A continuació, col·loqueu el cursor a la segona línia i mostreu el nom del lloc. Això és tot! Es va considerar connectar la pantalla LCD 1602 a Arduino Uno.

Què és I2C i per què es necessita?

Com s'ha esmentat anteriorment, connectar la pantalla requereix molts pins. Per exemple, quan es treballa amb diversos sensors i una pantalla LCD, 1602 contactes poden no ser suficients. Sovint, els radioaficionats utilitzen les versions Uno o Nano, on no hi ha molts contactes. Llavors la gent va inventar escuts especials. Per exemple, I2C. Permet connectar la pantalla amb només 4 pins. Això és dues vegades menys. El mòdul I2C es ven per separat, on cal soldar-lo tu mateix, i ja està soldatPantalla LCD 1602.

Mòdul I2C per a pantalla LCD 1602
Mòdul I2C per a pantalla LCD 1602

Connexió amb mòdul I2C

Connexir LCD 1602 a Arduino Nano amb I2C ocupa poc espai, només 4 pins: terra, potència i 2 sortides de dades. Connectem l'alimentació i la terra a 5V i GND a l'Arduino, respectivament. Els dos contactes restants: SCL i SDA estan connectats a qualsevol pin analògic. A la foto podeu veure un exemple de connexió de lcd 1602 a arduino amb mòdul I2C:

Mostra connexions mitjançant el mòdul I2C
Mostra connexions mitjançant el mòdul I2C

Codi del programa

Si calia utilitzar només una biblioteca per treballar amb una pantalla sense mòdul, calen dues biblioteques per treballar amb un mòdul. Un d'ells ja es troba a l'IDE d'Arduino - Wire. Una altra biblioteca, LiquidCrystal I2C, s'ha de descarregar per separat i instal·lar-la. Per instal·lar la biblioteca a Arduino, el contingut de l'arxiu descarregat s'ha de carregar a la carpeta arrel de Biblioteques. Exemple de codi utilitzant I2C:


inclou include LiquidCrystal_I2C lcd (0x27, 16, 2); // Configura la pantalla void setup() { lcd.init(); lcd.backlight();// Activa la retroil·luminació de la pantalla lcd.print("FB.ru"); lcd.setCursor(8, 1); lcd.print("LCD 1602"); } void loop() { // Posa el cursor a la segona línia i el caràcter nul. lcd.setCursor(0, 1); // Imprimeix el nombre de segons des que l'arduino va començar lcd.print(millis()/1000); }

Com podeu veure, el codi és gairebé el mateix.

Com puc afegir el meu propi símbol?

El problema amb aquestes pantalles és que no n'hi hasuport per al ciríl·lic i símbols. Per exemple, heu de carregar algun caràcter a la pantalla perquè el reflecteixi. Per fer-ho, la pantalla us permet crear fins a 7 dels vostres personatges. Presenta la taula:

0 0 0 1 0
0 0 0 0 1
1 1 0 0 1
0 0 0 0 1
1 1 0 0 1
0 0 0 0 1
0 0 0 1 0
0 0 0 0 0

Si 0 - no hi ha res, si 1 - és una zona ombrejada. A l'exemple anterior, podeu veure la creació del personatge "smiley somrient". Si utilitzeu un exemple de programa a Arduino, es veuria així:


include include // Inclou la biblioteca necessària // Símbol de somriure bitmask byte smile[8]={ B00010, B00001, B11001, B00001, B11001, B00001, B00010, }; LiquidCrystal lcd (7, 6, 5, 4, 3, 2); // (RS, E, DB4, DB5, DB6, DB7) void setup(){ lcd.begin(16, 2); // Estableix la dimensió de la pantalla lcd.createChar(1, somriure); // Crea el caràcter número 1 lcd.setCursor(0, 0); // Posa el cursor al començament de la línia 1 lcd.print("\1"); // Mostra l'emoticona (número de caràcter 1) - "\1" } bucle buit(){ }

Com podeu veure, es va crearla màscara de bits és la mateixa que la taula. Un cop creat, es pot sortir com a variable a la pantalla. Recordeu que només es poden emmagatzemar 7 caràcters a la memòria. En principi, amb això n'hi ha prou. Per exemple, si voleu mostrar el símbol del grau.

Afegir caràcters personalitzats a la pantalla LCD 1602
Afegir caràcters personalitzats a la pantalla LCD 1602

Problemes en què la pantalla pot no funcionar

Hi ha moments en què la pantalla no funciona. Per exemple, s'encén, però no mostra caràcters. O no s'encén gens. Primer, comproveu si heu connectat correctament els contactes. Si abans connectàveu el LCD 1202 a Arduino sense I2C, és molt fàcil enredar-se als cables, cosa que pot provocar que la pantalla funcioni incorrectament. També hauríeu d'assegurar-vos que el contrast de la pantalla s'augmenti, ja que amb un contrast mínim ni tan sols és visible si la pantalla LCD 1602 està encès o no. Si això no ajuda, potser el problema pot estar en la soldadura dels contactes, això és quan s'utilitza el mòdul I2C. A més, un motiu habitual pel qual la pantalla pot no funcionar és la configuració incorrecta de l'adreça I2C. El fet és que hi ha molts fabricants, i poden establir una adreça diferent, cal que ho corregiu aquí:


LiquidCrystal_I2C lcd (0x27, 16, 2);

En parèntesis podeu veure dos valors, 0x27 i 16, 2 (16, 2 és la mida de la pantalla i 0x27 només l'adreça I2C). En lloc d'aquests valors, podeu provar de posar 0x37 o 0x3F. Bé, un altre motiu és simplement un LCD 1602 defectuós. Tenint en compte que gairebé tot per a Arduino es fa a la Xina, no podeu estar segur al 100% que la comprael producte no és defectuós.

LCD 1602 pros i contres

Mirem els avantatges i els contres de la pantalla LCD 1602.

Pros

  • Preu. Aquest mòdul es pot comprar a un preu molt assequible a les botigues xineses. El preu és de 200-300 rubles. De vegades fins i tot es ven amb un mòdul I2C.
  • Fàcil de connectar. Probablement ningú connecta un LCD 1602 sense I2C en aquests dies. I amb aquest mòdul, la connexió només necessita 4 pins, no hi haurà "retes" de cables.
  • Programació. Gràcies a les biblioteques ja fetes, treballar amb aquest mòdul és fàcil, totes les funcions ja estan registrades. I si necessiteu afegir el vostre personatge, només trigueu un parell de minuts.

Contres

Durant el temps d'ús per milers de radioaficionats, no s'han identificat grans inconvenients, només hi ha casos de compra d'un matrimoni, ja que s'utilitzen principalment les opcions de visualització xineses

Aquest article parlava de com connectar la pantalla LCD 1602 a Arduino i també presentava programes de mostra per treballar amb aquesta pantalla. Realment és un dels millors de la seva categoria, no és només que milers de radioaficionats l'escullen per als seus projectes!

Recomanat: