Go Down

Topic: Projet Aquarium débutant probleme MENU LCD (Read 2576 times) previous topic - next topic

Benito33

Bonjour,

Je suis novice en matière d'Arduino. J'ai en ma possession un arduino UNO et un afficheur LCD 16*2 connecté en parallèle ainsi que 4 boutons poussoir

J'ai déjà réussi a contrôler un ruban RGB et un Relais via un ULN2803 grâce à certain site.
J'arrive a afficher du texte sur l'afficheur et quelque effet ( déroulant..).

Je viens à vous, car je n'arrive pas a mon objectif. Celui ci étant de crée un menu pour mon projet d'Aquarium.

J'aimerais par exemple en écran d'accueil afficher la date, la température, si les poissons ont mangés. Ca j'arrive a l'affiché, mais j'aimerais crée un bouton Menu/Maintenance qui m'enverrai vers une page ou je peux navigué comme cette vidéo la =  http://www.youtube.com/watch?v=Sc4B0LAatDo
Et aussi que si je j'appuie sur le bouton de sélection, je bascule (exemple) "chauffage arrêt" par "chauffage marche" et que celui ci active le relais.Au niveau mécanique et électronique j'arrive a me débrouiller mais la je stagne...et j'ai lu la plupart des topics traitant le même problème mais je comprends toujours pas. En vous remerciant d'avance.

Benito33

// --- Inclusion des librairies utilisées ---
// include the library code:
#include <LiquidCrystal.h>

// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(2, 3, 4, 5, 6, 7);

// --- Déclaration des constantes ---

const int APPUI=0; // constante état du BP - appui sur niveau bas
const int PAS_APPUI=1; // constante état du BP - relâché sur niveau haut


// --- constantes des broches ---
const int BPG=8;
const int BPOK=12;
const int BPD=13;
const int LED=3; //declaration constante de broche

// --- Déclaration des variables globales ---

int ETAT_BPOK; // variable d'état du bouton poussoir
int ETAT_BPG;
int ETAT_BPD;

// --- Initialisation des fonctionnalités utilisées ---

//**************** FONCTION SETUP = Code d'initialisation *****
// La fonction setup() est exécutée en premier et 1 seule fois, au démarrage du programme

void setup()   { // debut de la fonction setup()

// --- ici instructions à exécuter au démarrage ---

pinMode(LED, OUTPUT); //met la broche en sortie

pinMode(BPOK, INPUT); //met la broche en entree

digitalWrite(BPOK, HIGH) ; // activation du pullup de la broche en entrée

  // Initialisation de l'afficheur LCD
  lcd.begin(20,4); // Initialise le LCD avec 20 colonnes x 4 lignes
  delay(2); // pause rapide pour laisser temps initialisation

  // Test de l'afficheur LCD
  lcd.setCursor(4, 0) ;
  lcd.print("Bonjour") ; // affiche la chaîne texte - message de test
  delay(1000); // pause de 2 secondes

  lcd.setCursor(1, 1) ; // 10ème col - 2ème ligne - positionne le curseur à l'endroit voulu (colonne, ligne) (1ère=0 !)
  lcd.print("Bienvenue dans") ; // affiche la chaîne texte - message de test
  delay(1000); // pause de 2 secondes

  lcd.clear(); // // efface écran et met le curseur en haut à gauche
  delay(2); // pour laisser temps effacer écran

  lcd.setCursor(1, 0) ;
  lcd.print("la gestion de") ; // affiche la chaîne texte - message de test
  delay(1000); // pause de 2 secondes

  lcd.setCursor(3, 1) ; // 10ème col - 2ème ligne - positionne le curseur à l'endroit voulu (colonne, ligne) (1ère=0 !)
  lcd.print("l'aquarium") ; // affiche la chaîne texte - message de test
  delay(1000); // pause de 2 secondes

  lcd.clear(); // // efface écran et met le curseur en haut à gauche
  delay(2); // pour laisser temps effacer écran
 
  lcd.setCursor(0, 0) ; //
  lcd.print("Dim 11 Juil ") ; // affiche la chaîne texte - message de test
 
  lcd.setCursor(2, 1) ; //
  lcd.print("<Maintenance>") ; // affiche la chaîne texte - message de test
}
   // fin de la fonction setup()
// ********************************************************************************

//*************** FONCTION LOOP = Boucle sans fin = coeur du programme *************
// la fonction loop() s'exécute sans fin en boucle aussi longtemps que l'Arduino est sous tension

void loop(){ // debut de la fonction loop()

// --- ici instructions à exécuter par le programme principal ---

ETAT_BPOK=digitalRead(BPOK); // lit l'état du BPOK et met la valeur 0/1 dans la variable



if (ETAT_BPOK==APPUI) { // si l'état du BP est appuyé (càd si variable état BP = 0)
// Attention à bien utiliser == et non =

  lcd.clear(); // // efface écran et met le curseur en haut à gauche
  delay(10); // pour laisser temps effacer écran
 
  lcd.setCursor(0, 0) ; //
  lcd.print("Bulleur") ; // affiche la chaîne texte - message de test
 
  lcd.setCursor(3, 1) ; //
  lcd.print("<Suivant>") ; // affiche la chaîne texte - message de test
 
}
 
} // fin de la fonction loop() - le programme recommence au début de la fonction loop sans fin
// ********************************************************************************

// --- Fin programme ---

skywodd

Bonjour,

Cette librairie devrait t'être bien utile, http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1240415211
Des news, des tutos et plein de bonnes choses sur http://skyduino.wordpress.com !

Go Up