Memorizzare parametri inseriti da tastiera su Arduino Mega e Stamparli su schermo LCD I2C

Salve, stiamo utilizzando Arduino Mega 2560 per il nostro progetto di tesi. Abbiamo riscontrato qualche difficoltà nel salvataggio dei parametri inseriti da tastiera su Arduino. Non ruisciamo a visualizzarli sullo schermo LCD 16x2 I2C. Alleghiamo il codice da noi utilizzato e attendiamo vostri consigli per poter proseguire nel lavoro. Grazie in anticipo

 #include <Keypad.h> 
#include <LiquidCrystal_I2C.h>

const int ROW_NUM    = 4; // four rows
const int COLUMN_NUM = 4; // four columns

char keys[ROW_NUM][COLUMN_NUM] = {
  {'1','2','3', 'A'},
  {'4','5','6', 'B'},
  {'7','8','9', 'C'},
  {'*','0','#', 'D'}
};

byte pin_rows[ROW_NUM] = {9, 8, 7, 6};      // connect to the row pinouts of the keypad
byte pin_column[COLUMN_NUM] = {5, 4, 3, 2}; // connect to the column pinouts of the keypad

Keypad keypad = Keypad(makeKeymap(keys), pin_rows, pin_column, ROW_NUM, COLUMN_NUM );
LiquidCrystal_I2C lcd(0x27, 16, 2); // I2C address 0x27, 20 column and 4 rows

int cursorColumn = 0;
int domanda = 0;

void setup(){
  lcd.init(); // initialize the lcd
  lcd.backlight();
}

void loop(){
  String lunghezza, torsione, avvolgimento;

  if (domanda == 0) {
    char key = keypad.getKey();
    lcd.setCursor(0,0);
    lcd.print("Lunghezza(mm): ");

    if (key != '#' && key) {
      lcd.setCursor(cursorColumn, 1); // move cursor to   (cursorColumn, 0)
      lcd.print(key);                 // print key at (cursorColumn, 0)

      lunghezza = lunghezza + key;
      cursorColumn++;                 // move cursor to next position
      
    } else if (key == '#') {
      lcd.clear();
      cursorColumn = 0;
      domanda++;
      delay(1000);
    }
  }

  if (domanda == 1) {
    char key = keypad.getKey();
    lcd.setCursor(0,0);
    lcd.print("Giri twist: ");

    if (key != '#' && key) {
      lcd.setCursor(cursorColumn, 1); // move cursor to   (cursorColumn, 0)
      lcd.print(key);                 // print key at (cursorColumn, 0)

      torsione = torsione + key;  
      
      cursorColumn++;                 // move cursor to next position
      
    } else if (key == '#') {
      lcd.clear();
      cursorColumn = 0; 
      domanda++;
      delay(1000);
    }
  }

  if (domanda == 2) {
    char key = keypad.getKey();
    lcd.setCursor(0,0);
    lcd.print("Giri coil: ");

    if (key != '#' && key) {
      lcd.setCursor(cursorColumn, 1); // move cursor to   (cursorColumn, 0)
      lcd.print(key);                 // print key at (cursorColumn, 0)

      avvolgimento = avvolgimento + key;  
      
      cursorColumn++;                 // move cursor to next position
      
    } else if (key == '#') {
      lcd.clear();
      cursorColumn = 0; 
      domanda++;
      delay(1000);
    }
  }

  if (domanda == 3) {
    lcd.print(lunghezza);
    domanda++;
    delay(1000);
  }
}

 

Buonasera,

:warning: prima di tutto ti segnalo che, nella sezione in lingua Inglese, si può scrivere SOLO in Inglese ... quindi, per favore, la prossima volta presta più attenzione in quale sezione metti i tuoi post; questa volta esso è stato spostato, da un moderatore della sezione di lingua Inglese, nella sezione di lingua Italiana ... la prossima volta potrebbe venire direttamente eliminato, dopo
di che ...

... essendo il tuo primo post, nel rispetto del regolamento della sezione Italiana del forum (… punto 13, primo capoverso), ti chiedo cortesemente di presentarti IN QUESTO THREAD (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con molta attenzione tutto il succitato REGOLAMENTO ... Grazie.

Guglielmo

P.S.: Ti ricordo che, purtroppo, fino a quando non sarà fatta la presentazione nell’apposito thread, nel rispetto del suddetto regolamento nessuno ti risponderà (eventuali risposte verrebbero temporaneamente nascoste), quindi ti consiglio di farla al più presto. :wink:

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.