Taula de continguts:

COG LCD per a un Arduino Nano: 3 passos
COG LCD per a un Arduino Nano: 3 passos

Vídeo: COG LCD per a un Arduino Nano: 3 passos

Vídeo: COG LCD per a un Arduino Nano: 3 passos
Vídeo: Krümelmonster Kekseee | Play Doh Krümelmonster & Mini-Krümelmonster | Compilation | Deutsch 2024, De novembre
Anonim
LCD COG per a un Arduino Nano
LCD COG per a un Arduino Nano

Aquesta instrucció descriu com utilitzar una pantalla LCD COG amb un Arduino Nano.

Les pantalles LCD COG són econòmiques, però són una mica més difícils d'interfície. (COG significa "Chip On Glass".) El que faig servir conté un xip de controlador UC1701. Només requereix 4 pins d'Arduino: SPI-clock, SPI-data, chip-select i command / data.

La UC1701 està controlada pel bus SPI i funciona a 3,3V.

Aquí us dic com utilitzar-lo amb un Arduino Nano. També hauria de funcionar amb un Arduino Mini o Uno: ho provaré aviat.

Aquest és el meu primer projecte Arduino i fa dècades que no escric C, així que si comet errors evidents, aviseu-me.

Pas 1: crear el maquinari

Construint el maquinari
Construint el maquinari
Construint el maquinari
Construint el maquinari
Construint el maquinari
Construint el maquinari

Compreu un LCD COG que contingui un xip UC1701. Hauria d’utilitzar el bus SPI en lloc d’una interfície paral·lela. Tindrà al voltant de 14 pins que s’etiquetaran amb noms com els que es mostren a continuació. (No voleu una interfície paral·lela amb molts pins més etiquetats com D0, D1, D2 …)

El que he comprat és: https://www.ebay.co.uk/itm/132138390168 O podeu cercar a eBay "12864 LCD COG".

Trieu-ne una que tingui una cua bastant ampla amb passadors espaiats a 1,27 mm; els passadors més fins seran difícils de soldar. Assegureu-vos que tingui un xip UC1701. Fixeu-vos que a la sisena imatge de la pàgina d’ebay es diu "CONNECTOR: COG / UC1701".

La pantalla és transparent i és difícil saber quina és la part davantera i posterior. Estudia amb cura les meves imatges. Fixeu-vos on són els passadors 1 i 14: estan marcats a la cua.

La cua flexible és bastant fàcil de soldar, però requereix un adaptador perquè pugueu connectar-la a una taula de treball. He comprat: https://www.ebay.co.uk/itm/132166865767 O podeu cercar a eBay "Adapter Smd SSOP28 DIP28".

L’adaptador té un xip SOP de 28 pins per una banda o un xip SSOP de 28 pins a l’altra banda. Un xip SOP té un espaiat entre els pins de 0,05 (1,27 mm) que és el mateix que la cua de la pantalla LCD.

També necessitareu uns passadors de capçalera. Sempre que compro un Arduino o un altre mòdul, ve amb més pins de capçalera dels necessaris, de manera que probablement ja en tingueu. En cas contrari, cerqueu a eBay "pins de capçalera de 2,54 mm".

Soldeu 14 dels passadors de capçalera a l'adaptador. No els empenyeu completament; és més agradable si la part posterior de l’adaptador és plana. Col·loqueu-lo pla al banc perquè no es pugui empènyer massa els passadors als forats. Assegureu-vos que els passadors estiguin al costat SOP del tauler (és a dir, el xip més gran).

Els coixinets de la cua es troben en una mena de finestra. Esteneu els dos costats amb soldadura. Esteneu els coixinets de l’adaptador. Mantingueu la cua de l'adaptador al seu lloc i toqueu cada coixinet amb el soldador (necessitareu una punta bastant fina).

Lligueu una mica de fil a través dels forats de l'adaptador per actuar com a alleujament de la tensió. (He utilitzat "filferro transformador").

Si el soldeu de manera equivocada, no intenteu desoldar la cua. Traieu els passadors d’un en un i moveu-los a l’altre costat del tauler. (Sí, he comès aquest error i he tornat a soldar la cua, per això és una mica desordenat a la foto).

Pas 2: Connexió a l'Arduino

Connexió a l'Arduino
Connexió a l'Arduino
Connexió a l'Arduino
Connexió a l'Arduino

Aquesta secció explica com connectar-se a un Arduino Nano. Serà molt similar per a un Mini o un Uno, però encara no ho he provat.

Estudieu l’esquema del circuit.

Un Arduino Nano connectat a un port USB funciona a 5V. La pantalla LCD funciona a 3,3V. Per tant, heu d’alimentar la pantalla LCD des del pin 3V3 del Nano i reduir la tensió de cada pin de control de 5V a 3,3V.

El pinout de la pantalla LCD és:

  • 1 CS
  • 2 RST
  • 3 CD
  • 4
  • 5 CLK
  • 6 SDA
  • 7 3V3
  • 8 0V Gnd
  • 9 VB0 +
  • 10 VB0-
  • 11
  • 12
  • 13
  • 14

CS és Chip-Select. Es baixa per seleccionar (habilitar) el xip UC1701. (CS es pot anomenar CS0 o En o similar).

RST és Restableix. Es posa cap avall per restablir el xip. (Es pot anomenar RST Restableix).

El CD és ordre / dades. Es baixa quan s’envien ordres al xip mitjançant SPI. És elevat quan s’envien dades. (El CD es pot anomenar A0).

CLK i SDA són els pins del bus SPI. (L'SDA es pot anomenar SPI-Data. CLK pot ser SCL o SPI-Clock).

VB0 + i VB0- són utilitzats per la bomba de càrrega interna de la UC1701. La bomba de càrrega genera les tensions senars que necessita la pantalla LCD. Connecteu un condensador de 100n entre VB0 + i VB0-. La documentació de la UC1701 recomana 2uF, però no vaig poder veure cap diferència amb aquesta pantalla LCD en particular.

Si el vostre LCD té pins VB1 + i VB1-, connecteu també un condensador de 100n entre ells. (Si el vostre LCD té un pin VLCD, podeu provar de connectar un condensador de 100n entre VLCD i Gnd. No va fer cap diferència amb el meu LCD.)

Connecteu la pantalla LCD al Nano de la manera següent:

  • 1 CS = D10 *
  • 2 RST = D6 *
  • 3 CD = D7 *
  • 5 CLK = D13 *
  • 6 SDA = D11 *
  • 7 3V3 = 3V3
  • 8 0V = Gnd

("*" significa utilitzar un divisor de potencial per reduir la tensió. Si l'Arduino funciona a 3V3 des d'un subministrament independent, no necessitareu les resistències.)

El Nano emet 3,3 V i pot proporcionar corrent suficient per a la pantalla LCD. (La pantalla dibuixa al voltant de 250 uA.)

El Nano també emet 5V i es pot utilitzar per alimentar la llum de fons. Limiteu el corrent a la llum de fons amb una resistència de 100ohm.

Si teniu pocs pins al Nano, podeu connectar RST a 3V3; podeu utilitzar D6 per a una altra cosa. L'U1701 es pot restablir al programari mitjançant una ordre a l'SPI. Mai no he tingut cap problema, però si utilitzeu el vostre propi circuit en un entorn sorollós, potser seria millor fer un restabliment de maquinari.

Pas 3: programari

Programari
Programari

En teoria, podeu conduir l'UC1701 des de la biblioteca U8g2 (o Ucglib o les altres biblioteques disponibles). Vaig lluitar durant dies per aconseguir que funcionés i vaig fracassar. La biblioteca U8g2 és un monstre perquè pot conduir una gran varietat de xips i és molt difícil seguir el codi. Així que vaig renunciar i vaig escriure la meva pròpia biblioteca més petita. Ocupa molt menys espai a l'Arduino (aprox. 3400 bytes més tipus de lletra).

Podeu descarregar la meva biblioteca des d’aquí (el botó Baixa d’aquesta pàgina). S'inclouen un esbós de mostra i una guia de l'usuari. La pàgina web https://www.arduino.cc/en/Guide/Libraries descriu com importar una biblioteca; aneu a la secció "Importació d'una biblioteca.zip".

Inicialitzeu la pantalla LCD amb

UC1701Begin ();

UC1701Begin pot prendre paràmetres per canviar els pins o ignorar el pin RST. La biblioteca només utilitza SPI de maquinari (no es proporciona un SPI de programari). La pantalla es pot girar als eixos xy. És útil si voleu muntar la pantalla LCD en una orientació diferent.

S'han duplicat diversos procediments des de la biblioteca U8g2:

  • DrawLine
  • DrawPixel
  • DrawHLine
  • DrawVLine
  • DrawBox
  • DrawFrame
  • DrawCircle
  • DrawDisc
  • DrawFilledEllipse
  • DrawEllipse
  • DrawTriangle
  • UC1701SetCursor
  • UC1701ClearDisplay

Alguns procediments són lleugerament diferents:

  • void DrawChar (uint8_t c, paraula Font);
  • void DrawString (caràcters *, paraula Font);
  • void DrawInt (int i, paraula Font);

Als procediments de dibuix de cadenes es passa l'índex d'un tipus de lletra. Els tipus de lletra es declaren a la memòria flash de l'Arduino, de manera que no ocupen un preciós SRAM. Es proporcionen tres tipus de lletra (petita, mitjana i gran). Només estan enllaçats i ocupen memòria flash si els feu servir (aproximadament de 500 a 2000 bytes cadascun).

"Color" es gestiona de manera diferent a la biblioteca U8g2. Quan es neteja la pantalla LCD, té un fons fosc. Si MakeMark (una variable global) és cert, el dibuix es fa en blanc. Si MakeMark és fals, el dibuix es fa a les fosques.

Alguns procediments són exclusius de la UC1701:

SetInverted dibuixa en negre sobre blanc en lloc de blanc sobre negre.

void SetInverted (inv bool)

La brillantor i el contrast de la UC1701 es defineixen per:

  • void SetContrast (valor uint8_t); // suggerit és 14
  • void SetResistor (valor uint8_t); // suggerit és 7

Treballen junts d’una manera força insatisfactòria.

SetEnabled apaga la pantalla LCD:

void SetEnabled (bool ca);

La pantalla triga 4uA en dormir. També heu d’apagar la llum de fons: conduïu-la des d’un passador del Nano. Després de tornar-lo a habilitar, l'UC1701 s'haurà restablert; la pantalla s'esborra i el contrast i la resistència s'hauran restablert als valors predeterminats.

Per tant, en conclusió, les pantalles COG són econòmiques i tenen una mida decent. Són fàcils de connectar a un Arduino.

Recomanat: