Salve a tutti,
sono alle primissime armi con Arduino e già mi sono bloccato...
Da oggi mi sono cimentato a fare qualche esperimento semplicissimo con il mio Arduino Uno, ho iniziato con il classico led e ho continuato con un sensore di temperatura LM35... fin qui tutto bene anche grazie all'ampia documentazione disponibile e agli esempi che si trovano in giro anche su YouTube.
Avendo a disposizione anche un display LCD LCM1602C...
mi sono detto: adesso provo a far visualizzare la temperatura sul display... e quì mi sono bloccato.
Infatti ho scoperto che LCD in questione ha saldato sul retro un modulo I2C...
mentre tutti gli esempi che ho finora visto in rete sono fatti con il collegamento diretto dai pin dell'LCD ad Arduino.
Come posso fare a visualizzare la temperatura sull'LCD?
Ho visto nella documentazione dell'Arduino Uno che le porte analogiche A0 e A1 corrispondono in utilizzo WTI/I2C a SCL e SDA e che quindi potrei collegarle ai rispettivi pin dell'LCD oltre alla tensione (è a 5v?) e alla GND.
Ma la programmazione???
I pin per gestire l'I2C sono A4/A5, non A0/A1. Il tuo display è un comune display parallelo a cui hanno saldato un circuitino con un micro per poterlo gestire via I2C (spesso anche seriale). Prova a cercare il suo protocollo di comunicazione sulla rete: si tratterà di spedire un comando ed i dati relativi, più semplice da gestire rispetto ad un display parallelo.
Si, hai ragione, ho fatto un po' di confusione, i pin corretti sono A4 e A5.
Ho trovato qualcosina qui riguardo al protocollo... Wire - Arduino Reference
Per me, che sono ai primi passi, è troppo complicato... avrei bisogno di un maggiore aiuto nel definire lo script... in modo tale da visualizzare i dati della temperatra del sensore LM35 sul display.
Per esempio ignoro qual'è il suo default address...
zuzzurro:
Per esempio ignoro qual'è il suo default address...
Il problema non è l'address, che si trova facilmente con un programma di scansione indirizzi I2C, è il protocollo di comunicazione usato dal modulo I2C, se non lo conosci non puoi dialogare col display.
Devi trovare il datasheet del modulo dove sarà indicato anche il set di comandi accettato e il relativo protocollo.
edit: Trovato in 10 secondi con la ricerca per immagini di google, il tutto è commercialito da DFROBOT, sulla pagina del prodotto trovi anche la libreria per Arduino, specificano che non è compatibile con l'IDE 1.0.
ok, dopo un po' di ricerca ho trovato... sul sito DFROBOT... la libreria appositamente corretta per funzionare con ARduino Uno http://www.dfrobot.com/index.php?route=product/product&product_id=135
e ho realizzato il mio semplicissimo sketch per visualizzare la temperatura del LM35:
//Compatible with the Arduino IDE 1.0
// LiquidCrystal_I2C Library version:1.1
#include <Wire.h> #include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2); // set the LCD address to 0x27 for a 16 chars and 2 line display