Arduino nano Pcf8574p + displaytech 164A NON FUNZIONA

Buonasera a tutti

premetto che prima di inserire questo post ho ricercato e provato tutte le soluzioni di questo sito provando, aimè in vano numerose librerie e diverse IDE ma non sono riuscito a far funzionare il suddetto Lcd.
Riassumendo:
-l' Lcd displaytech 164A (surplus) è stato provato in configurazione 4bit con l' ultima libreria Liquidcrystal della IDE 1.6.7 garantendo il suo funzionamento.
-ho realizzato il circuito proposto a questo indirizzo


-provato varie librerie (newliquidcrystal, PCF8574_HD44780_I2C, ....) e caricate utilizzando la suddetta IDE, la 1.6.5 e la 1.0.6
niente di ,tutto vano, con un "helloworld" il dysplay visualizza solo la 1° e 3° riga con tutti i caratteri neri ( due righe nere), a volte a seconda dello sketch alcuni caratteri completamente neri che si spostano sul display.

  • ho agito ovviamente più volte sul trimmer del contrasto ed ho anche provato a cambiare l' indirizzamento del pcf8574p senza nessun risultato positivo.
    -controllato e ricontrollato tutti i collegamenti arrivando a rifare il circuito su diversa breadboard
    -ho anche provato a cambiare il dysplay con un 16x2

chiedo se qualcuno di voi ha avuto lo stesso problema e se ha poi risolto.

allego l' ultimo sketch provato con le librerire PCF8574_HD44780_I2C

#include <Wire.h>
#include <PCF8574_HD44780_I2C.h>

// Address 0x27, 16 chars, 4 line display
PCF8574_HD44780_I2C lcd(0x27,16,4);

void setup()
{
lcd.init(); // LCD Initialization
lcd.backlight(); // Backlight ON
lcd.clear(); // Clear the display

lcd.setCursor(0,0); // Set the cursor to col 0, row 0
lcd.print("Hello"); // Print the first word
lcd.setCursor(0,1); // Set the cursor to col 0, row 1
lcd.print("World!"); // Print the second word
}

void loop()
{
}

P.s. sto lavorando ad un progetto per il controllo automatico del PH di una piscina e mi servono molti in/out digitali liberi.

ringrazio anticipatamente tutti coloro volessero aiutarmi

Se il display in oggetto funziona in modalità 4 bit, mentre sia lui che un lcd 16x2 attraverso I2C e il chip PCF da problemi allora mi sa che hai sbagliato qualcosa nei collegamenti tra PCF e display o Arduino.
Posta una foto chiara dei collegamenti.

Il tuo è un problema di piedinatura tra il PCF8574 e l' LCD, dato che non c'e' uno standard e si risolve, o cambiando libreria o assegnando i pin usati ( se la libreria li accetta ).
Prima di tutto verifica che indirizzo hai assegnato al PCF8574 usando I2cScanner ( dovrebbe essere 0x20 se lo hai montato come da schema )
Poi, o usi la libreria fornita con codesto schema Questa che trovi a questa pagina ( rimuovendo altre con lo stesso nome ), oppure usi una libreria come ad esempio questa che Qui spiega, assegnando la piedinatura usata
Nel tuo caso dovrebbe essere

//                    addr, en,rw,rs,d4,d5,d6,d7,bl,blpol
LiquidCrystal_I2C lcd(0x20, 4, 5, 6, 0, 1, 2, 3, 7, NEGATIVE);  // Set the LCD I2C address

la libreria "PCF8574_HD44780_I2C", dovrebbe funzionare con un collegamento come il seguente

Intanto vi ringrazio per la risposta.

usando I2cScanner l' indirizzo risulta 0x20 come ha detto Brunello

Sinceramente mi era sorto qualche dubbio riguardo al fatto della connessione tra lcd e pcf ma non ero in grado di determinare come si cambiasse la configurazione dei pin in uscita dal Pcf.

stasera appena rientro vaccio le varie prove indicate da Brunello, ed eventualmente vi posto le foto.

Brunello, era intuibile fossero i collegamenti. Ma possibile che qualcosa riusciva a vedere lo stesso anche se l'indirizzo I2C era errato ? :o Magari solo segnali "a caso" ?

Eureca funziona!!! vi ringrazio moltissimo.

nid69ita, mi sono accorto ora che in realtà avevo postato lo sketch che avevo utilizzato cambiando indirizzo portando gli ingressi tutti a livello logico alto. (0x27) comunque tutto stava proprio nella configurazione dei pin. e non avendo inizialmente capito come potessero essere configurati, non ho toccato.

di nuovo vi ringrazio. Non mancherò di farvi vedere il progetto finito. un po complesso ma sicuramente funzionale.

ciao

:grin: :grin: :grin: :wink: :wink: