Arduino, Wyświetlacz LCD + konwerter I2C

Masz problem, z którym nie możesz sobie poradzić? Pisz śmiało!
ODPOWIEDZ
Adik123
Młodszy majsterkowicz
Posty: 1
Rejestracja: 15 kwie 2017, 11:47

Arduino, Wyświetlacz LCD + konwerter I2C

Post autor: Adik123 » 15 kwie 2017, 11:52

Witam.
Posiadam wyświetlacz LCD 2x16 wraz z konwerterem I2C.
Po podłączeniu tego konwertera z arduino uno i uruchomieniu przykładowego programu z tekstem "hello world" pojawia się problem.
Mianowicie na wyświetlaczu pojawia się jedynie pierwsza litera tekstu.
Czy ma ktoś pomysł jak to naprawić?

Pozdrawiam.

Co miesiąc do wygrania nagrody o wartości ponad 1600 zł!


Awatar użytkownika
ethanak
Złota rączka
Posty: 784
Rejestracja: 21 lis 2015, 14:41
Kontakt:

Re: Arduino, Wyświetlacz LCD + konwerter I2C

Post autor: ethanak » 15 kwie 2017, 12:43

Poszukaj na forum, było rozwiązanie (zmiana biblioteki) ale z telefonu Ci linka nie mam jak podać.
Pisze człowiek ambitnie, a tu przychodzi prostak i wszystko rozumie.
To jest ewidentna bezczelność!
Awatar użytkownika
Slawek
Starszy majsterkowicz
Posty: 454
Rejestracja: 29 mar 2015, 15:05

Re: Arduino, Wyświetlacz LCD + konwerter I2C

Post autor: Slawek » 15 kwie 2017, 18:27

Tu masz sprawdzoną bibliotekę, podmień tą którą masz zainstalowaną w Moje Dokumenty\Arduino\libraries\LiquidCrystal - najlepiej usuń katalog i rozpakuj tą z załączonego archiwum, i zamknij wszystkie okienka Arduino IDE i uruchom ponownie.
LiquidCrystal.rar
A tak wygląda przykładowa inicjacja :

#include "Arduino.h"

#include <LiquidCrystal_I2C.h>
#include <Wire.h>

LiquidCrystal_I2C lcd(0x3F, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);

void setup(){
  
    lcd.begin(16, 2);
    lcd.clear();
Serial.begin(9600);

      lcd.setBacklight(HIGH);


}

void loop(){
 
  
   lcd.setCursor(0,1);
   lcd.print("sdfdsfg : ");
   int a = analogRead(A0);
   float wynik = (float) a * 5 /1024;
   lcd.print(wynik);
   delay(1000);
   lcd.setCursor(0,1);
   lcd.print(millis());
}
Być może będziesz musiał zmienić adres I2C z 0x3F na 0x27 - nie wiem jaki masz :)
Proponuję nie instalować najnowszych Arduino tylko wersję 1.0.6.

Pozdr
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
MOL
Młodszy majsterkowicz
Posty: 2
Rejestracja: 14 lis 2018, 19:44

Re: Arduino, Wyświetlacz LCD + konwerter I2C

Post autor: MOL » 14 lis 2018, 19:56

Witajcie!
Jestem nowy na forum, a chciałbym odświeżyć ten temat.
Chcę podłączyć do NodeMCU wyświetlacz, który kontrolnie będzie wyświetlał informacje otrzymywane z WIFI.
Jeśli wygeneruję napis w setup(), to wyświetla się poprawnie.
Następnie, jeśli zainicjuję komunikację z Arduino na I2C z pomocę wire, żadnego następnego tekstu nie udaje się wysłać na wyświetlacz:

Kod: Zaznacz cały

void setup() {
lcd.begin(16,2);
lcd.backlight();
lcd.setCursor(1, 0);
lcd.print("Magazyn");
lcd.setCursor(0, 1);
lcd.print("PALETA:");

Serial.begin(115200);
delay(10);
Serial.println("Dowolny tekst na wyświetlacz");
lcd.print("cokolwiek:");   // ten tekst wyświetli się na wyświetlaczu

Wire.begin(0,2);
Serial.println("Próbujemy wysłać coś na wyświetlacz po komendzie Wire.begin");
lcd.home();
lcd.setCursor(0, 1);
lcd.print("Wykonano Wire.begin");   // ten tekst nie pojawia się na wyświetlaczu
Co może być przyczyną zaniku komunikacji z wyświetlaczem?

Będę wdzięczny za wszystkie wskazówki.
Awatar użytkownika
ethanak
Złota rączka
Posty: 784
Rejestracja: 21 lis 2015, 14:41
Kontakt:

Re: Arduino, Wyświetlacz LCD + konwerter I2C

Post autor: ethanak » 15 lis 2018, 10:51

Przede wszystkim - może uprzejmie wrzucisz cały kod a nie tylko kawałek, bo możesz dostać kawałek odpowiedzi.
Poza tym - lcd.begin() wywołuje między innymi Wire.begin(4,5)
Poza tym - jak to masz podłączone? Dlaczego upierasz się na piny 0 i 2 (to akurat fatalny pomysł)? Pamiętaj, że D0 i D2 w NodeMCU to wcale nie piny 0 i 2 (ot, taka ichniejsza uroda...)
Pisze człowiek ambitnie, a tu przychodzi prostak i wszystko rozumie.
To jest ewidentna bezczelność!
MOL
Młodszy majsterkowicz
Posty: 2
Rejestracja: 14 lis 2018, 19:44

Re: Arduino, Wyświetlacz LCD + konwerter I2C

Post autor: MOL » 15 lis 2018, 10:59

Ustawiłem NodeMCU jako master, a arduino Mega jako slave, uporządkowałem kod i teraz wszystko mi działa...
Dzięki za zainteresowanie...
ps. Używam D1 - SDA i D2 - SCL a tym odpowiadają piny 5 i 4, nie wiem skąd się wzięło 0 i 2 - pewnie jakiś przykład z neta.
ODPOWIEDZ

Strony partnerskie: