Bonjour a tous.
Mon projet, installer une matrice de 16x16 a l’arrière de mon vélo avec trois boutons pour tourner et arrêter, quand je n’appuie pas sur les boutons i y a une flèche qui indique que j'avance, quand j’appuie sur le bouton gauche pour tourner, une flèche gauche apparait, mème chose pour la droite et un pour arrêter.
Pour cela j'ai fusionner 2 programme que j'ai trouver sur le net et j'ai modifier le code et j'ai pris la fonction else if pour l’état des boutons, j'ai commencer par gauche, droite arrêt et avance, ce qui donne.
if bouton gauche tourner.
else if bouton droite pour tourner.
else if bouton arrêt pour arrêter.
else pour avancer.
Mon erreur se trouve avec le else seul, l'ide m’indique qu'il y a erreur que je ne peux résoudre, mon code n'est pas au complet, il me manque ce qui va apparaitre a l’arrêt.
Voici ce que dit l'ide j'ai fait un copier coller.
ttttttttt:74:3: error: expected unqualified-id before 'else'
else if (etatdroite == HIGH) {
^
ttttttttt:85:3: error: 'matrix' does not name a type
matrix.fillScreen(0);
^
ttttttttt:86:3: error: 'matrix' does not name a type
matrix.setCursor(x, 4);
^
ttttttttt:87:3: error: 'matrix' does not name a type
matrix.print(F(">>>>>"));
^
In file included from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:28:0,
from sketch\ttttttttt.ino.cpp:1:
C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/WString.h:38:74: error: expected unqualified-id before ')' token
#define F(string_literal) (reinterpret_cast<const __FlashStringHelper *>(PSTR(string_literal)))
^
C:\Users\paslui\Documents\Arduino\ttttttttt\ttttttttt.ino:87:16: note: in expansion of macro 'F'
matrix.print(F(">>>>>"));
^
ttttttttt:92:3: error: expected unqualified-id before 'if'
if(--b < -30) {
^
ttttttttt:100:3: error: expected unqualified-id before 'else'
else if (etatarret == HIGH) {
^
ttttttttt:106:3: error: expected unqualified-id before 'else'
else
^
exit status 1
expected unqualified-id before 'else'
Et voici mon code.
// Déclencher l'allumage du paneau de LED à l'aide de 4 interrupteurs
#include <Adafruit_GFX.h>
#include <Adafruit_NeoMatrix.h>
#include <Adafruit_NeoPixel.h>
#define PIN 8
// Initialisation des constantes :
const int gauche = 3; // Numéro de la broche à laquelle est connecté le bouton poussoir gauche
const int droite = 2; // Numéro de la broche à laquelle est connecté le bouton poussoir droite
const int arret = 4; // Numéro de la broche à laquelle est connecté le bouton poussoir arret
// Déclaration des variables :
int etatgauche = 0; // variable qui sera utilisée pour stocker l'état du bouton gauche
int etatdroite = 0; // variable qui sera utilisée pour stocker l'état du bouton droite
int etatarret = 0; // variable qui sera utilisée pour stocker l'état du bouton arret
// le code dans cette fonction est exécuté une fois au début
void setup() {
// indique que la broche bouton est une entrée :
pinMode(gauche, INPUT);
pinMode(droite, INPUT);
pinMode(arret, INPUT);
}
// le code dans cette fonction est exécuté en boucle
void loop(){
// lit l'état du bouton et stocke le résultat dans etatBouton
etatgauche = digitalRead(gauche);
etatdroite = digitalRead(droite);
etatarret = digitalRead(arret);
// Si etatBouton1 est à 5V (HIGH) c'est que le bouton est appuyé
// ***** gauche
if (etatgauche == HIGH) {
}
Adafruit_NeoMatrix matrix = Adafruit_NeoMatrix(16, 16, PIN,
NEO_MATRIX_BOTTOM + NEO_MATRIX_RIGHT +
NEO_MATRIX_COLUMNS + NEO_MATRIX_ZIGZAG,
NEO_GRB + NEO_KHZ800);
const uint16_t colors[] = {
matrix.Color(0, 255, 0) };
matrix.begin();
matrix.setTextWrap(false);
matrix.setBrightness(5);
matrix.setTextColor(colors[0]);
int a = matrix.width();
int pass = 0;
matrix.fillScreen(0);
matrix.setCursor(a, 4);
matrix.print(F("<<<<<"));
if(--a < -30) {
a = matrix.width();
matrix.show();
delay(50);
}
}
//***** droite
else if (etatdroite == HIGH) {
}
Adafruit_NeoMatrix matrix = Adafruit_NeoMatrix(16, 16, PIN,
NEO_MATRIX_BOTTOM + NEO_MATRIX_RIGHT +
NEO_MATRIX_ROWS + NEO_MATRIX_ZIGZAG,
NEO_GRB + NEO_KHZ800);
const uint16_t colors[] = {
matrix.Color(0, 255, 0)};
matrix.fillScreen(0);
matrix.setCursor(x, 4);
matrix.print(F(">>>>>"));
int b = matrix.width();
int pass = 0;
if(--b < -30) {
b = matrix.width();
matrix.show();
delay(30);
}
//***** arret
else if (etatarret == HIGH) {
digitalWrite(ledRouge, HIGH); // on allume la LED jaune
delay(500); // on laisse allumée la led jaune 1/2 seconde
}
// ***** avance
else
{
// sinon on allume avance
// ***** avance
Adafruit_NeoMatrix matrix = Adafruit_NeoMatrix(16, 16, PIN,
NEO_MATRIX_BOTTOM + NEO_MATRIX_RIGHT +
NEO_MATRIX_ROWS + NEO_MATRIX_ZIGZAG,
NEO_GRB + NEO_KHZ800);
const uint16_t colors[] = {
matrix.Color(0, 255, 0)};
matrix.begin();
matrix.setTextWrap(false);
matrix.setBrightness(5);
matrix.setTextColor(colors[0]);
int d = matrix.width();
int pass = 0;
matrix.fillScreen(0);
matrix.setCursor(x, 4);
matrix.print(F("<<<<<"));
if(--d < -30) {
d = matrix.width();
matrix.show();
delay(30);
}
}
Pourquoi j'ai cette erreur, quelqu;un peut-il m'aider.
Je vous en remercie d'avance.