Talaan ng mga Nilalaman:

Uber I2C LCD Controller Module: 6 na Hakbang
Uber I2C LCD Controller Module: 6 na Hakbang

Video: Uber I2C LCD Controller Module: 6 na Hakbang

Video: Uber I2C LCD Controller Module: 6 na Hakbang
Video: Текстовые LCD дисплей на контроллере HD44780, Уроки Arduino 2024, Nobyembre
Anonim
Uber I2C LCD Controller Module
Uber I2C LCD Controller Module
Uber I2C LCD Controller Module
Uber I2C LCD Controller Module
Uber I2C LCD Controller Module
Uber I2C LCD Controller Module

Panimula

Maituturo ang mga detalyeng ito kung paano lumikha ng isang HD44780 LCD based module ng controller (larawan 1 sa itaas). Pinapayagan ng module ang gumagamit na kontrolin ang lahat ng mga aspeto ng LCD sa programa sa paglipas ng I2C, na binubuo; LCD at display, kaibahan at back light intensity. Kahit na ang Arduino Uno R3 ay ginamit upang prototype ito, gagana ito ng pantay na gumagana sa anumang microcontroller na sumusuporta sa I2C.

Panimula

Tulad ng nabanggit sa itaas ng artikulong ito ay nagdodokumento ng paglikha ng isang I2C LCD Controller Module, pangunahing nilalayon ito bilang isang ehersisyo sa disenyo upang matukoy kung gaano katagal aabutin upang lumikha ng isang praktikal na gumaganang PCB.

Pinalitan ng disenyo ang karaniwang module ng pangkalahatang tagakontrol (larawan 3 sa itaas) at kumukuha ng mga Instructionable at aklatan na nagawa ko nang mas maaga.

Mula sa paunang konsepto ng prototype (larawan 2 sa itaas) hanggang sa nakumpleto, ganap na nasubukan ang PCB (larawan 1 sa itaas) tumagal ng isang kabuuang 5.5 araw.

Anong mga bahagi ang kailangan ko? Tingnan ang singil ng mga materyales na nakakabit sa ibaba

Anong software ang kailangan ko?

  • Arduino IDE 1.6.9,
  • Kicad v4.0.7 kung nais mong baguhin ang PCB. Kung hindi man ay ipadala lamang ang 'LCD_Controller.zip' sa JLCPCB.

Anong mga tool ang kailangan ko?

  • Mikroskopyo na hindi bababa sa x3 (para sa SMT paghihinang),
  • SMD soldering Iron (na may likidong fluks pen at flux cored solder),
  • Malakas na sipit (para sa SMT paghihinang),
  • Pinong pliers (point at snub nosed),
  • Ang DMM na may naririnig na pagpapatuloy na tseke.

Anong mga kasanayan ang kailangan ko?

  • Maraming pasensya,
  • Ang isang mahusay na pakikitungo ng manu-manong kagalingan ng kamay at mahusay na koordinasyon ng kamay / mata,
  • Mahusay na kasanayan sa paghihinang.

Saklaw ang mga paksa

  • Panimula
  • Pangkalahatang-ideya ng Circuit
  • Paggawa ng PCB
  • Pangkalahatang-ideya ng Software
  • Pagsubok sa Disenyo
  • Konklusyon
  • Ginamit na Mga Sanggunian

Hakbang 1: Pangkalahatang-ideya ng Circuit

Pangkalahatang-ideya ng Circuit
Pangkalahatang-ideya ng Circuit

Ang isang buong diagram ng circuit ng lahat ng mga electronics ay ibinibigay sa larawan 1 sa itaas, kasama ang isang PDF na pareho sa ibaba.

Ang circuit ay idinisenyo upang maging isang eksaktong kapalit para sa karaniwang PCF8574A I2C LCD Controller Module na may mga sumusunod na pagpapahusay;

  • Mapipili ang user ng I2C ng 3v3 o 5v na pagiging tugma,
  • Pagkontrol sa digital na kaibahan o maginoo na setting ng palayok,
  • Pagpipili ng variable na ilaw sa likuran na may Quartic easing function control upang makamit ang makinis na pagkupas.

