luni, 26 ianuarie 2015

Comanda afisaj LCD1602 prin 3 fire

   Uzual, un afisaj alfanumeric LCD1602 se coneteaza la un microcontroler sau placa de dezvoltare prin 6 fire (DB7, DB5, DB5, DB4, E, RS), cum am prezentat, prima data, in articolul Arduino si un afisaj LCD clasic (16 caractere si 2 randuri).
   Ulterior eu am facut o placa adaptoare pe cablaj clasic, care are inclus semireglabilul de contrast, dupa cum am prezent in articolul Modul de conectare rapida a unui afisaj LCD1602 (HD44780) la Arduino sau alta placa de dezvoltare
   Pentru a reduce numarul de pini folositi se foloseste un registru de deplasare, gen 74HC594, HEF4094, etc, asa cum e prezentat si pe site-ul Arduino, in articolul 3 wires interface for LCD display
   Eu am incercat alta schema, pe care am gasit-o in articolul 3 Pin HD44780 LCD for Arduino scris de Rowan Simms:
   Am facut montaj cu un Arduino Nano:
   Schema lui Simms, redesenata in Eagle PCB Editor, la care am mai adaugat 2 rezistente (una de limitare curent in coletor si una pentru baza):
   Deoarece aveam de gand sa pun un ATtiny85 in locul placii Arduino, schema adaptoare ramane:
   Pentru a folosi prea multi pini, eu am mereu fundalul aprins:
iar conectarea la un ATtiny85 l-am facut asa:
   Am facut legaturile si am incarcat sketch-ul in ATtiny85, cum am prezentat in articolul Programarea unui microcontroler ATTiny85 cu sketch Arduino
   Am facut legaturile cu partea de montaj cu registrul de deplasare si am obtinut acelasi rezultat ca si cu placa Arduino:
   Sketch-ul folisit de mine, este cel din articolul lui Simms, doar cu modificarea pinilor de comanda, conform schemei realizate:
/*
 * 3-pin Arduino interface for HD44780 LCDs via 74HC595 Shift Register
 *     by Rowan Simms   code@rowansimms.com
 *     License: Creative Commons - Attribution.
 *     Full Documentation and Description:  http://rowansimms.com/article.php/lcd-hookup-in-seconds
 *     erata: see https://github.com/haiphamngoc/LiquidCrystal595 & http://haicuibap.ga/2013/12/ket-noi-lcd-voi-arduino-trong-6-giay/
or https://github.com/tehniq3/LiquidCrystal595
 * This sketch allows Arduinos to use a shift register to control an LCD, allowing 
 * a reduction in pins it requires from 6 to 3 while still retaining full control
 * including backlight on/off.
 * This requires the use of the LiquidCrystal595 library
 * available at: http://code.google.com/p/arduino-lcd-3pin/
 */

#include <LiquidCrystal595.h>    // include the library
LiquidCrystal595 lcd(0,1,2);     // datapin, latchpin, clockpin

void setup() {
    lcd.begin(16,2);             // 16 characters, 2 rows

    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print("Wow. 3 pins!");
    lcd.setCursor(0,1);
    lcd.print("Fabulous");
}

void loop() {
    // not used.
}
   Nu trebuie sa uitati sa descarcati libraria LiquidCrystal595 si s-o copiati in directorul unde s-a instalat Arduino, la librarii..
   Sketch-ul este destul de mic, deci se poate folosi si pentru a afisa o tensiune, o temperatura, etc..


27.01.2014
   In stilul montajului prezentat in articolul Attiny_LCD_595 Board: LCD controlled by ATtiny85… stand-alone, care arata asa:
am desenat si eu o varianta asemanatoare de cablaj, utilizand programul Eagle PCB Software (si din graba il gresisesm, iar corecturi pentru a functiona sunt cele cu fire rosii...)
iar o "simulare 3D:

Niciun comentariu:

Trimiteți un comentariu