• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Problem z LiquidCrystal I2C + TM1637
#1
Witam.

Posiadam ekran LCD 16x2 I2C LCM1602 (PCF8574T) z biblioteką LiquidCrystal_I2C oraz mały wyświetlacz Grove 7 segmentowy 4 digit z oficjalną biblioteką Grove na płytce Arduino Leonardo Atmega32u4 (wszystko zostało zakupione u "oficjalnego" dystrybutora arduino, więc to nie klon).

Problem polega na tym, że wyświetlacz Grove nie działa razem z ekranem LCD.
Samo Arduino jest dodatkowo zasilane przez złącze DC.

Jeżeli wykonuje kod w np. ten sposób:


Kod:
#include "TM1637.h"
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
TM1637 tm1637(2, 4);

void setup() {
  tm1637.init();
  tm1637.set(5);
  tm1637.display(0, 1);
  tm1637.display(1, 2);
  tm1637.display(2, 3);
  tm1637.display(3, 4);
 
  lcd.init();
  lcd.backlight();
  lcd.print("Ladowanie..");

}

void loop() {

tm1637.clearDisplay();

  tm1637.display(0, 0);
}

Grove pokaże 1 2 3 4, ekran LCD się załaduje z zawartością, natomiast jeżeli spróbuję w loop() dodać jakiekolwiek funkcje dotyczące Grove po prostu nic nie wyświetli.

Jeżeli zrobię w ten sposób:

Kod:
#include "TM1637.h"
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
TM1637 tm1637(2, 4);

void setup() {
  lcd.init();
  lcd.backlight();
  lcd.print("Ladowanie..");

  tm1637.init();
  tm1637.set(5);
  tm1637.display(0, 1);
  tm1637.display(1, 2);
  tm1637.display(2, 3);
  tm1637.display(3, 4);

}

void loop() {
 
}

Grove kompletnie nie da znaku życia.

Wygląda jakby biblioteka LiquidCrystal_I2C w jakiś sposób kolidowała z TM1637. Jeżeli w kodzie nie mam nic dotyczącego LiquidCrystal wtedy Grove działa poprawnie bez żadnych problemów. Dodam, że w Grove usunąłem dwa rezystory (tak jak było wskazane w wielu poradnikach) C3 oraz C4.

Proszę o pomoc, ponieważ przejrzałem już chyba cały internet i nadal nie mogę znaleźć rozwiązania.
 
Odpowiedź
#2
C3 i C4 to raczej nie rezystory, a same rezystory powinny być. To nie jest może I2C, ale podobny protokół i linie powinny być podciągnięte do VCC Kondensatory faktycznie by zakłócały działanie.
W Leonardo piny 2 i 3 to piny I2C, więc użyj innych i sprawdź (w sensie konkretnie pin 2 robi Ci konflikt).
Miło być decenianym https://buycoffee.to/kaczakat
 
Odpowiedź
#3
(17-01-2021, 22:44)kaczakat napisał(a): C3 i C4 to raczej nie rezystory, a same rezystory powinny być. To nie jest może I2C, ale podobny protokół i linie powinny być podciągnięte do VCC Kondensatory faktycznie by zakłócały działanie.
W Leonardo piny 2 i 3 to piny I2C, więc użyj innych i sprawdź (w sensie konkretnie pin 2 robi Ci konflikt).

No tak, zapomniałem na śmierć o dodatkowych wyprowadzeniach dla I2C. Problem rozwiązany, dziękuje za pomoc.
 
Odpowiedź
#4
użyj innej biblioteki : https://github.com/avishorp/TM1637
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości