Salut, on a un projet: on veut recréer le mastermind (le jeu) avec des LEDs et des boutons.
Le but étant d'avoir deux joueurs, un qui entre le code secret de 4 couleurs et l'autre joueur qui devine le code secret. Donc notre système fonctionne avec des LED RGB (celles qu'on a ont déjà une résistance intégrée) et deux boutons, un qui permet de changer la couleur de la LED activée parmi 4 couleurs et un deuxième qui permet de valider le choix de la couleur et de passer à la LED suivante pour choisir sa couleur et ainsi de suite.
Le problème qu'on a c'est pour coder les deux LEDs indépendamment l'une de l'autre. >:( >:(
On voudrait changer la couleur d'une LED avec un bouton puis cliquer sur un bouton valider pour bloquer la couleur de la LED actuelle et passer à choisir la couleur d'une 2eme LED.
Je vais insérer le code qu'on a (je sais qu'on peut sûrement faire plus court mais pour l'instant ça marche comme ça), on a utilisé des boucles et des compteurs.
Pour l'instant tout marche parfaitement avec 2 LED mais au final on voudrait en avoir 4 mais on a utilisé quasi tous les ports (avec le symbole vague PMW nécessaire pour avoir les couleurs qu'on veut) sur la carte arduino.
On voudrait savoir comment on peut faire au niveau des branchements pour avoir les LED branchées sur des "pins" différents pour pouvoir coder le choix des couleurs indépendamment les une des autres et ce que ça risque de changer dans notre code.
MERCI!
LE CODE
const int buttonPin = 2;
const int buttonPin2 = 8;
const int redPin = 9;
const int greenPin = 10;
const int bluePin = 11;
const int redPin2 = 5;
const int greenPin2 = 3;
const int bluePin2 = 6;
int counter = 0;
int counter2 = 0;
int buttonState=0;
int buttonState2=0;
int lastButtonState=0;
int lastButtonState2=0;
void setup() {
// put your setup code here, to run once:
pinMode(buttonPin, INPUT);
pinMode(buttonPin2, INPUT);
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);
pinMode(redPin2, OUTPUT);
pinMode(greenPin2, OUTPUT);
pinMode(bluePin2, OUTPUT);
}
void setColor(int red, int green, int blue)
{
#ifdef COMMON_ANODE
red = 255 - red;
green = 255 - green;
blue = 255 - blue;
#endif
analogWrite(redPin, red);
analogWrite(greenPin, green);
analogWrite(bluePin, blue);
}
void setColor2(int red2, int green2, int blue2)
{
#ifdef COMMON_ANODE
red2 = 255 - red2;
green2 = 255 - green2;
blue2 = 255 - blue2;
#endif
analogWrite(redPin2, red2);
analogWrite(greenPin2, green2);
analogWrite(bluePin2, blue2);
}
void loop() {
// put your main code here, to run repeatedly:
buttonState = digitalRead(buttonPin);
buttonState2 = digitalRead(buttonPin2);
if (buttonState2 != lastButtonState2){
if (buttonState2 == HIGH) {
counter2++;
}
else{
counter2=counter2;
}
lastButtonState2 = buttonState2;
}
if (counter2==1){
if (buttonState != lastButtonState) {
if (buttonState == HIGH) {
counter++;
}
else{
counter=counter;
}
lastButtonState = buttonState;
}
if(counter==0){
setColor(0,0,0);
}
else if (counter%4==1){
setColor(255,0,255);
}
else if (counter%4==2){
setColor(1,102,102);
}
else if (counter%4==3 ){
setColor(0,255,0);
}
else if (counter%4==0){
setColor (255,255,0);
}
}
else if (counter2==2) {
if (buttonState != lastButtonState) {
if (buttonState == HIGH) {
counter++;
}
else{
counter=counter;
}
lastButtonState = buttonState;
}
if(counter==0){
setColor2(0,0,0);
}
else if (counter%4==1){
setColor2(255,0,255);
}
else if (counter%4==2){
setColor2(1,102,102);
}
else if (counter%4==3 ){
setColor2(0,255,0);
}
else if (counter%4==0){
setColor2(255,255,0);
}
}
}