Szukam kogoś kto ogarnia #elektronika #esp8266 i wpadłby do mnie do centrum #poznan pomóc podłączyć wyświetlacz 20x4 z LCM1602 do Wemos D1 mini. Pomysły już mi się skończyły, wszelkie tutoriale zawodzą a na forach kłócą się jakich rezystorów podciągających trzeba użyć i nikt nic konkretnego nie wie. Zapłata w formie dobrych browarków (ale nie jakiegoś koncernowych czy "rzemieślniczych" sików) lub inna do dogadania.
@StefanQ: ale w czym problem tak właściwie? To normalne urządzenie I2C, musi mieć zasilanie, jeśli jest zasilane z innego źródła, niż Wemos, to musi mieć wspólną masę z Wemosem, linie SDA i SCL muszą być połączone do portów procka zgodnych z konfiguracją w jego sofcie (typowo dedykowane do tej roli są D2 i D1), dodatkowo muszą mieć rezystory podciągające do 3.3V, o wartości kilku kiloomów. I to musi działać.
@StefanQ: daj jeszcze fotkę ekranu wyświetlacza - bez inicjalizacji powinny być w górnym rzędzie prostokąty. Jak nie ma to jest skopane zasilanie albo ustawienie kontrastu.
@StefanQ: wygląda dobrze, więc zostaje konfiguracja projektu. Sprawdź jaki ustawiłeś adres I2C w sofcie - linie adresowe A0...A2 PCF8574 wiszą w powietrzu, więc powinieneś używać adresu 0x4E/0x4F.
Jeszcze jedna rzecz, której można się czepiać to ten konwerter poziomów. Jeśli jest jednokierunkowy, to I2C nie będzie z tym banglać, nawet jeśli tylko piszesz do wyświetlacza. I2C ma w protokole ACK od slave'a i jego brak może ogłupiać bibliotekę.
// Construct an LCD object and pass it the // I2C address, width (in characters) and // height (in characters). Depending on the // Actual device, the IC2 address may change. LiquidCrystal_I2C lcd(0x4E, 20, 4);
void setup() {
// The begin call takes the width and height. This // Should match the number provided to the constructor. lcd.begin(20,4); lcd.init();
@StefanQ: ja na początku sprawdziłby czy na pewno esp wykrywa lcd po i2c - można znaleźć kod ze skanerem w google - to taka moja pierwsza myśl, bez głębsze zagłębiania się
@StefanQ: no jak widać, jest error - sprawdź jeszcze raz połączenia, bo pewnie tam gdzieś jest problem. Ewentualnie podłącz wyświetlacz przez i2c bezpośrednio do arduino i spróbuj je wywołać skanerem
Zapłata w formie dobrych browarków (ale nie jakiegoś koncernowych czy "rzemieślniczych" sików) lub inna do dogadania.
@StefanQ: zacznij od napisania albo fotki pokazującej jak to łączysz.
Wemos D1 wystawia 3.3V na złącze I2C: https://www.wemos.cc/en/latest/d1/d1_mini.html
a standardowe znakowe wyświetlacze LCD, potrzebują czegoś zbliżonego do 5V do pracy:
https://botland.store/content/81-lcd-2x16--arduino-i-lcm1602-i2c
Komentarz usunięty przez autora
Proszę lcm1602 od spodu
Jak nie ma to jest skopane zasilanie albo ustawienie kontrastu.
Sprawdź jaki ustawiłeś adres I2C w sofcie - linie adresowe A0...A2 PCF8574 wiszą w powietrzu, więc powinieneś używać adresu 0x4E/0x4F.
I2C ma w protokole ACK od slave'a i jego brak może ogłupiać bibliotekę.
#include
// Construct an LCD object and pass it the
// I2C address, width (in characters) and
// height (in characters). Depending on the
// Actual device, the IC2 address may change.
LiquidCrystal_I2C lcd(0x4E, 20, 4);
void setup() {
// The begin call takes the width and height. This
// Should match the number provided to the constructor.
lcd.begin(20,4);
lcd.init();
// Turn on the
Serial Initialized
--------------------------------------------------------------------
I2CexpDiag - i2c LCD i/o expander backpack diagnostic tool
--------------------------------------------------------------------
hd44780 lib version: 1.3.2
--------------------------------------------------------------------
Reported Arduino Revision: 1.8.16
Arduino Board: ESP8266_WEMOS_D1MINI
CPU ARCH: ESP8266 - F_CPU: 80000000
--------------------------------------------------------------------
SDA digital pin: 4 (GPIO4) D2
SCL digital pin: 5 (GPIO5) D1
--------------------------------------------------------------------
Checking for required external I2C pull-up on SDA - STUCK LOW
Checking for required external I2C pull-up on SCL
@StefanQ: sprawdź czy nie masz tam zwarcia do masy, chyba że to przez brak pull-upu.
Do trzech razy sztuka - sprawdziłem na nowym, trzecim już konwerterze I2C, pomogło.