Taula de continguts:

Mòdul de controlador LCD Uber I2C: 6 passos
Mòdul de controlador LCD Uber I2C: 6 passos

Vídeo: Mòdul de controlador LCD Uber I2C: 6 passos

Vídeo: Mòdul de controlador LCD Uber I2C: 6 passos
Vídeo: ESP Block - ESP 8266 12F Wemos D1 + LCD 1602a i2c 2024, Desembre
Anonim
Mòdul de controlador LCD Uber I2C
Mòdul de controlador LCD Uber I2C
Mòdul de controlador LCD Uber I2C
Mòdul de controlador LCD Uber I2C
Mòdul de controlador LCD Uber I2C
Mòdul de controlador LCD Uber I2C

Preàmbul

Aquest document instructiu detalla com crear un mòdul de controlador LCD HD44780 (foto 1 anterior). El mòdul permet a l'usuari controlar tots els aspectes de la pantalla LCD per programació sobre I2C, que inclouen; Pantalla LCD i pantalla, contrast i intensitat de llum de fons. Tot i que l’Arduino Uno R3 es va utilitzar per prototipar-lo, funcionarà igual de bé amb qualsevol microcontrolador que admeti I2C.

Introducció

Com es va esmentar anteriorment, aquest article documenta la creació d'un mòdul de controlador LCD I2C, principalment es pretenia com un exercici de disseny per determinar el temps que trigaria a crear un PCB de treball pràctic.

El disseny substitueix el mòdul de controlador genèric estàndard (foto 3 anterior) i s’inspira en Instructables i biblioteques que he produït anteriorment.

Des del prototip de concepte inicial (foto 2 a dalt) fins a PCB completament provat (foto 1 a dalt) van passar un total de 5,5 dies.

Quines peces necessito? Consulteu la llista de materials adjunta a continuació

Quin programari necessito?

  • Arduino IDE 1.6.9,
  • Kicad v4.0.7 si voleu modificar el PCB. En cas contrari, envieu 'LCD_Controller.zip' a JLCPCB.

Quines eines necessito?

  • Microscopi com a mínim x3 (per soldar SMT),
  • Soldadura SMD (amb ploma de flux líquid i soldadura de flux)
  • Pinces fortes (per soldar SMT),
  • Alicates fines (punta de punta i moc),
  • DMM amb comprovació audible de continuïtat.

Quines habilitats necessito?

  • Molta paciència,
  • Una gran quantitat de destresa manual i una excel·lent coordinació mà / ull,
  • Excel·lents habilitats de soldadura.

Temes tractats

  • Introducció
  • Visió general del circuit
  • Fabricació de PCB
  • Descripció general del programari
  • Prova del disseny
  • Conclusió
  • Referències utilitzades

Pas 1: Visió general del circuit

Visió general del circuit
Visió general del circuit

A la imatge 1 es mostra un diagrama de circuits complet de tots els aparells electrònics, juntament amb un PDF de la mateixa a continuació.

El circuit va ser dissenyat per ser un substitut exacte del mòdul de controlador LCD PCF8574A I2C estàndard amb les següents millores;

  • Compatibilitat 3v3 o 5v seleccionable per l'usuari I2C,
  • Control de contrast digital o configuració de pot convencional,
  • Selecció d’intensitat de llum de fons variable amb control de la funció d’alleujament quartic per aconseguir una decoloració suau.

Control de pantalla LCD

Es tracta d’un facsímil del mòdul de controlador LCD I2C estàndard que utilitza un PCF8574A (IC2) per a la conversió I2C a paral·lela.

L'adreça I2C per defecte és 0x3F.

Compatibilitat I2C de 3v3 o 5v

Per a operacions 3v3, ajusteu Q1, Q2 ROpt1, 2, 5 i 6, IC1, C2 i C2.

Si es necessita un funcionament de 5v, no s'adapti a cap component de 3v3, substituint-los per resistències de 0 Ohm ROpt 3 i 4.

Contrast digital

El control de contrast digital s’aconsegueix mitjançant l’ús d’un potenciòmetre digital U2 MCP4561-103E / MS i C4, R5.

Si es necessita un potenciòmetre mecànic convencional, es pot instal·lar al PCB, RV1 10K, en lloc de U2, C4 i R5. Vegeu BoM per a un potenciòmetre compatible.

Mitjançant pont pont J6, l'adreça I2C és 0x2E. Es va suposar que, per al funcionament normal, es tracta d'un pont.

Selecció d’intensitat de llum de fons variable

La intensitat de la llum de fons variable es controla mitjançant la modulació PWM de la llum de fons LED LCD mitjançant el pin U1 6 i un ATTiny85. Per tal de mantenir la plena compatibilitat amb el mòdul de control LCD I2C estàndard R1, s’utilitzen T1 R7 i T2 per modular el carril de subministrament + ve.

L'adreça I2C per defecte és 0x08. Això es pot seleccionar per l'usuari en el moment de la compilació abans de programar U1.

Pas 2: fabricació de PCB

Fabricació de PCB
Fabricació de PCB
Fabricació de PCB
Fabricació de PCB
Fabricació de PCB
Fabricació de PCB
Fabricació de PCB
Fabricació de PCB

Com es va esmentar anteriorment, aquest Instructable era un exercici, destinat principalment a determinar el temps que trigaria a completar un disseny (que tenia un propòsit pràctic).

En aquest cas, vaig pensar en el concepte inicial de dissabte a la tarda i havia completat el prototip el dissabte al vespre de la imatge 1 anterior. La meva idea, tal com es va dir, era crear la meva pròpia variant del mòdul de controlador LCD I2C, amb una petjada idèntica, que ofereixi un control programàtic complet de la pantalla LCD sobre I2C.

El diagrama esquemàtic i el disseny del PCB es van desenvolupar amb les imatges 2 i 3. de Kicad v4.0.7. Es va completar diumenge a la tarda i es van demanar les peces a Farnell i el PCB es va penjar a JLCPCB el diumenge al vespre.

Els components van arribar de Farnell el dimecres, seguits dels PCB de JLCPCB el dijous (vaig fer servir el servei de lliurament DHL per accelerar les coses) fotos 4, 5, 6 i 7.

El dijous al vespre ja s'havien construït dues taules (variants de 3v3 i 5v) i provades amb èxit en una pantalla LCD de 4 per 20. Fotos 8, 9 i 10.

Uns 5,5 dies increïbles des del concepte inicial fins a la finalització.

Em sorprèn la rapidesa amb què JLCPCB pot fer una comanda, fabricar un PCB PTH de doble cara i enviar-lo al Regne Unit. Una ampolla de 2 dies per a la fabricació i 2 dies per lliurar. Això és més ràpid que els fabricants de PCB amb seu al Regne Unit i a una fracció del preu.

Pas 3: Visió general del programari

Descripció general del programari
Descripció general del programari
Descripció general del programari
Descripció general del programari

Hi ha tres components principals del programari necessaris per controlar el mòdul del controlador LCD I2C;

1. LiquidCrystal_I2C_PCF8574 Biblioteca Arduino

Disponible aquí

Per utilitzar-lo a l'esbós Arduino per controlar la pantalla LCD.

Nota: funciona igual de bé amb el controlador de mòduls LCD genèric I2C. Només dóna funcions que altres biblioteques.

2. Biblioteca MCP4561_DIGI_POT Arduino

Per utilitzar-lo a l'esbós per controlar el contrast de la pantalla mitjançant programació

Disponible aquí

3. Control programàtic dels nivells de llum de fons LCD mitjançant la funció PWM i Quartic easing per aconseguir una decoloració suau

Com es va esmentar anteriorment, el tauler conté un únic ATTiny85 que s'utilitza per controlar la disminució gradual de la llum de fons de la pantalla.

Els detalls d’aquest programari es donen en un anterior “Suau PWM LED Fading with the ATTiny85” instructable

En aquest cas, per mantenir les dimensions finals de PCB iguals que un mòdul de controlador LCD genèric, es va escollir la variant SOIC de l'ATTiny85. Les imatges 1 i 2 mostren com es va programar i provar el SOIC ATTiny85 en el prototip configurat.

El codi programat a l'ATTiny85 era "Tiny85_I2C_Slave_PWM_2.ino" disponible aquí

Per obtenir detalls sobre com crear el vostre propi programador ATTiny85, consulteu aquest document "Programació de l'ATTiny85, ATTiny84 i ATMega328P: Arduino com a ISP".

Pas 4: provar el disseny

Prova del disseny
Prova del disseny
Prova del disseny
Prova del disseny

Per provar el disseny, vaig crear un esbós anomenat "LCDControllerTest.ino" que permet a l'usuari configurar qualsevol paràmetre específic de LCD directament a través d'una connexió de terminal sèrie.

L'esbós es pot trobar al dipòsit GitHub I2C-LCD-Controller-Module

La imatge 1 anterior mostra la premsa de placa compatible amb 5V I2C instal·lada en un LCD de 4 per 20 i la imatge 2 la pantalla predeterminada quan s’executa el codi de prova per primera vegada.

Utilitza els valors predeterminats següents per a la llum de fons i el contrast;

  • #define DISPLAY_BACKLIGHT_LOWER_VALUE_DEFAULT ((sense signar llarg) (10))
  • #define DISPLAY_CONTRAST_VALUE_DEFAULT ((uint8_t) (40))

Vaig trobar que funcionaven bé amb la pantalla LCD de 4 per 20 que tenia al recanvi.

Pas 5: Conclusió

Quan vaig començar a la indústria de l’electrònica i el programari ara fa força temps, es va fer un gran èmfasi en l’ús de la construcció de filferro o veroboard per fer prototips amb molta enginyeria excessiva al circuit final per si s’havia equivocat., tenint en compte el cost i la durada d'una tornada de taula.

Un error sol costar-vos unes quantes setmanes a l’hora prevista i provocar el marge de benefici (i possiblement la vostra feina).

Els PCB s’anomenaven “obres d’art”, perquè eren realment obres d’art. Creada dues vegades a mida completa amb cinta adhesiva de crespó negre per un "traçador" o dibuixant i reduïda fotogràficament per la fabulosa casa per fer que la foto resisteixi les plantilles.

Els traçadors també han creat diagrames de circuits i s'han extret a mà a partir de les notes de disseny. Les còpies es feien foto-estàticament i s'anomenaven "impressions blaves". Perquè eren invariablement de color blau.

Els microcontroladors només estaven en la seva infància i normalment estaven emulats en un circuit si la vostra empresa se’n podia permetre un amb el complex i costós entorn de desenvolupament.

Com a fabricant en aquell moment, el simple cost de la cadena d’eines de desenvolupament de programari era prohibitiu; inevitablement, estaven obligats a introduir els valors hexadecimals directament a EPROM (RAM / Flash si teníeu molta sort) i després passeu hores interpretant el comportament resultant per determinar què el vostre codi estava funcionant si no funcionava com s'esperava (les "tècniques de depuració més populars" o "printf" en sèrie són algunes de les tècniques de depuració més populars. Algunes coses no canvien mai). Normalment havíeu d’escriure totes les vostres pròpies biblioteques, ja que no n’hi havia cap disponible (segur que no hi havia cap font rica com Internet).

Això significava que passaves molt de temps intentant entendre com funcionava alguna cosa i passaves menys temps creant creativament.

Tots els vostres diagrames van ser dibuixats a mà, normalment en A4 o A3 i s’havien de revisar a fons, donant-los un flux lògic del recorregut del senyal d’esquerra a dreta. Les correccions normalment significaven que calia començar amb un full nou.

En la seva major part, el vostre circuit final es va desenvolupar amb veroboard per a la permanència i es va muntar en un recinte senzill en ABS per donar-li aquest "toc professional".

Per contrast, vaig desenvolupar tot aquest projecte en 5,5 dies amb programari gratuït d’alta qualitat que va donar com a resultat un PCB estàndard professional. Si el desig m’hagués agafat, l’hauria pogut muntar en una caixa impresa en 3D de la meva pròpia creació.

Una cosa que només podíeu haver somiat fa menys d’una dècada.

Com han canviat les coses per millorar.

Pas 6: referències utilitzades

Captura esquemàtica KiCAD i disseny de PCB

KiCAD EDA

Eina de desenvolupament de programari Arduino ORG

Arduino

Biblioteca Arduino de LiquidCrystal_I2C_PCF8574

Aquí

MCP4561_DIGI_POT Biblioteca Arduino

Aquí

PWM LED suau que s’esvaeix amb l’ATTiny85

Aquí

Programació d'ATTiny85, ATTiny84 i ATMega328P: Arduino com a ISP

Recomanat: