Da seriale a display lcd parallelo

Buongiorno a tutti,
sto iniziando a muovere i miei primi passi nel mondo della prototipazione con Arduino.

L'obiettivo finale è poter automatizzare alcuni dei test che vengono eseguiti nell'azienda dove lavoro, ma sono veramente acerbo di programmazione.

Ho provato a fare tutto quello che dovrei fare tramite WOWKI, e lì sembra funzionare tutto ok, ma ovviamente tra la simulazione e il reale ci passa il mondo.

Prima di far acquistare tutto quello che potrebbe servirmi, mi sto arrangiando con il materiale dello starter kit e devo far scrivere a display dei dati che vengono spediti in seriale, questo perché devo lasciare lo spazio libero sulla scheda dove ho caricato lo sketch "base" e il display l'ho collegato su una seconda scheda.

Ho trovato l'esempio di Adafruit, ma vedo a display dei caratteri spuri quando termino con "serial.println". Come posso fare ad eliminare questo dato e far apparire alcuni caratteri sulla seconda linea del display?

Ps: uso due R3 compatibili

Grazie peril supporto e scusate il papiro.

È più complicato da spiegare di quello che si può pensare

La sporcizia che vedi sul display rappresenta i due caratteri di fine riga e ritorno a capo (cerca codice ASCII di CR e LN, che cominci ad impratichirti col problema)

Il println fa esattamente questo: aggiunge i due codici dei due caratteri in questione

Che per convenzione stampanti, telescriventi e monitor usano appunto come fine riga e ritorno a capo

Sul display LCD la cosa non la puoi gestire direttamente

Devi ripensare all'intera gestione del display

Se spieghi cosa vorresti stampare e come lo fai adesso ci do uno sguardo

Grazie Salvorhardin.

In questo momento semplicemente voglio scrivere sul display lo stato di due ingressi digitali, due uscite digitali e un ingresso analogico.

uso questo sketch che ho trovato già preconfezionato:


// include the library code:
#include <LiquidCrystal.h>

// initialize the library by associating any needed LCD interface pin
// with the Arduino pin number it is connected to
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

void setup() {
  // set up the LCD's number of columns and rows:
  lcd.begin(16, 2);
  // initialize the serial communications:
  Serial.begin(9600);
}

void loop() {
  // when characters arrive over the serial port...
  if (Serial.available()) {
    // wait a bit for the entire message to arrive
    delay(100);
    // clear the screen
    lcd.clear();
    Serial.print(Serial.read());
    // read all the available characters
    while (Serial.available() > 0) {
      // display each character to the LCD
      // lcd.setCursor(0, 0);
      // lcd.autoscroll();
      lcd.write(Serial.read());
      
    }
  }
}

trovato in rete.

Nello sketch che origina i dati ho anche dovuto inserire degli spazi iniziali perché mi segava sempre l'iniziale (ad esempio "alore:" al posto di "Valore:")

Mi rende più semplice spostarmi verso l'applicazione reale, dove non so se riesco a tenere collegato il pc ad Arduino.

Tanto tanto tempo fa

In una galassia lontana lontana

Ho fatto questa cosa qui:

Prova a vedere di trarre ispirazione

Bentornato

Però un po' grezzo il tuo codice, non trovi?

Si capito

Per il problema della iniziale segata forse ripristinare la .setcursor() aiuterebbe

Invece per il problema degli a capo devi ripensare l'intera parte di visualizzazione

Non puoi usare un display LCD come fosse un monitor seriale, non lo è

Grazie, lo temevo in effetti...

Per il momento allora devo riformattare le informazioni per poter essere interpretabili, poi quando avrò il materiale corretto (display i2c 20x4) potrebbe andare meglio, cioè come nel simulatore.

Grazie mille per il supporto.

Figurati

Ben volentieri

Si ma occhio, nel simulatore hai l'LCD "puro" ossia senza interfaccia I2C (la librerie per la I2C è "LiquidCrystal_I2C").
Se vuoi provare bene tutto il codice prima di realizzare fisicamente il progetto ti conviene usare l'I2C anche su Wokwi. E ricorda che su Wokwi puoi anche condividere il tuo progetto se vuoi mostrarci qualche cosa che non ti torna.

PS: ma per i display I2C "reali" ci sono più librerie I2C che si chiamano allo stesso modo, per cui quando imposterai il progetto "fisico" verifica bene quale libreria hai installato, prova per prima quella "standard" di Frank De Brabander (il nome lo vedi nella gestione librerie dell'IDE).

Ciao docdoc,

in WOWKI ho già inserito il display i2c, con la libreria "standard" di Frank De Barbander, così come l'ho già installata nell'IDE.

Non ho solo il display fisico, per quello devo per forza attendere gli acquisti, che mi hanno obbligato a provare il display al posto del seriale.

Comunque grazie per la specifica.

Già che chiedi, ecco il progetto su wowki:

(sì, ho chiesto aiuto a Gemini praticamente per tutto, non picchiatemi)

Lo si legge e se ne vedono i commenti…