Menu com pic 18F4550

12 Anni 4 Mesi fa #1 da Lazzaretti 74
Menu com pic 18F4550 è stato creato da Lazzaretti 74
Ciao a tutti,vorrei realizzare con il PIC18F4550 e un LCD 2x16 HD44780 un progetto di un termostato differenziale con impostazioni dei set quale differenza di temperatura tra sonda A e sonda B e soglie di attivazione relè per raggiunti set,comunque impostabili.
Ora mi è sorto un dubbio......Come posso fare ad inserire tutti questi set point con un LCD così piccolo?
Non volendo cambiare LCD mi è venuto l'idea di creare un menù iniziale in cui poter,attraverso due tasti,sù e giù,scorrere altri menù sottostanti....qualcuno ha idea di come poter fare?e soprattutto è possibile fare tutto questo?
Dimenticavo...il linguaggio di programmazione è il C18.
Grazie.
Luca

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • Lazzaretti 74
  • Visitatori
  • Visitatori
12 Anni 4 Mesi fa #2 da borelg
Risposta da borelg al topic Re: Menu com pic 18F4550
Ciao! Certo che è possibile farlo!
Dopo aver memorizzato tutte le stringhe che ti servono nella memoria flash (e non nella ram altrimenti ti occupano spazio inutilmente) io creerei una funzione apposita per l'aggiornamento dell'LCD e una funzione apposita per la gestione dei tasti. Entrambe messe in un while infinito, le farei comunicare attraverso variabili globali che dicono alla funzione di aggiornamento LCD cosa scrivere.
Mi sono spiegato?
Cosa ne dici?

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • borelg
  • Avatar di borelg
  • Elite Member
  • Elite Member
Di più
12 Anni 4 Mesi fa #3 da Lazzaretti 74
Risposta da Lazzaretti 74 al topic Re: Menu com pic 18F4550
Scusami ma non ho capito molto di quello che hai scritto....fino ad ora ho fatto cose molto semplici...potresti scrivere qualche riga di esempio?
Grazie.
Luca

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • Lazzaretti 74
  • Visitatori
  • Visitatori
12 Anni 4 Mesi fa #4 da borelg
Risposta da borelg al topic Re: Menu com pic 18F4550
Ciao,
scusa non vorrei complicarti troppo le cose, ma io lo frei così:

Definisco tutte le stringhe che devo scrivere sull'LCD nella memoria programma usando la parola chiave const:

const char menu[10][16]= {"stringa1", "Stringa2, ecc....}

Poi io il main lo organizzerei così:

char Stato_menu;

char LCD[2][16];

void main(){
Inizializzazione();

while{
Gestione_Pulsanti();
Gestione_LCD();

...
Altre funzioni che servono per la gestione del tuo sistema
...
}
}

In poche parole nella funzione gestione pulsanti tu controlli lo stato dei tuoi pulsanti e scrivi nelle 2 stringhe
LCD quello che vuoi che venga visualizzato sull'LCD. Per seguire in quale menù sei e quindi sapere cosa ci deve venire
scritto se premi il tasto su o giu io userei una variabile globale tipo Stato_menu, che incrementerei/decrementerei
a dovere dopo ogni click. Ovviamente con i dovuti controlli per non superare i valori limiti o lo 0.

Nella funzione Gestione_LCD invece aggiorni l'LCD scrivendogli le due stringhe LCD[2]. Volendo puoi anche mettere
un controllo per far si che la funzine te le scriva solamente se è stato modificato la variabile Stato_menu.

Mi sono spiegato meglio? :)

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • borelg
  • Avatar di borelg
  • Elite Member
  • Elite Member
Di più
Moderatori: Mauro LaurentiPinnaStefAMatteo Garia

Registrati al sito

Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.

Registrati al sito LaurTec.

Login