Ce n'est ni du C ANSI ni vraiment du C++.
C'est du C++ mode arduino et ça ne concerne pas un µC mais le système arduino.
Ca je sais bien que ce n'est pas du C ANSI, ni du C++ ça se saurait c'est ce que je dis depuis le début, c'est du patois.
Système arduino?
C++ mode arduino?
Vous ne devez pas trop savoir de quoi vous parlez monsieur, un programme tel que celui-ci concerne un µC et devrait donc être compatible en terme de portabilité, il n'y a aucune notion de "système" ici.
Dernière modification par Chtulhu ; 22/11/2017 à 14h10.
Programme compilé et testé OK
La logique est, le contact de masse valide le bouton donc mettre une pull up.
bouion1 : pin 3 incrémente
bouion2 : pin 4 décrémente
bouion3 : pin 5 fonction Mode/Run
Led pin 9
Il y a 2 modes qui programment ;
1) mode "Flash" , le nombre de flash
2) mode "Temps" ,le temps allumé ET éteint.
En mode 2. L'appui sur le bouton 3 (Mode/Run) lance la séquence ainsi programmé,
Puis à la fin de la séquence on repasse en mode 1.
La base de temps est de 500ms, donc le chiffre affiche sera x 500 dans le delay(MyTemps)
Il ne faut pas trop faire confiance au pull up ou pull down interne.
Le fait de mettre le doigt sur le fil (pourtant bien isolé) fait basculer .
Une 10k est nécessaire !
Code:#define bouton1 digitalRead(3) #define bouton2 digitalRead(4) #define bouton3 digitalRead(5) #define LED 10 #define LED2 9 #define LED3 11 int comptage = 1; int temps = 1; boolean mode =0; void Run(void); void setup() { // put your setup code here, to run once: Serial.begin(9600); Serial.println("Start"); pinMode (bouton1, INPUT_PULLUP); pinMode (bouton2, INPUT_PULLUP); pinMode (bouton3, INPUT_PULLUP); digitalWrite (LED, LOW); digitalWrite (LED2, LOW); digitalWrite (LED3, LOW); pinMode (LED, OUTPUT); pinMode (LED2, OUTPUT); pinMode (LED3, OUTPUT); digitalWrite (LED, HIGH); digitalWrite (LED2, HIGH); digitalWrite (LED3, HIGH); delay(1000); digitalWrite (LED, LOW); digitalWrite (LED2, LOW); digitalWrite (LED3, LOW); } void loop() { // put your main code here, to run repeatedly: if (mode==0) { if (bouton1==LOW) { comptage++; Serial.println("flash"); Serial.println(comptage); delay(200); if (comptage>10) comptage=8; // digitalWrite (LED, HIGH); // test while (bouton1==LOW) ; } if (bouton2==LOW) { comptage--; Serial.println("flash"); Serial.println(comptage); delay(200); if (comptage<1) comptage=1; // digitalWrite (LED, LOW); //test while (bouton2==LOW) ; } } else { if (bouton1==LOW) { temps++; Serial.println("temps"); Serial.println(temps); delay(200); if (comptage>10) comptage=8; while (bouton1==LOW) ; } if (bouton2==LOW) { temps--; Serial.println("temps"); Serial.println(temps); delay(200); if (comptage<1) comptage=1; while (bouton2==LOW) ; } } if (bouton3==LOW) { delay(200); if (mode==1) { Run(); mode = 0; Serial.println("Mode flash"); } else { mode =1; Serial.println("Mode Temps"); } while (bouton3==LOW) ; } } void Run(void) { int i; int MyTemps; MyTemps = temps * 500; Serial.print("Run\r\n Compte:"); Serial.print(comptage); Serial.print(", Temps : "); Serial.println(temps); for (i = 0; i < comptage; i++) { digitalWrite (LED, HIGH); delay(MyTemps); digitalWrite (LED, LOW); delay(MyTemps); } Serial.print("End"); }
Dernière modification par freepicbasic ; 22/11/2017 à 15h57.
A+, pat
C'est un langage propriétaire fortement inspiré C++.
Non, ce langage ne concerne pas un µC mais le système arduino; il est compatible avec les cartes arduino quel que soit le µC utilisé.
Système arduino = carte arduino + langage arduino + IDE arduino
S'il vous plaît messieurs pas de débat de langage, simplement une aide pour mon exo.
Merci freepicbasic. Je vais continuer.Arduino Boolean;
https://www.arduino.cc/reference/en/...types/boolean/
L'exemple a été compiler OK, Donc avec un truc qui n'existe pas ça serait difficile LOL.
Il faut le compléter 'essayer...
Le type Boolean existe C++ !
Arduino c'est du C++ pas du C !
0 = false
1 = true
Si le but est d'apprendre, il suffit d'appliquer les conseils et les exemples que j'ai donné.