Arduino Polska Forum
problem z wyświetlaczem I2c - Wersja do druku

+- Arduino Polska Forum (https://forum.arduinopolska.pl)
+-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino)
+--- Dział: Piaskownica (https://forum.arduinopolska.pl/dzial-piaskownica)
+--- Wątek: problem z wyświetlaczem I2c (/watek-problem-z-wy%C5%9Bwietlaczem-i2c)



problem z wyświetlaczem I2c - sp5is - 03-01-2023

Witam. Mam problem z wyświetlaniem napisów na wyświetlaczu 16x2 z modułem I2c. Nie zależnie  czy podłącze SDA i SCL pod wyjście cyfrowe czy analogowe to wyświetla mi tylko po jednej literze z wiersza czyli "H" i "L" i nic poza tym. Adres wyświetlacza sprawdzałem i jest 0x3F. Biblioteka wgrana. Co robie żle?



 
Kod:
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x3F,16,2);  // set the LCD address to 0x3F for a 16 chars and 2 line display

void setup() {
  lcd.init();
  lcd.clear();         
  lcd.backlight();      // Make sure backlight is on
 
  // Print a message on both lines of the LCD.
  lcd.setCursor(2,0);   //Set cursor to character 2 on line 0
  lcd.print("Hello world!");
 
  lcd.setCursor(2,1);   //Move cursor to character 2 on line 1
  lcd.print("LCD Tutorial");
}

void loop() {
}



RE: problem z wyświetlaczem I2c - MadMrQ - 03-01-2023

Problem z biblioteką LiquidCrystal.

Możesz bawić się w char array zamiast stringa i wyświetlać znak po znaku albo spróbować zmienić bibliotekę (zobacz, czy ta zadziała: https://github.com/johnrickman/LiquidCrystal_I2C)


RE: problem z wyświetlaczem I2c - sp5is - 03-01-2023

(03-01-2023, 20:47)MadMrQ napisał(a): Problem z biblioteką LiquidCrystal.

Możesz bawić się w char array zamiast stringa i wyświetlać znak po znaku albo spróbować zmienić bibliotekę (zobacz, czy ta zadziała: https://github.com/johnrickman/LiquidCrystal_I2C)
niestety bez zmian, ale zauważyłem że z programu CodeDesigner wyświetla poprawnie ale jak przeniose kod z CodeDesignera do arduinoIDE to znowu tylko pierwsze litery. Czyli z programu CD pasują biblioteki a z AI już nie?


RE: problem z wyświetlaczem I2c - anszun - 03-01-2023

(03-01-2023, 17:16)sp5is napisał(a): Witam. Mam problem z wyświetlaniem napisów na wyświetlaczu 16x2 z modułem I2c. Nie zależnie  czy podłącze SDA i SCL pod wyjście cyfrowe czy analogowe to wyświetla mi tylko po jednej literze z wiersza czyli "H" i "L" i nic poza tym. Adres wyświetlacza sprawdzałem i jest 0x3F. Biblioteka wgrana. Co robie żle?



 
Kod:
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x3F,16,2);  // set the LCD address to 0x3F for a 16 chars and 2 line display

void setup() {
  lcd.init();
  lcd.clear();        
  lcd.backlight();      // Make sure backlight is on
 
  // Print a message on both lines of the LCD.
  lcd.setCursor(2,0);   //Set cursor to character 2 on line 0
  lcd.print("Hello world!");
 
  lcd.setCursor(2,1);   //Move cursor to character 2 on line 1
  lcd.print("LCD Tutorial");
}

void loop() {
}



RE: problem z wyświetlaczem I2c - anszun - 03-01-2023

Cześć spróbuj tego. I oczywiście sciągnij bibliotekę LiquidCrystal_I2C-1.1.2

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

LiquidCrystal_I2C lcd(0x27, 16, 2);  // Ustawienie adresu ukladu na 0x27

void setup()
{
  lcd.begin(16,2);
  lcd.backlight(); // zalaczenie podwietlenia
  lcd.setCursor(0,0);
  lcd.print("LCD & I2C");
  delay(500);
  lcd.setCursor(0,1);
  lcd.print("**********");
}

void loop()
{
   lcd.backlight(); // zalaczenie podswietlenia
   delay(5000);
   lcd.noBacklight(); // wylaczenie podswietlenia
   delay(5000);
}


RE: problem z wyświetlaczem I2c - sp5is - 04-01-2023

żadnej reakcji


RE: problem z wyświetlaczem I2c - kaczakat - 04-01-2023

Nie ma cyfrowych i analogowych pinów I2C, sprzętowy interfejs sprzętowy jest w UNO tylko 1, choć może być wyprowadzony na kilka zestawów pinów, typowo jest tylko na pinach A4 i A5, ale może być też dodatkowy zestaw pinów obok złącza ICSP, albo za pinem 13. To te same piny uC, weź multimetr i sprawdź.
Można użyć I2C programowego na dowolnych pinach, działa znacznie wolniej, ale czasami do testów wystarczy.
Linia I2C musi być podciągnięta do VCC przez rezystory 2-10k. CZASAMI moduły mają takie rezystory, czasami nie, czasami rezystancja wbudowanych jest nieodpowiednia, czasami kable za długie.
Może też być uszkodzone UNO, LCD, kable. Jak się ma jeden zestaw, to ciężko ustalić co, lepiej mieć kilka i w takich wypadkach podmienić, na początek można zacząć od kabli.


RE: problem z wyświetlaczem I2c - sp5is - 04-01-2023

(04-01-2023, 06:01)kaczakat napisał(a): Nie ma cyfrowych i analogowych pinów I2C, sprzętowy interfejs sprzętowy jest w UNO tylko 1, choć może być wyprowadzony na kilka zestawów pinów, typowo jest tylko na pinach A4 i A5, ale może być też dodatkowy zestaw pinów obok złącza ICSP, albo za pinem 13. To te same piny uC, weź multimetr i sprawdź.
Można użyć I2C programowego na dowolnych pinach, działa znacznie wolniej, ale czasami do testów wystarczy.
Linia I2C musi być podciągnięta do VCC przez rezystory 2-10k. CZASAMI moduły mają takie rezystory, czasami nie, czasami rezystancja wbudowanych jest nieodpowiednia, czasami kable za długie.
Może też być uszkodzone UNO, LCD, kable. Jak się ma jeden zestaw, to ciężko ustalić co, lepiej mieć kilka i w takich wypadkach podmienić, na początek można zacząć od kabli.

Wyświetlacz sprawny, z aplkacją codedesigner działa wszystko jak należy.


RE: problem z wyświetlaczem I2c - kaczakat - 04-01-2023

Jeżeli z codedesigner działa, a biblioteka w Arduino IDE nie działa, to znaczy, że nie umiesz użyć przykładu z biblioteki, albo masz więcej bibliotek, mogą być na tyle podobne, że nie wypluwa błędów, ale na tyle różne, że jednak nie działają.
Włącz sobie pełne komunikaty podczas kompilacji i sprawdź, czy do kompilacji jest użyta ta biblioteka, którą chcesz, a jak jest ich więcej to usuń niepotrzebne lub przenieś je poza katalogi Arduino.
Też używam LiquidCrystal_I2C-1.1.2 od Marco Schwartz i działa OK.

Są LCD z nietypowym połączeniem adaptera I2C do LCD, wtedy trzeba użyć biblioteki, w której jest możliwość edycji, który pin jest podłączony do którego pinu LCD.


RE: problem z wyświetlaczem I2c - sp5is - 04-01-2023

(04-01-2023, 18:18)kaczakat napisał(a): Jeżeli z codedesigner działa, a biblioteka w Arduino IDE nie działa, to znaczy, że nie umiesz użyć przykładu z biblioteki,  albo masz więcej bibliotek, mogą być na tyle podobne, że nie wypluwa błędów, ale na tyle różne, że jednak nie działają.
Włącz sobie pełne komunikaty podczas kompilacji i sprawdź, czy do kompilacji jest użyta ta biblioteka, którą chcesz, a jak jest ich więcej to usuń niepotrzebne lub przenieś je poza katalogi Arduino.
Też używam LiquidCrystal_I2C-1.1.2  od Marco Schwartz i działa OK.

Są LCD z nietypowym połączeniem adaptera I2C do LCD, wtedy trzeba użyć biblioteki, w której jest możliwość edycji, który pin jest podłączony do którego pinu LCD.
Dziękuje, to był strzał w dziesiątke. Zadziałało bez problemu z LiquidCrystal I2C 1.1.2  po tym jak inne wyrzuciłem z katalogu.