Arduino i LCD - nie potrafię połączyć

Masz problem, z którym nie możesz sobie poradzić? Pisz śmiało!
ODPOWIEDZ
pasterzppp
Młodszy majsterkowicz
Posty: 8
Rejestracja: 13 lip 2015, 14:49

Arduino i LCD - nie potrafię połączyć

Post autor: pasterzppp » 13 lip 2015, 15:01

Witam mam od roku problem z LCD nie udało mi się go jeszcze ani razu połączyć. Doprowadziło to do tego, że rzuciłem arduino w kąt i rok sobie przeleżało. Mianowicie podłączam wszystko jak należy zgodnie z tutorialami i mimo tego nie wyświetla nic.

Próbowałem w trybie 4 bit zgodnie z tutorialem na stronie bibioteki Liquid Crystal Arduino

Kod: Zaznacz cały

/*
  LiquidCrystal Library - Hello World
 
 Demonstrates the use a 16x2 LCD display.  The LiquidCrystal
 library works with all LCD displays that are compatible with the
 Hitachi HD44780 driver. There are many of them out there, and you
 can usually tell them by the 16-pin interface.
 
 This sketch prints "Hello World!" to the LCD
 and shows the time.
 
  The circuit:
 * LCD RS pin to digital pin 12
 * LCD Enable pin to digital pin 11
 * LCD D4 pin to digital pin 5
 * LCD D5 pin to digital pin 4
 * LCD D6 pin to digital pin 3
 * LCD D7 pin to digital pin 2
 * LCD R/W pin to ground
 * 10K resistor:
 * ends to +5V and ground
 * wiper to LCD VO pin (pin 3)
 
 Library originally added 18 Apr 2008
 by David A. Mellis
 library modified 5 Jul 2009
 by Limor Fried 
 example added 9 Jul 2009
 by Tom Igoe
 modified 22 Nov 2010
 by Tom Igoe
 
 This example code is in the public domain.


 */

// include the library code:
#include <LiquidCrystal.h>

// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
  // set up the LCD's number of columns and rows:
  lcd.begin(16, 2);
  // Print a message to the LCD.
  lcd.print("hello, world!");
}

void loop() {
  // set the cursor to column 0, line 1
  // (note: line 1 is the second row, since counting begins with 0):
  lcd.setCursor(0, 1);
  // print the number of seconds since reset:
  lcd.print(millis()/1000);
}
IMG_20150713_144051.jpg
Jak widać powyżej nie działa, jeszcze wczoraj wyświetlały się przy odpowiednim ustawieniu kontrastu pierwszy rząd pełnych znaków (tzn całe zamalowane).

Więc ostatnio zakupiłem konwerter LCD -> I2C sprawdziłem sheet podłączyłem ładnie pięknie
SCL A5
SOA A4
Wyszukałem adres poprzez i2c scanner, wrzuciłem kod

Kod: Zaznacz cały

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

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

void setup()
{
  lcd.init();                      // initialize the lcd 
 
  // Print a message to the LCD.
  lcd.backlight();
  lcd.print("Hello, world!");
}

void loop()
{
}
i dalej nic
IMG_20150713_141711.jpg
Ma ktoś jakiś pomysł?
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.

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


stiven
Złota rączka
Posty: 1641
Rejestracja: 13 maja 2014, 08:47
Lokalizacja: Zielona Góra

Re: Arduino i LCD - nie potrafię połączyć

Post autor: stiven » 13 lip 2015, 16:45

Jak łączysz przez konwerter I2C, to musisz dać zasilanie na konwerter z arduino, ponieważ musi być wspólna masa, lub po prostu na płytce stykowej połączyć masę arduino z masą tego modułu zasilającego.
I wgraj taki program do testowania(tak żeby coś się zmieniało na wyświetlaczu a nie tylko jednorazowe wyświetlenie napisu):

Kod: Zaznacz cały

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

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

void setup()
{
  lcd.init();                      // initialize the lcd 
 
  // Print a message to the LCD.
  lcd.backlight();
  lcd.print("Hello, world!");
}

void loop()
{
  lcd.setCursor(0, 1);
  lcd.print(millis()/1000);
} 

Artur997
Majsterkowicz
Posty: 101
Rejestracja: 23 paź 2013, 20:22

Re: Arduino i LCD - nie potrafię połączyć

Post autor: Artur997 » 13 lip 2015, 16:48

Pokręć pokrętłem kontrastu.
pasterzppp
Młodszy majsterkowicz
Posty: 8
Rejestracja: 13 lip 2015, 14:49

Re: Arduino i LCD - nie potrafię połączyć

Post autor: pasterzppp » 13 lip 2015, 18:44

Wiem że moduł zasilania może powodować różne rzeczy więc próbowałem też bez niego, dla pewności powtórzyłem teraz na innej płytce zasilając wszystko z Arduino.
Sądzicie, że LCD może być walnięty? Nie działał mi nigdy to eksperymentowałem może coś zepsułem.
Jeżeli to ważne kręciłem potencjometrem we wszystkie strony, przy maksymalnym ustawieniu wyświetla się pełny rząd 1 oraz drugi też pełny ledwo widoczny.
Z trzeciej strony moduł konwertera przyszedł bez goldpinów same dziurki przez które mam przewleczone piny od wyświetlacza a nie mam ani lutownicy, ani umiejętności ani goldpinów. Z drugiej strony przy połączeniu standardowym dalej jest to samo więc to może nie mieć znaczenia.
stiven
Złota rączka
Posty: 1641
Rejestracja: 13 maja 2014, 08:47
Lokalizacja: Zielona Góra

Re: Arduino i LCD - nie potrafię połączyć

Post autor: stiven » 13 lip 2015, 19:01

No jak tak robisz, to nie ma się co dziwić, że może nie działać. Jak nie przylutujesz, to nie będziesz wiedział czy nie łączy, czy inny jest powód. Przylutować też trzeba dobrze, żeby nie było zimnych lutów.

Na forum już były też osoby, którym nie działał wyświetlacz przy normalnym połączeniu, a później się okazywało, że nie było dobrego połączenia w płytce stykowej, że trzeba było mocniej docisnąć goldpiny od wyświetlacza.
pasterzppp
Młodszy majsterkowicz
Posty: 8
Rejestracja: 13 lip 2015, 14:49

Re: Arduino i LCD - nie potrafię połączyć

Post autor: pasterzppp » 13 lip 2015, 19:09

Tu się z Tobą zgodzę. Ale przy połączeniu 4 bit też nie działa a powinno :-(
pasterzppp
Młodszy majsterkowicz
Posty: 8
Rejestracja: 13 lip 2015, 14:49

Re: Arduino i LCD - nie potrafię połączyć

Post autor: pasterzppp » 13 lip 2015, 19:52

@Krapi
Oczywiście nic nie wyszło. 4 bit czyli standardowe połącznie nie działa w żaden sposób kombinując.
pasterzppp
Młodszy majsterkowicz
Posty: 8
Rejestracja: 13 lip 2015, 14:49

Re: Arduino i LCD - nie potrafię połączyć

Post autor: pasterzppp » 17 lip 2015, 15:42

Więc tak piszę z rzeczywistości
KOD:

Kod: Zaznacz cały

/*
  LiquidCrystal Library - Hello World
 
 Demonstrates the use a 16x2 LCD display.  The LiquidCrystal
 library works with all LCD displays that are compatible with the 
 Hitachi HD44780 driver. There are many of them out there, and you
 can usually tell them by the 16-pin interface.
 
 This sketch prints "Hello World!" to the LCD
 and shows the time.
 
  The circuit:
 * LCD RS pin to digital pin 12
 * LCD Enable pin to digital pin 11
 * LCD D4 pin to digital pin 5
 * LCD D5 pin to digital pin 4
 * LCD D6 pin to digital pin 3
 * LCD D7 pin to digital pin 2
 * LCD R/W pin to ground
 * 10K resistor:
 * ends to +5V and ground
 * wiper to LCD VO pin (pin 3)
 
 Library originally added 18 Apr 2008
 by David A. Mellis
 library modified 5 Jul 2009
 by Limor Fried 
 example added 9 Jul 2009
 by Tom Igoe
 modified 22 Nov 2010
 by Tom Igoe
 
 This example code is in the public domain.

 */

// include the library code:
#include <LiquidCrystal.h>

// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
  // set up the LCD's number of columns and rows: 
  lcd.begin(16, 2);
  // Print a message to the LCD.
  lcd.print("hello, world!");
}

void loop() {
  // set the cursor to column 0, line 1
  // (note: line 1 is the second row, since counting begins with 0):
  lcd.setCursor(0, 1);
  // print the number of seconds since reset:
  lcd.print(millis()/1000);
}
Piszę z rzeczywistości

VSS = masa
VDD = napięcie
VO = nóżka od potencjometru pozostałe dwie jedna napięcie druga masa
RS = pin 12
RW = nic
E = pin 11
D0,D1,D2,D3 = nic
D4 = pin 5
D5 = pin 4
D6 = pin 3
D7 = pin 2
A = przez rezystor 1k do napięcia
K = do masy

Każdy kabel przed podpięciem sprawdzony multimetrem.
Każdy styk na arduino sprawdzony ustawiłem sygnał HIGH i świeci.
Całość jest zasilona z arduino bez żadnych płytek zasilających.
LCD dociśnięte do płytki wchodzi gładko płytka dobrej jakości nigdy problemów nie robiła.
Efekt jak na zdjęciu:
IMG_20150717_152555.jpg
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
2d3d
Młodszy majsterkowicz
Posty: 15
Rejestracja: 7 maja 2015, 21:29

Re: Arduino i LCD - nie potrafię połączyć

Post autor: 2d3d » 22 lip 2015, 09:19

Witaj

RW = nic? a R/W dla czego nie podpięte? ma być do masy nóżka 5 wyświetlacza * LCD R/W pin to ground

i pokręć potencjometrem
życzę miłej zabawy
Wojciech
pasterzppp
Młodszy majsterkowicz
Posty: 8
Rejestracja: 13 lip 2015, 14:49

Re: Arduino i LCD - nie potrafię połączyć

Post autor: pasterzppp » 23 lip 2015, 20:17

Podłączyłem ten R/W do GND i działa. Nie wiem czemu tym razem o tym zapomniałem. Cóż dlaczego mi to wcześniej nie działało to chyba pozostanie tajemnicą dla mnie.

Teraz wziąłem się za ten konwerter I2C. Zamówiłem gniazda i polutowałem.
Nie wiem teraz czy nie narobiłem zimnych lutów. Przewlekłem gniazda przez dziurki. Przytykałem lutownicę transformatorową do drucika z gniazd a z drugiej strony drucika cynę. Teraz sprawdziłem sobie multimetrem, włożyłem piny wyświetlacza do nowych gniazd i do mojego autorskiego lutu oraz z drugiej strony do lutu na wyświetlaczu. Zawsze piszczało. Oznacza to że jest ok lut?

// już wszystko działa, wystarczyło przy tym konwerterze użyć poradnika z internetu a nie na głupa zainstalować bibioteke od sprzedawcy i odpalić hello world. Temat do zamknięcia.
ODPOWIEDZ

Strony partnerskie: