» »

priklop lcd preko i2c

priklop lcd preko i2c

cefizl88 ::

Pozdravljeni
Imam i2c plošćico za lcd zaslon, povezal sem jo na pine Analog5, Analog4, maso ter napajanje. Dodal sem knjižnico include LiquidCrystal_I2C.h

Vendar mi prevajalnik javi 2 napaki:
\Documents\Arduino\libraries\LiquidCrystal_I2C/LiquidCrystal_I2C.h:81: error: conflicting return type specified for 'virtual void LiquidCrystal_I2C::write(uint8_t)'

\hardware\arduino\cores\arduino/Print.h:48: error: overriding 'virtual size_t Print::write(uint8_t)'

Mogoče kdo ve kaj je narobe?

M@73Y ::

Pomoči boš deležen ko boš napisal vsaj na kateri vrsti arduinota delaš, kater je tip zaslona in malo več podatkov.
..jump into psytrance tunnel..

cefizl88 ::

pardon, arduino uno, 16x4 Lcd zaslon na katerega sem zalotal vmesnik i2c.

problem je v tem, ker sem dol potegnil knjižnico za LiquidCrystal_I2C.h, in imam pod examples 3 nove primere. (hello word preko i2c, pa še 2)
No ko odprem kerega koli od teh novih primerov mi ga ne scompila. Napiše napaki kateri sta v prvem postu.

Zgodovina sprememb…

  • spremenil: cefizl88 ()

techfreak :) ::

Knjižnica Print definitira metodo write ki sprejme uint8_t in vrne size_t.
virtual size_t Print::write(uint8_t)


Knjižnica LiquidCrystal I2C pa prepiše metodo, vendar vrača void.

Torej ali boš priredil to knjižnico, ali pa downloadal pravo knjižnico za pravo verzijo Arduinota.

M@73Y ::

Živjo,

torej spodnja zadeva men deluje brez problema. Sem ti, večinoma povsod da komentarje, tako da boš vedel zakaj se gre.
Aja, pa za 16x4 se ne uporablja i2c, ampak navadna LiquidCrystal.h knjižnica. i2c se uporablja za grafične lcd-je kot je pcd8544.

#include <LiquidCrystal.h>

// lcd(RS, R/W, E enable, d0, d1, d2, d3, d4, d5, d6, d7);
LiquidCrystal lcd(22,23,24,25,26,27,28,29,30,31);
 //torej jaz imam priklopljennih vseh osem bitov, zato je od d0 do d7
 // torej v LiquidCrystal lcd(.... napišeš po vrsti vhode kamor si priklopil pine iz lcd-ja
 //po vrsti, tako kot je navedeno zgoraj. začneš z RS, nato R/W, enable, d0 ....
 //mislim, da za 16x4 moraš iemti vseh osem d0 do d7 priključenih, nisem pa siguren, ker 
 //jaz uporabljam truly msc-c164dyly 16x4 modul
 
 
void setup() {
  lcd.begin(16, 4); //uporabiš 16x4 lcd
}

void loop() {
  
   lcd.setCursor(0, 0);          //začneš v prvi vrstici prvi segment
   lcd.print("hello, world_0");
   lcd.setCursor(0, 1);
   lcd.print("hello, world_1");
   lcd.setCursor(-4, 2);          //tretja in četrta vrstica ima drugačno kodiranje 
   lcd.print("hello, world_2");  //zato moraš dati -4 za pozicijo za tretjo in
   lcd.setCursor(-4, 3);          // čertro vrstico
   lcd.print("hello, world_3");  // recimo -3,3 ti bo začel pisat v drugi segment v tretji vrstici
   
}
..jump into psytrance tunnel..

Zgodovina sprememb…

  • spremenil: M@73Y ()

cefizl88 ::

hm zaj pa je hudič. Zakaj pa ne morem uporabiti i2c pr temu? Moj namen je da bi zminimaliziral št žičk kere rabim za priklop na arduina, saj nebo samo LCD gor prikoplen. pa ziher gre, že 2 dni googlam za rešitev.
Navadno LiquidCrystal.h poznam, sem že delal na dvovrstičnem LCD-ju.
Hvala za pomoč.

techfreak :) ::

Kje si dobil liquidcrystal knjiznico ter katero verzijo Arduino programa imas?

pure00 ::

Klik

Klik

Klik


Sporoči, če to dela. Čez nekaj dni se bom tudi sam lotil delat z arduinotom.

Če kdo rabi "knjiznico" za stm32f4 naj sporoči. Pred nekaj dnevi sem jo spackal skupaj za lcd(4x20), ki ima i2c.
...

M@73Y ::

Uf, tole je pa zanimiva zadeva. Sem pa jaz malo outdate-an. Izgleda da res obstaja krmiljenje z i2c. Čip PCF8574 stane v HTE 5 eur. Upam, da ti uspe, glede na linke od @pure00 je zadeva res OK.
..jump into psytrance tunnel..

cefizl88 ::

tu meni nič ne dela od zgornjih linkov, sedaj sem uredil. Vendar prevede mi, ko hočem naložit pa mi ne izpiše niti črke.

library je tu:
http://www.dfrobot.com/wiki/index.php?t...

techfreak :) ::

Kakšen LCD imaš? Podpira I2C? Kakšno ploščico imaš? (link prosim)

cefizl88 ::

http://www.ebay.com/itm/310565362720?ss...
http://www.ebay.com/itm/171067197329?ss...

to dvoje imam. Sedaj mislim da vem kaj ne paše lcdju. i2c je 16x2. Je to to?

pure00 ::

Si pogledal kako so pini povezani? Pri meni je tako: P0 -> RS, P1 -> RW, P2 -> E, P3 -> Backlight, P4 -> DB4, P5 -> DB5, P6 -> DB6, P7 -> DB7. P4, P5, P6, P7 so podatkovni pini(za 4 bitni mode). Obstaja namreč več teh I2C modulov za display in nekateri imajo drugače povezane te pine( jaz sem ugotovu povezave z multimetrom).

Uglavnem meni na STM32F4 deluje normalno 4x20 preko I2C. Knjiznico sem pa sam napisal.
...

Zgodovina sprememb…

  • spremenil: pure00 ()

pure00 ::

Tole knjiznico, ki je objavljena tukaj sem danes probal na arduino uno in deluje brez problema. Lcd je 20x4 preko I2C.
...

cefizl88 ::

hvala. deluje:)


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Kdo se spozna na ESP8266 in Arduino?

Oddelek: Pomoč in nasveti
181765 (1343) chiiiii
»

ESP8266 ESP-12E (NodeMCU 1.0)

Oddelek: Elektrotehnika in elektronika
453018 (1863) dc10
»

Arduino(slave) + ESP8266(master) preko I2Cja

Oddelek: Elektrotehnika in elektronika
10830 (683) teoo
»

Arduino Uno - kako do več GPIO

Oddelek: Elektrotehnika in elektronika
151925 (1503) DOOM_er
»

arduino mega & stuff

Oddelek: Elektrotehnika in elektronika
5874 (713) cefizl88

Več podobnih tem