Spisu treści:

Moduł kontrolera LCD Uber I2C: 6 kroków
Moduł kontrolera LCD Uber I2C: 6 kroków

Wideo: Moduł kontrolera LCD Uber I2C: 6 kroków

Wideo: Moduł kontrolera LCD Uber I2C: 6 kroków
Wideo: Wprowadzenie do wyświetlacza LCD2004 z modułem I2C dla Arduino 2024, Lipiec
Anonim
Moduł kontrolera LCD Uber I2C
Moduł kontrolera LCD Uber I2C
Moduł kontrolera LCD Uber I2C
Moduł kontrolera LCD Uber I2C
Moduł kontrolera LCD Uber I2C
Moduł kontrolera LCD Uber I2C

Preambuła

Ta instrukcja zawiera szczegółowe informacje na temat tworzenia modułu kontrolera opartego na HD44780 LCD (zdjęcie 1 powyżej). Moduł pozwala użytkownikowi na programowe sterowanie wszystkimi aspektami LCD poprzez I2C, w tym; LCD i wyświetlacz, kontrast i intensywność podświetlenia. Chociaż do jego prototypowania użyto Arduino Uno R3, równie dobrze będzie działał z każdym mikrokontrolerem obsługującym I2C.

Wstęp

Jak wspomniano powyżej, ten artykuł dokumentuje tworzenie modułu kontrolera LCD I2C, który był przeznaczony przede wszystkim jako ćwiczenie projektowe, aby określić, ile czasu zajmie stworzenie praktycznej działającej płytki drukowanej.

Projekt zastępuje standardowy moduł kontrolera generycznego (rys. 3 powyżej) i opiera się na instrukcjach i bibliotekach, które stworzyłem wcześniej.

Od początkowej koncepcji prototypu (rys. 2 powyżej) do ukończonej, w pełni przetestowanej płytki PCB (rys. 1 powyżej) zajęło to łącznie 5,5 dnia.

Jakich części potrzebuję? Zobacz listę materiałów załączoną poniżej

Jakiego oprogramowania potrzebuję?

  • Arduino IDE 1.6.9,
  • Kicad v4.0.7, jeśli chcesz zmodyfikować PCB. W przeciwnym razie po prostu wyślij 'LCD_Controller.zip' do JLCPCB.

Jakich narzędzi potrzebuję?

  • Mikroskop minimum x3 (do lutowania SMT),
  • Lutownica SMD (z płynnym topnikiem i lutem proszkowym),
  • Mocna pęseta (do lutowania SMT),
  • Cienkie szczypce (szpiczaste i półokrągłe),
  • DMM z akustyczną kontrolą ciągłości.

Jakich umiejętności potrzebuję?

  • Dużo cierpliwości,
  • Duża sprawność manualna i doskonała koordynacja ręka-oko,
  • Doskonałe umiejętności lutowania.

Omówione tematy

  • Wstęp
  • Przegląd obwodu
  • Produkcja PCB
  • Przegląd oprogramowania
  • Testowanie projektu
  • Wniosek
  • Użyte referencje

Krok 1: Przegląd obwodu

Przegląd obwodu
Przegląd obwodu

Pełny schemat obwodu całej elektroniki znajduje się na rysunku 1 powyżej, wraz z plikiem PDF poniżej.

Obwód został zaprojektowany jako dokładny zamiennik standardowego modułu kontrolera LCD PCF8574A I2C z następującymi ulepszeniami;

  • Możliwość wyboru przez użytkownika I2C 3v3 lub 5v kompatybilność,
  • Cyfrowa kontrola kontrastu lub konwencjonalne ustawienie garnków,
  • Zmienny wybór intensywności podświetlenia z funkcją sterowania Quartic easing w celu uzyskania płynnego zanikania.

Sterowanie wyświetlaczem LCD

Jest to kopia standardowego modułu kontrolera LCD I2C wykorzystującego PCF8574A (IC2) do konwersji I2C na równoległą.

Domyślny adres I2C to 0x3F.

Kompatybilność 3v3 lub 5v I2C

W przypadku operacji 3v3 pasują do Q1, Q2 ROpt1, 2, 5 i 6, IC1, C2 i C2.

Jeśli wymagana jest praca 5V, nie montuj żadnych komponentów 3v3, zastępując je rezystorami 0 Ohm ROpt 3 i 4.

Kontrast cyfrowy

Cyfrową kontrolę kontrastu uzyskuje się za pomocą cyfrowego potencjometru U2 MCP4561-103E/MS i C4, R5.

Jeśli wymagany jest konwencjonalny potencjometr mechaniczny, można go zamontować na płytce drukowanej, RV1 10K, zamiast U2, C4 i R5. Patrz BoM dla kompatybilnego potencjometru.

Poprzez zmostkowanie zworki J6 adres I2C to 0x2E. Przyjęto, że dla normalnej pracy jest to zmostkowane.

Zmienny wybór intensywności podświetlenia

Zmienna intensywność podświetlenia jest kontrolowana przez modulację PWM podświetlenia LCD LED za pośrednictwem pinu U1 6 i ATTiny85. W celu zachowania pełnej kompatybilności ze standardowym I2C LCD Controller Moduły R1, T1 R7 i T2 służą do modulacji +ve szyny zasilającej.

Domyślny adres I2C to 0x08. Jest to wybierane przez użytkownika w czasie kompilacji przed programowaniem U1.

Krok 2: Produkcja PCB

Produkcja PCB
Produkcja PCB
Produkcja PCB
Produkcja PCB
Produkcja PCB
Produkcja PCB
Produkcja PCB
Produkcja PCB

Jak wspomniano wcześniej, ten Instructable był ćwiczeniem, którego głównym celem było określenie, ile czasu zajmie ukończenie projektu (który miał praktyczny cel).

W tym przypadku pomyślałem o początkowej koncepcji w sobotnie popołudnie i ukończyłem prototyp do sobotniego wieczoru, zdjęcie 1 powyżej. Jak wspomniałem, moim pomysłem było stworzenie własnego wariantu modułu kontrolera LCD I2C o identycznej podstawie, oferującego pełną programową kontrolę LCD przez I2C.

Schemat ideowy i układ PCB zostały opracowane przy pomocy Kicad v4.0.7, zdjęcia 2 i 3. Ukończono to w niedzielne popołudnie, a części zostały zamówione w firmie Farnell, a płytka PCB została przesłana do JLCPCB do niedzieli wieczorem.

Komponenty przybyły z Farnell w środę, a w czwartek płytki drukowane z JLCPCB (korzystałem z usługi kurierskiej DHL, aby przyspieszyć) zdjęcia 4, 5, 6 i 7.

Do czwartkowego wieczoru zbudowano dwie płyty (warianty 3v3 i 5v) i pomyślnie przetestowano je na wyświetlaczu LCD 4x20. Zdjęcia 8, 9 i 10.

Niesamowite 5,5 dnia od początkowej koncepcji do ukończenia.

Zdumiewa mnie, jak szybko JLCPCB jest w stanie przyjąć zamówienie, wyprodukować dwustronną płytkę PCB PTH i wysłać ją do Wielkiej Brytanii. Pęcherze 2 dni na produkcję i 2 dni na dostawę. To szybciej niż producenci PCB z siedzibą w Wielkiej Brytanii i za ułamek ceny.

Krok 3: Przegląd oprogramowania

Przegląd oprogramowania
Przegląd oprogramowania
Przegląd oprogramowania
Przegląd oprogramowania

Istnieją trzy główne części składowe oprogramowania niezbędne do sterowania modułem kontrolera LCD I2C;

1. Biblioteka Arduino LiquidCrystal_I2C_PCF8574

Dostępny tutaj

Do użycia w szkicu Arduino do sterowania wyświetlaczem LCD.

Uwaga: Działa to równie dobrze ze standardowym kontrolerem modułu LCD I2C. Tylko to daje funkcjonalność niż inne biblioteki.

2. Biblioteka Arduino MCP4561_DIGI_POT

Do wykorzystania w szkicu, aby programowo kontrolować kontrast wyświetlacza LCD

Dostępny tutaj

3. Programowa kontrola poziomów podświetlenia LCD za pomocą funkcji PWM i Quartic easing w celu uzyskania płynnego zanikania

Jak wspomniano wcześniej, na płycie znajduje się pojedynczy ATTiny85 służący do kontrolowania stopniowego zanikania podświetlenia wyświetlacza.

Szczegóły tego oprogramowania są podane we wcześniejszej instrukcji „Smooth PWM LED Fading With ATTiny85”

W tym przypadku, w celu zachowania ostatecznych wymiarów PCB takich samych jak w standardowym module sterownika LCD, wybrano wariant SOIC ATTiny85. Zdjęcia 1 i 2 pokazują, jak ATTiny85 SOIC został zaprogramowany i przetestowany w konfiguracji prototypu.

Kod zaprogramowany w ATTiny85 to 'Tiny85_I2C_Slave_PWM_2.ino' dostępny tutaj

Aby uzyskać szczegółowe informacje na temat tworzenia własnego programatora ATTiny85, zapoznaj się z instrukcją „Programowanie ATTiny85, ATTiny84 i ATMega328P: Arduino As ISP”

Krok 4: Testowanie projektu

Testowanie projektu
Testowanie projektu
Testowanie projektu
Testowanie projektu

Aby przetestować projekt, stworzyłem szkic o nazwie „LCDControllerTest.ino”, który pozwala użytkownikowi ustawić dowolny konkretny parametr LCD bezpośrednio przez połączenie terminala szeregowego.

Szkic można znaleźć w moim repozytorium GitHub I2C-LCD-Controller-Module

Zdjęcie 1 powyżej pokazuje płytę zgodną z 5 V I2C zamontowaną na wyświetlaczu LCD 4 na 20, a zdjęcie 2 jest domyślnym wyświetlaczem podczas uruchamiania kodu testowego po raz pierwszy.

Wykorzystuje następujące wartości domyślne dla podświetlenia i kontrastu;

  • #define DISPLAY_BACKLIGHT_LOWER_VALUE_DEFAULT ((długi bez znaku) (10))
  • #define DISPLAY_CONTRAST_VALUE_DEFAULT ((uint8_t) (40))

Zauważyłem, że działały dobrze z wyświetlaczem LCD 4 na 20, który leżałem w zapasie.

Krok 5: Wniosek

Kiedy jakiś czas temu zaczynałem pracę w branży elektroniki/oprogramowania, duży nacisk kładziono na użycie konstrukcji wire-wrap lub veroboard do prototypowania z dużą ilością nadmiernej inżynierii na końcowym obwodzie, na wypadek, gdybyś popełnił błąd, biorąc pod uwagę koszt i czas trwania ponownego zakręcenia planszy.

Błąd zazwyczaj kosztował Cię kilka tygodni w harmonogramie i obniżył marżę zysku (i prawdopodobnie Twoją pracę).

PCB nazwano „dziełami sztuki”, ponieważ były naprawdę dziełami sztuki. Stworzony dwa razy w pełnym rozmiarze za pomocą lepkiej czarnej taśmy krepowej przez „trasera” lub rysownika i pomniejszony fotograficznie przez fabrykę, aby szablony były odporne na zdjęcia.

Schematy obwodów zostały również stworzone przez znaczniki i narysowane ręcznie na podstawie notatek projektowych. Kopie wykonywano fotostatycznie i nazywano „niebieskimi odbitkami”. Ponieważ były niezmiennie niebieskie.

Mikrokontrolery były dopiero w powijakach i zazwyczaj były emulowane w obwodach, jeśli Twoja firma mogła sobie na nie pozwolić z towarzyszącym złożonym i kosztownym środowiskiem programistycznym.

Jako twórca w tamtym czasie sam koszt łańcucha narzędzi do tworzenia oprogramowania był zaporowy, nieuchronnie musiałeś umieszczać wartości szesnastkowe bezpośrednio w pamięci EPROM (RAM/Flash, jeśli miałeś szczęście), a następnie spędzać godziny na interpretacji wynikowego zachowania, aby określić, co Twój kod działał, jeśli nie działał zgodnie z oczekiwaniami (trochę „wiggled” lub szeregowy printf to najpopularniejsze techniki debugowania. Niektóre rzeczy nigdy się nie zmieniają). Zazwyczaj trzeba było napisać wszystkie własne biblioteki, ponieważ żadna nie była dostępna (z pewnością nie było bogatego źródła, takiego jak Internet).

Oznaczało to, że spędziłeś dużo czasu próbując zrozumieć, jak coś działa, a mniej czasu poświęcałeś na kreatywne tworzenie.

Wszystkie Twoje diagramy zostały narysowane ręcznie, zazwyczaj w formacie A4 lub A3 i musiały zostać dokładnie przemyślane, dając im logiczny przepływ ścieżki sygnału od lewej do prawej. Korekty zwykle oznaczały, że trzeba było zacząć od świeżego prześcieradła.

W większości twój ostateczny obwód został opracowany przy użyciu veroboard dla zapewnienia trwałości i zamontowany w prostej obudowie ABS, aby nadać mu „profesjonalny charakter”.

Dla kontrastu, cały ten projekt opracowałem w 5,5 dnia przy użyciu wysokiej jakości darmowego oprogramowania, co dało profesjonalną, standardową płytkę drukowaną. Gdyby pożądanie mnie zabrało, mógłbym zamontować go w wydrukowanym w 3D pudełku własnego autorstwa.

Coś, o czym mogłeś tylko pomarzyć niecałą dekadę temu.

Jak rzeczy zmieniły się na lepsze.

Krok 6: Użyte referencje

KiCAD Przechwytywanie schematów i projektowanie PCB

KiCAD EDA

Narzędzie do tworzenia oprogramowania Arduino ORG

Arduino

LiquidCrystal_I2C_PCF8574 Biblioteka Arduino

Tutaj

MCP4561_DIGI_POT Biblioteka Arduino

Tutaj

Płynne zanikanie diod PWM dzięki ATTiny85

Tutaj

Programowanie ATTiny85, ATTiny84 i ATMega328P: Arduino jako ISP

Zalecana: