Bonjour,
Comme dis dans le titre, j'aimerais savoir comment faire pour pouvoir lancer un programme lorsque j'appuie sur un bouton du LCD Keypad Shield.
Merci de vos réponses.
Bonjour,
Comme dis dans le titre, j'aimerais savoir comment faire pour pouvoir lancer un programme lorsque j'appuie sur un bouton du LCD Keypad Shield.
Merci de vos réponses.
Bonjour,
On trouve plusieurs exemples sur le net. Par exemple ici.
Merci de votre réponse.
J'ai donc essayé de combiner le code trouver sur le site avec un autre code :
case BUTTON_UP:
lcd.print(F("UP "));
//Pacman
//Written By: Jean Malha
//http://forum.snootlab.com/viewtopic.php?f=34&t=207
//
//#include "Wire.h" // insertion de la librairie I2C (obligatoire)
//#include <Deuligne.h> // insertion de la librairie Deuligne (obligatoire)
#include <LiquidCrystal.h>
#define VITESSE_PAC 150
#define VITESSE_FANT 2000
#define MAXX 15
#define MAXY 1
#define btnRight 0
#define btnUp 1
#define btnDown 2
#define btnLeft 3
#define btnSelect 4
#define btnNone 5
void(* resetFunc) (void) = 0;
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
//Deuligne lcd; // Déclaration de l'objet lcd
// Charactère spécifique pacman
byte pacman[8] = {
B00000,
B00000,
B01110,
B11011,
B11100,
B01110,
B00000,
B00000
};
// Charactère spécifique fantome
byte fantome[8] = {
B00000,
B00000,
B01110,
B10101,
B11111,
B11111,
B10101,
B00000
};
byte point[8] = {
B00000,
B00000,
B00000,
B01110,
B01110,
B00000,
B00000,
B00000
};
// Tableau des points à manger
byte points[MAXX+1][MAXY+1];
int xpac=2; // Position de pacman en X (colone)
int ypac=1; //position de pacmanen y (ligne)
int xfant=15;// Position du fantome en X (colone)
int yfant=0;// Position du fantome en Y (ligne)
byte light=true; //Eclairage
long keystruck=0; //dernier appui sur un bouton
long poursuite=0; //dernier movement du fantome
byte partieEnCours=true; // pour eviter de boucler sur la fin
byte vide=false; // pour tester si tout est manger
byte level=0; // niveau
int score=0; // niveau
void bouge(int x,int y) // fonction pour bouger pacman
{
int oldx=xpac;
int oldy=ypac;
if (((xpac+x)>=0)&((xpac+x)<=MAXX)) xpac=xpac+x; //Si pas sorti d'ecran, on change x
if (((ypac+y)>=0)&((ypac+y)<=MAXY)) ypac=ypac+y;//Si pas sorti d'ecran, on change y
lcd.setCursor(xpac,ypac); // On se place en nouvelle position
lcd.write(byte(0)); // et on pose le caractere 0 (Pacman)
lcd.setCursor(oldx,oldy); // On se place en ancienne position
if ((xpac!=oldx)||(ypac!=oldy)) lcd.print(" "); // et on efface Pacman (s'il a bougé)
if(points[xpac][ypac]){
points[xpac][ypac]=false; // mange le truc
score++;
}
vide=true;
for (int i=0; i<=MAXX; i=i+1)
for (int j=0; j<=MAXY; j=j+1)
if (points[i][j]) vide=false;
if ((vide)&&(partieEnCours)) gagne();
}
Malheureusement, à "void bouge(int x,int y) // fonction pour bouger pacman
{" , il me met le message d'erreur :
a function-definition is not allowed here before '{' token
Comment dois-je faire, du coup ?
(désolé si mes questions sont bêtes, je débute sur Arduino)
Qu'est ce que c'est que ce
case BUTTON_UP:
lcd.print(F("UP "));
au début du programme?
De plus il n'y a ni setup() ni loop()
Reprends l'exemple de gestion des boutons et insères y ton programme.
J'ai quand même quelques doute sur la possibilié de réaliser un pacman avec un LCD keypad shield.