libreriei2c

ciao a tutti questo è il mio primo post.
visto che so fare poco con arduino chiedo aiuto :slight_smile:
mi sono messo a costruire questo: Arduino based USB Pendant for Linuxcnc - LinuxCNC
il problema è che usa la libreria liquidcrystal per mcp23008... mi sono accorto tardi che io avevo il pcf8574a che vuole la libreria liquidcrystal_i2c.
compilando gli esempi della libreria i2c il display va perfettamente all'indirizzo 0x38, ma con il suo programma non da segni di vita..
saranno diverse come librerie sarà quello ?
saluti

non cambia solo l'indirizzo ma anche i comandi... tu cosa hai cambiato?

ho usato la libreria liquidcrystal_i2c al posto di liquidcrystal dal sito adafruit..
tutte e due sono per i2c ma avranno nomi diversi al loro interno ?

cioè hai cambiato solo l’include e il nome della librera?
mica ho capito troppo bene sai?

Lesto ti sta dicendo che non basta cambiare l'indirizzo del dispositivo perché la lib possa funzionare. Devi verificare che i comandi che impartisci al PCF8574 siano compatibili con quelli che usa il 23008. Per spiegarsi, non basta parlare ad una persona per farsi capire, bisogna parlare la stessa lingua. Tu probabilmente ora stai parlando in russo ad un chip che capisce il cinese :wink:

mha, io credo che abbia anche cambiato la libreria e di fortuna le funzioni della livbreria hannolo stesso nome e quindi compila... ma nessuno ci assicura che possano essere chiamate nello stesso ordine, in particolare la parte di inizializzazione può essere molto differente.

:slight_smile:
allora libreria liquidcrystal per mcp23008
liquidcrystal_i2c pcf85074a
siccome il mio chip è il pcf8674a ho usato la seconda e funziona bene con gli esempi...
ma il programma era scritto per usare la prima :frowning:
non saranno compatibili i comandi ?
grazie per l'interessamento

billykid:
non saranno compatibili i comandi ?

Se c'è una versione della lib specificatamente scritta per il 23008 non hai problemi. Altrimenti devi prendere il datasheet di entrambi i chip, vedere cosa cambia, ed adattare la lib.

probabilmente no, non basta sostistuire una con l'altra, ma cambiare i nomi delle funzioni e i sistemi di inizializzazioni.

grazie ! mi sa che faccio prima a comprare un mcp23008 e usare la libreria che hanno messo..
ciaoo

guarda, in realtà anche per quei chip esistono delle libreria già fatte, devi sercare i modelli più usati con ardiuno :slight_smile:

cerca cheap wireless arudino e troverai molte info

e' come il discorso della libreria menwiz, per usarla devi usare la libreria sua integrata, se usi un display non compatibile con quella libreria non funziona

penso che quella usata da loro ha le solite funzioni ma magari nomi diversi non va..

non e' questione solo di nomi, ma proprio tecnicamente come va a pilotare il display.
se leggi il datasheet di un display, uno qualunque, ti rendi conto del casino per pilotarli. Ogni chip decide quali comandi esadecimali usare per fare una certa cosa, e questo e' tutto nascosto sotto la lbreria

ma se spieghi bene il lavoro fatto, magari il codice originale e quello modificato, magari riusciamo a capire cosa hai sbagliato

un momento... il display va bene è standard solo che viene serializzato con un chip i2c.
certo anche lui va programmato con la sua libreria ma con gli esempi funziona alla grande
se avete tempo date un'occhiata al link che ho messo all'inizio.
grazie della pazienza :slight_smile:

si, ok, ma la richiesta e' un'altra.
Potresti farci vedere come hai modificato lo sketch ?

ho sostituito il nome della libreria con quella che ho usato e la riga di inizializzazione...
troppo poco ?

si, manca l'inizializzazione

LiquidCrystal_I2C lcd(0x38,20,4);

questa
Commenta quelle due righe e aggiungi queste

void setup() 
{
 // lcd.begin(20, 4);
 // lcd.setBacklight(HIGH);
 
  lcd.init();
  lcd.backlight();

adesso magari veine fuiori che l'ha già fatto.. e dopo 20 post saremmo ancora punto a capo..

e posta 'sto codice! :grin: