Bonjour je me présente je m'appelle lucas et c'est mon premiers post sur ce forum
.
Je suis étudiant en BTS SNIR (la descendant du BTS IRIS) et la je suis en deuxième année et je dois faire un projet.
Je vous passe les détails du projet (sauf si vous voulez vraiment le savoir ) et je vais vous parler plus précisement de mon problème
J'ai comme matériaux un arduino uno et également un afficheur LCD "Sparkfun Color LCD shield" qui m'est confié avec sa bibliothèque qui est sur ce site :
c'est donc un écran composé de 3 boutons poussoirs et je veux créer 3 affichages différents pour chaque boutons.
chaque écran contiendra un rectangles ou un carré (c'est déja fait sur mon code ).
et ces rectangles auront une sorte de remplissage fluide et en dynamique et progressif (si vous ne visualisez pas trop , mon affichage aura la même tête qu'une barre de chargement , avec la barre qui se remplie petit a petit ).
Pour le moment je m'occupe seulement de la fonction "collectif()".
De base le dessin du rectangle qui se trouve dans le setup() se trouver de base dans la fonction collectif() cependant le programme était bien trop lent et mettait du temps a ré afficher fluidement le remplissage du rectangle.
Donc j'ai décidé de mettre le dessin du rectangle dans le setup et le remplissage dans le loop , dans la fonction "collectif()".
Cela me convient bien , cependant un nouveau problème se pose ...
Comment je vais pouvoir faire quand j'aurais les 3 écran different a afficher avec leurs 3 boutons correspondant. Je ne pourrais plus mettre le dessin du rectangle dans le setup car il devra pouvoir être effacer puis remplacer par le nouveau rectangle choisie d'un des trois boutons
...
Je vous passe mon code arduino , si vous avez des questions ou des remarque , n'hésitez pas !
Merci d'avance
!
#include <SparkFunColorLCDShield.h>
#include <stdio.h>
#define BACKGROUND BLACK
#define RECT_COLOR BLUE
#define CROSS RED
LCDShield lcd;
int buttonPins[3] = {3, 4, 5};
boolean buttonEtat[3] = {false, false, false};
int x = -32768;
int count;
char timeChar[12];
void setup()
{
lcd.init(PHILIPS);
lcd.contrast(63); // sets LCD contrast (value between 0~63)
Serial.begin(9600);
lcd.clear(BACKGROUND);
lcd.setRect(50,15,79,113 ,40, RECT_COLOR);
lcd.setRect(51,15,80,113 ,40, RECT_COLOR);
lcd.setRect(50,16,79,114 ,40, RECT_COLOR);
//float test = (/*joyReport.axis[3] + */ 3000)/468.75 + 5.50 ;
//Serial.print(test,2);
// menu();
}
void loop()
{
if(x >= 32000)
{
count += 1;
}
x = x+1000;
etatBouton();
collectif();
}
void menu(){
// lcd.clear(BACKGROUND);
lcd.setStr(" SELECTION :", 15,2, WHITE, BACKGROUND);
lcd.setStr("B1:Rt Cyclique", 45,2, WHITE, BACKGROUND);
lcd.setStr("B2:Rt Generique", 75,2, WHITE, BACKGROUND);
lcd.setStr("B3:Rt Arriere", 105,2, WHITE, BACKGROUND);
}
void cyclique(){
// lcd.clear(BACKGROUND);
lcd.setRect(24,24,104,104 ,40, RECT_COLOR);
lcd.setRect(25,25,105,105 ,40, RECT_COLOR);
lcd.setLine(61,66,71,66,CROSS);
lcd.setLine(66,61,66,71,CROSS);
}
void collectif(){
// lcd.clear(BACKGROUND);
// lcd.setRect(50,15,79,113 ,40, RECT_COLOR); //setup
// lcd.setRect(51,15,80,113 ,40, RECT_COLOR); //setup
// lcd.setRect(50,16,79,114 ,40, RECT_COLOR); //setup
int c = map(x,-32768 ,32767, 16, 114);
lcd.setRline(50,c+1,79,114,0,RECT_COLOR);
lcd.setRline(50,c,79,114,0, RECT_COLOR);
Serial.println(x);
Serial.println('\t');
Serial.println(count);
}
void pallonier(){
// lcd.clear(BACKGROUND);
lcd.setRect(50,15,79,113 ,40, RECT_COLOR);
lcd.setRect(51,15,80,113 ,40, RECT_COLOR);
lcd.setLine(50,66,79,66,RECT_COLOR);
lcd.setRect(50,16,79,114 ,40, RECT_COLOR);
}
void affiche_commande(){
}
void etatBouton(){
if (!digitalRead(buttonPins[0])){
buttonEtat[0] = true ;
buttonEtat[1] = false ;
buttonEtat[2] = false ;
}
if (!digitalRead(buttonPins[1])){
buttonEtat[0] = false ;
buttonEtat[1] = true ;
buttonEtat[2] = false ;
}
if (!digitalRead(buttonPins[2])){
buttonEtat[0] = false ;
buttonEtat[1] = false ;
buttonEtat[2] = true ;
}
}