LCD Control sa Display

Ito ay isang facsimile ng karaniwang I2C LCD Controller Module na gumagamit ng isang PCF8574A (IC2) para sa I2C sa parallel conversion.

Ang default na I2C address para dito ay 0x3F.

3v3 o 5v I2C na pagiging tugma

Para sa pagpapatakbo ng 3v3 magkasya sa Q1, Q2 ROpt1, 2, 5 & 6, IC1, C2 at C2.

Kung kinakailangan ang pagpapatakbo ng 5v pagkatapos ay huwag magkasya sa anumang mga bahagi ng 3v3, pinapalitan ang mga ito ng 0 Ohm resistors ROpt 3 at 4.

Pagkakaiba sa digital

Ang pagkontrol sa digital na kaibahan ay nakakamit sa pamamagitan ng paggamit ng isang digital potentiometer U2 MCP4561-103E / MS at C4, R5.

Kung ang isang maginoo potensyomiter mekanikal ay kinakailangan pagkatapos ay ang isa ay maaaring ilapat sa PCB, RV1 10K, sa halip na U2, C4 at R5. Tingnan ang BoM para sa katugmang potensyomiter.

Sa pamamagitan ng bridging jumper J6 ang I2C adress ay 0x2E. Ipinagpalagay nito para sa normal na operasyon na ito ay nai-bridged.

Pagpipilian ng variable na ilaw sa likuran

Ang variable na ilaw sa likas na ilaw ay kinokontrol ng PWM modulasyon ng LCD LED back light sa pamamagitan ng U1 pin 6 isang ATTiny85. Upang mapanatili ang buong pagiging tugma sa karaniwang I2C LCD Controller Module R1, T1 R7 at T2 ay ginagamit upang gawing modulate ang supply ng rail.

Ang default na I2C address para sa ito ay 0x08. Mapipili ito ng gumagamit, sa oras ng pag-ipon bago ang programa ng U1.

Hakbang 2: Paggawa ng PCB

Paggawa ng PCB
Paggawa ng PCB
Paggawa ng PCB
Paggawa ng PCB
Paggawa ng PCB
Paggawa ng PCB
Paggawa ng PCB
Paggawa ng PCB

Tulad ng nabanggit kanina, ang Instructable na ito ay isang ehersisyo, pangunahing nilalayon upang matukoy kung gaano katagal bago makumpleto ang isang disenyo (na may praktikal na layunin).

Sa pagkakataong ito naisip ko ang paunang konsepto noong Sabado ng hapon at nakumpleto ang prototype ng Sabado ng gabi larawan 1 sa itaas. Ang aking ideya tulad ng nakasaad, ay upang lumikha ng aking sariling variant ng I2C LCD module ng magsusupil, na may isang magkatulad na bakas ng paa, na nag-aalok ng buong programmatic na kontrol ng LCD sa paglipas ng I2C.

Ang diagram ng eskematiko at layout ng PCB ay binuo kasama ang Kicad v4.0.7 larawan 2 at 3. Natapos ito noong Linggo ng hapon at ang mga piyesa ay iniutos mula sa Farnell at ang PCB ay na-upload sa JLCPCB ng Linggo ng gabi.

Dumating ang mga sangkap mula sa Farnell noong Miyerkules, sinundan ng mga PCB mula sa JLCPCB noong Huwebes (ginamit ko ang serbisyo sa paghahatid ng DHL upang mapabilis ang mga bagay) larawan 4, 5, 6 & 7.

Pagsapit ng Huwebes ng gabi dalawang board (3v3 at 5v variants) ang naitayo at matagumpay na nasubukan sa isang 4 hanggang 20 LCD display. Mga Larawan 8, 9 at 10.

Isang kamangha-manghang 5.5 araw mula sa paunang konsepto hanggang sa matapos.

Nagtataka ito sa akin kung gaano kabilis ang JLCPCB na makakakuha ng isang order, gumagawa ng isang dalwang panig na PTH PCB at ipadala ito sa UK. Isang pamamaga ng 2 araw para sa paggawa at 2 araw upang maihatid. Mas mabilis ito kaysa sa mga tagagawa ng PCB na batay sa UK at sa isang maliit na bahagi ng presyo.

Hakbang 3: Pangkalahatang-ideya ng Software

Pangkalahatang-ideya ng Software
Pangkalahatang-ideya ng Software
Pangkalahatang-ideya ng Software
Pangkalahatang-ideya ng Software

Mayroong tatlong pangunahing mga bahagi ng bahagi ng software na kinakailangan upang makontrol ang I2C LCD module ng magsusupil;

1. LiquidCrystal_I2C_PCF8574 Arduino Library

Magagamit dito

Upang magamit sa iyong Arduino sketch upang makontrol ang LCD display.

Tandaan: Ito ay gumagana nang pantay na maayos sa Generic I2C LCD Module Controller. Nagbibigay lamang ang nagbibigay ng pagpapaandar kaysa sa ibang mga aklatan.

2. MCP4561_DIGI_POT Arduino Library

Upang magamit sa iyong sketch upang maprograma nang kontrolin ang kaibahan ng LCD

Magagamit dito

3. Programmatic control ng mga antas ng back light LCD gamit ang PWM at Quartic easing function upang makamit ang makinis na pagkupas

Tulad ng nabanggit kanina, ang board ay naglalaman ng isang solong ATTiny85 na ginamit upang makontrol ang unti-unting pagkupas ng display back light.

Ang mga detalye ng software na ito ay ibinibigay sa isang naunang Masusukat na 'Smooth PWM LED Fading With the ATTiny85'

Sa kasong ito upang mapanatili ang pangwakas na mga sukat ng PCB kapareho ng isang generic na module ng LCD controller ay napili ang SOIC variant ng ATTiny85. Ipinapakita ng mga larawan 1 at 2 kung paano na-program at nasubukan ang ATTiny85 SOIC sa na-set up na prototype.

Ang code na nai-program sa ATTiny85 ay 'Tiny85_I2C_Slave_PWM_2.ino' na magagamit dito

Para sa mga detalye sa kung paano lumikha ng iyong sariling ATTiny85 programmer tingnan ang Ituturo na 'Programming the ATTiny85, ATTiny84 at ATMega328P: Arduino As ISP'

Hakbang 4: Pagsubok sa Disenyo

Pagsubok sa Disenyo
Pagsubok sa Disenyo
Pagsubok sa Disenyo
Pagsubok sa Disenyo

Upang subukan ang disenyo lumikha ako ng isang sketch na pinangalanang 'LCDControllerTest.ino' na nagbibigay-daan sa gumagamit na magtakda ng anumang tukoy na parameter ng LCD nang direkta sa isang koneksyon sa serial terminal.

Ang sketch ay matatagpuan sa aking GitHub repository I2C-LCD-Controller-Module

Ipinapakita ng larawan 1 sa itaas ang 5v I2C na sumusunod na press press na nilagyan sa isang 4 by 20 LCD at larawan 2 ang default na display kapag pinatakbo ang test code sa unang pagkakataon.

Gumagamit ito ng mga sumusunod na default na halaga para sa back light at kaibahan;

  • #define DISPLAY_BACKLIGHT_LOWER_VALUE_DEFAULT ((unsigned long) (10))
  • #define DISPLAY_CONTRAST_VALUE_DEFAULT ((uint8_t) (40))

Natagpuan ko ang mga ito na gumana nang maayos sa 4 hanggang 20 LCD display na nakahiga ako.

Hakbang 5: Konklusyon

Noong una akong nagsimula sa industriya ng electronics / software medyo matagal na ngayon, nagkaroon ng malaking diin sa paggamit ng wire-wrap o veroboard konstruksyon para sa prototyping na may maraming labis na engineering sa huling circuit kung sakaling nagkamali ka, na ibinigay sa gastos at tagal ng isang muling pag-ikot ng board.

Ang isang pagkakamali ay kadalasang nagkakahalaga sa iyo ng ilang linggo sa iskedyul at hinipan ang margin ng kita (at posibleng iyong trabaho).

Ang mga PCB ay tinawag na 'art works', sapagkat sila ay tunay na likhang sining. Nilikha ng dalawang beses buong sukat gamit ang malagkit na itim na crepe tape ng isang 'tracer' o draughtsperson at larawan na binawasan ng fab house upang gawin ang larawan na labanan ang mga stencil.

Ang mga diagram ng circuit ay nilikha din ng mga tracer at iginuhit ng kamay mula sa iyong mga tala ng disenyo. Ang mga kopya ay ginawang photo-statically at tinawag na 'asul na mga kopya'. Sapagkat ang mga ito ay walang paltos asul na kulay.

Ang mga Micro-Controller ay nasa kanilang pagkabata lamang at karaniwang nasa circuit na tinulad kung kayang bayaran ng iyong kumpanya ang isa sa kasamang kumplikadong at mamahaling kapaligiran sa pag-unlad.

Bilang isang tagagawa sa oras na iyon, ang gastos lamang ng kadena ng tool sa pag-unlad ng software ay ipinagbabawal, hindi maiwasang mapilit ka na sundutin ang mga halaga ng hex direkta sa EPROM (RAM / Flash kung napakaswerte mo) pagkatapos ay gumastos ng maraming oras sa pagbibigay kahulugan sa nagresultang pag-uugali upang matukoy kung ano ginagawa ng iyong code kung hindi ito gumagana tulad ng inaasahan (bit 'wiggling' o serial printf na pinakatanyag na diskarte sa pag-debug. Ang ilang mga bagay ay hindi nagbabago). Karaniwan mong kailangang isulat ang lahat ng iyong sariling mga silid aklatan na walang magagamit (tiyak na walang mayamang mapagkukunan tulad ng internet).

Nangangahulugan ito na gumugol ka ng maraming oras sa pagsubok upang maunawaan kung paano gumana ang isang bagay at gumugol ng mas kaunting oras sa malikhaing paggawa.

Ang lahat ng iyong mga diagram ay iginuhit ng kamay, karaniwang sa A4 o A3 at kailangang pag-isipang mabuti, na bibigyan sila ng isang lohikal na daloy ng signal path mula kaliwa hanggang kanan. Karaniwang nangangahulugan ang mga pagwawasto na kailangan mo upang magsimula sa isang sariwang sheet.

Para sa pinaka bahagi ang iyong pangwakas na circuit ay binuo gamit ang veroboard para sa pagiging permanente at naka-mount sa isang simpleng enclosure ng ABS upang bigyan ito ng 'propesyonal na ugnayan'.

Sa pamamagitan ng matindi na kaibahan, binuo ko ang buong proyekto na ito sa 5.5 araw gamit ang mataas na kalidad na freeware na nagreresulta sa isang propesyonal na karaniwang PCB. Kung nadala ako ng pagnanasa, maaari kong mai-mount ito sa isang 3D na naka-print na kahon ng aking sariling paggawa.

Isang bagay na maaari mo lamang pinangarap na mas mababa sa isang dekada na ang nakakaraan.

Paano nagbago ang mga bagay para sa mas mahusay.

Hakbang 6: Ginamit na Mga Sanggunian

Nakunan ng KiCAD Schematic at disenyo ng PCB

KiCAD EDA

Arduino ORG Software Development Tool

Arduino

LiquidCrystal_I2C_PCF8574 Arduino Library

Dito

MCP4561_DIGI_POT Arduino Library

Dito

Makinis na PWM LED Fading Gamit ang ATTiny85

Dito

Pagprogram ng ATTiny85, ATTiny84 at ATMega328P: Arduino Bilang ISP

Inirerekumendang: