Arduino kijelző miért nem működik?
I2C-vel van egy 16x2-es Display. Kiderítettem, hogy 0x27-es.
Amint bekötöttem, elkezdett világítani a háttérvilágítás. De ha egy nagyon egyszerű programot le akarok futtatni rajta, akkor minden elsötétül. Próbáltam a kontrasztot is változtatni rajta, úgy sem sikerült. A háttérvilágítást is csak úgy lehetett újra látni, ha egy olyan programot futtattam rajta, aminek semmi köze a kijelzőhöz és előtte újra be kellett dugni a Usb-t
Ezt az egyszerű programot próbáltam futtatni:
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
void setup()
{
lcd.init();
lcd.backlight();
lcd.print("Miert nem mukodsz...");
}
void loop()
{}
#1 .. hát az kefének hangzik, de nem hiszem, hogy az lenne a probléma, mert a backlight anélkul elég erosen világít /most lehet, hogy nagy hulyeséget írtam, nem nagyon értek hozzá/
#2 .. Letoltottem, anélkul el sem tudtam volna indítani a programot. Csak az a fura,hogy tobbet kipróbáltam és egyikkel sem mukodik az lcd.begin(), csak az lcd.init(), pedig a headerben definiálva volt a begin is
Két dolog lehet:
1. Valóban kevés a nafta az LCD meghajtásához, de ez a kevésbé valószinű.
2. Úgy vezérled meg az LDC kontrollerét (szándékodon kívül), hogy az hanyattveri magát tőle. Tehát, rosszul. Ez valószinűbb.
Azonosítsd be a kijelzőt, ha kér speckó include file-t akkor azt használd. Először egy karakter kiiratásával elégedj meg.
Ha i2c-t használsz, akkor a program elején fel kell konfigolni a vezérlőt.
Itt szépen levezetik, mit hogyan: [link]
Meg esetleg itt van, amit az én kijelzőmhöz használok, egy nap volt, mire meglett a megfelelő pin kiosztás, hátha jó
#define I2C_ADDR 0x3F
#define BACKLIGHT_PIN 3
#define En_pin 2
#define Rw_pin 1
#define Rs_pin 0
#define D4_pin 4
#define D5_pin 5
#define D6_pin 6
#define D7_pin 7
Erre az oldalra én is rátaláltam, csak sajnos nem értem, hogyha az I2C-n 4 pin van, akkor miért van szükség további pinekre:
#define En_pin 2
#define Rw_pin 1
#define Rs_pin 0
#define D4_pin 4
#define D5_pin 5
#define D6_pin 6
#define D7_pin 7
és hogy ezeket hova kell bekötni?
Ráadásul nekem szinte az osszes pin már használatban van gombokra, ledekre
Valami félreérés lesz a dologban. Így kell, hogy kinézzen a konstrukció: [link]
A fekete panel az I2C-s LCD vezérlő, ami 4 pinnel csatlakozik az arduino-ra:
VCC - 5V
GND - GND
SDA - A4
SCL - A5
A jobboldaliak az arduino pinjei, fontos hogy így legyen bekötve.
A másik 16 pin a vezérlőn meg az LCD panelt vezérli, és azok működését kell a program elején definiálni, valahogy így:
#include <Wire.h>
#include <LCD.h>
#include <LiquidCrystal_I2C.h>
#define I2C_ADDR 0x3F // LCD panel címe
#define BACKLIGHT_PIN 3
#define En_pin 2
#define Rw_pin 1
#define Rs_pin 0
#define D4_pin 4
#define D5_pin 5
#define D6_pin 6
#define D7_pin 7
LiquidCrystal_I2C lcd(I2C_ADDR,En_pin,Rw_pin,Rs_pin,D4_pin,D5_pin,D6_pin,D7_pin);
void setup()
{
lcd.begin (16,2); // initialize the lcd
// Switch on the backlight
lcd.setBacklightPin(BACKLIGHT_PIN,POSITIVE);
lcd.setBacklight(HIGH);
}
Tehát meg kell hívni a LiquidCrystal_I2C.h-t (ez egy custom fejlesztésű fájl, külön le kell tölteni és bemásolni az arduino/libraries mappába) és az lcd(...) paranccsal meg beállítani a I2C vezérlőnek a működését.
Tök ugyanazt a programot elindítottam (address megváltoztatásával), de sajnos így sem jelent meg egy karakter sem, csak ki-be kapcsolt x másodpercenként a háttércilágítás (ahogy a loopban meg volt adva) :/
De azért köszönöm a választ :)
Ezzel én is ráfáztam. A jelenség ugyanaz volt.
A modult többen is hamisítják, ami nem baj, mert remekül mennek azok is DE !
össze vannak keverve az i2c kimeneti pontjai (amik a kijelzőre mennek), okozott némi fejtörést. A háttérvilágítást is mindig vissza kellett kapcsolnom, mert minden új kiiratásnál levette
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!