Skocz do zawartości

Arduino nano (Klon) - problem z magistralą I2C


Pomocna odpowiedź

Napisano (edytowany)

Cześć

Mam problem z połączeniem wyświetlacza LCD (16x2) z magistralą I2C na klonie Arduino Nano.

Na płytce mam opis wyjść SDA i SCL odpowiednio na A4 i A5 (co zgadza się z wieloma schematami w sieci). Do w/w pinów doprowadziłem rezystory 10k podłączone pod linię 5V. Używając znalezionych w sieci przykładów kodu użycia wyświetlacza - wyświetlacz nadal nie chciał działać.

Poszukałem kawałka kodu do znalezienia adresu wyświetlacza jednak to nadal nie pomogło (myślałem, że adres jest inny niż 0x27). Żaden adres nie został znaleziony a program cały czas próbował 'skanować' adresy jednak nawet po 10 minutach nic nie wynikło z tego.

I2C Scanner
Scanning...

Znalazłem chyba na forum Arduino post gdzie ktoś polecił użycie biblioteki "hd44780" oraz jednego z przykładów "I2CexpDiag", który diagnozuje połączenia z I2C. Program wypluł taki zbitek informacji.

********************************************************************
Serial Initialized
--------------------------------------------------------------------
I2CexpDiag - i2c LCD i/o expander backpack diagnostic tool
--------------------------------------------------------------------
hd44780 lib version: 1.3.2
--------------------------------------------------------------------
Reported Arduino Revision: 1.8.13
CPU ARCH: AVR - F_CPU: 16000000
--------------------------------------------------------------------
SDA digital pin: 18 A4
SCL digital pin: 19 A5
--------------------------------------------------------------------
Checking for required external I2C pull-up on SDA - STUCK LOW
Checking for required external I2C pull-up on SCL - YES
********************************************************************
ERROR: SDA or SCL stuck pin
********************************************************************
I2C bus not usable

Zaznaczę jeszcze raz, że mam podpięte rezystory pod oba piny. Sprawdziłem, czy piny działają chociaż z diodą nadając im stan wysoki i niski i tutaj dioda się świeciła idealnie. Metodą prób i błędów zwiększałem też opór aczkolwiek to niewiele dało, doszedłem do 50-60k i nie było zmiany (w sensie nadal był błąd i nie znajdowało adresu I2C).

Gdzie jeszcze mogłem się pomylić? Czy może płytka uszkodzona? Jeśli chodzi o podłączenie SCL - SCL i SDA - SDA to sprawdzałem to kilkukrotnie czy przypadkiem nie odwróciłem pinów 😉

(Co do zdjęcia to lewa linia to 12V prawa to 5V, wyświetlacz podpięty jest bezpośrednio pod linię 5V a samo Arduino zasilane jest z 12V na VIN)

 

Edit: Na szybko skombinowałem Arduino UNO i po podłączeniu wszystkiego podobnie mam identyczny problem. Coś ewidentnie robię źle, lub wyświetlacz LCD jest uszkodzony.

Edit2: Poczytałem i mam chip na konwerterze od PCF8574T czyli od semiconductors więc brak lutu oznacza adres 0x3F ale to nadal nic mi nie daje, poza wiedzą.

im1age0.jpg

Edytowano przez Sn0w
Dodanie opisu o skanerze adresów i2c
  • 4 tygodnie później...
47 minut temu, Norbert7630 napisał:

Witam znalazłeś rozwiązanie tego problemu?

Problem rozwiązałem zmianą wyświetlacza na inny.

 

16 minut temu, Belferek napisał:

Skaner i2c powinien znaleźć wyświetlacz - 2 x sprawdź zasilanie, zmień przewody, podłącz inne urządzenie i2c....

Nie. Gdy wyświetlacz jest uszkodzony to podłączenie przewodów nic nie da. Przy braku zmiany ułożenia przewodów, drugi wyświetlacz zaczął działać od strzału. 

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...