Come da titolo, vorrei poter visualizzare l'output seriale di TinyBasicPlus (versione Github di BlueLlama) su un display lcd i2c 20x4 caratteri.
Per fare ciò, ho inizializzato il display ed ho cercato le serial.print che, in teoria, dovrebbero essere gli output per poi cambiarli in lcd.print... ma, a quanto pare, questo non è il percorso giusto da intraprendere.
Ho cercato qui sul forum se qualcuno aveva già provato a usare lo stesso display per fare qualcosa di analogo, ma non ho trovato quello di cui ho bisogno.
Se qualcuno ha qualche dritta, spero possa aiutarmi.
Grazie.
Se guardi bene ciò che quell'interprete prevede, vedi che non si parla di display, tantomeno di display su I2C.
Ovviamnete NON puoi semplicemente cambiare nell'interprete un Serial.print() con un lcd.print() dato che non sono incluse le dovute librerie per usare il LCD su I2C, non viene fatta l'inizializzazione della libreria wire, non viene fatta l'inizializzazione della libreria lcd su I2C, ecc. ecc.
Quindi ... ho consoci bene l'ambiente Aruino e sai modificare il codice dell'interprete per fare tutto quanto suddetto o ... difficilmente potrai usare un display LCD (I2C o meno).
Guglielmo
Grazie mille per la celere risposta e per la delucidazione. Purtroppo, da come si evince dai miei post precedenti, sono ignorante in materia e ogni tanto me ne esco con qualche sparata.
A questo punto, nelle varie ricerche che ho fatto in rete, ho visto che potrei usare un'altra scheda arduino, usata come slave, che prende i dati seriali dalla scheda Master e stampa il testo su display.
Ho scritto questo codice che mi visualizza, anche se in maniera un po incasinata, il messaggio iniziale di TinyBasicPlus...
// Include la libreria LiquidCrystal_I2C per controllare l'LCD
#include <LiquidCrystal_I2C.h>
// Crea un oggetto LCD con l'indirizzo I2C 0x27 e le dimensioni 16x2
LiquidCrystal_I2C lcd(0x27, 20, 4);
// Definisci i pin della porta seriale
#define RX_PIN 0
#define TX_PIN 1
// Inizializza la velocità della porta seriale in baud
#define BAUD_RATE 9600
void setup() {
// Inizializza l'LCD e accendi la retroilluminazione
lcd.init();
lcd.backlight();
// Inizializza la porta seriale con la velocità impostata
Serial.begin(BAUD_RATE);
}
void loop() {
// Se ci sono dati disponibili sulla porta seriale
if (Serial.available() > 0) {
// Leggi il primo byte dei dati
byte data = Serial.read();
// Scrivi il byte sull'LCD nella posizione corrente del cursore
lcd.write(data);
}
}
Purtroppo, però, il testo non si aggiorna quando scrivo sulla seriale.
Ma non puoi investire un po' di tempo ed energie nell'approfondire il C/C++ così da lasciar perdere 'ste soluzioni folcloristiche che secondo me lasciano il tempo che trovano?
In rete si trovano terabyte e terabyte di materiale didattico, spesso anche gratuito e ben fatto, a partire da quello che viene spesso linkato qui nel forum...
Grazie mille a tutti, ma ho appena trovato ciò che cercavo. Anche se non fa uso di un display lcd.