Salut ...
j'aurais encore besoin de vos lumières...pour 2 petits soucis...
J'ai donc un code qui fonctionne ...
j'ai mixé le merveilleux code que m'as écrit J-M-L ... avec un code de compteur d'afficheur 7 segment ....
l'afficheur câblé avec des résistances de 470 ohm fonctionne mais ne donne pas la luminosité que j'attendais ... et j'ai fait un essais sans résistances... la luminosité est strictement le même ...
Afficheur chinoi de mauvaise qualité ou quelque chose m’échappe ? ...
Autre souci ... qui n'en est pas vraiment un ...
Je cherche a ajouter 2 bp pour faire varier l'es valeurs d'angles du servo de la vitesse sélectionnée...
mais la je doit dire que je sèche un peu...
voici donc mon code fonctionnel :
#include <Servo.h>
Servo levierVitesse;
const byte pinServo = 5;
#include <simpleBouton.h> // cf @bricoleau @ http://forum.arduino.cc/index.php?topic=375232.0
const byte pinPalettePlus = 2; //Cablage : pin 4 --- bouton --- GND
const byte pinPaletteMoins = 3; //Cablage : pin 5 --- bouton --- GND
simpleBouton boutonPlus(pinPalettePlus);
simpleBouton boutonMoins(pinPaletteMoins);
const int a=6;
const int b=7;
const int c=8;
const int d=9;
const int e=10;
const int f=11;
const int g=12;
//const int bouton_plus = 2;
//const int bouton_moins = 3;
int etat_bouton;
int nombre = 1;
int mem_btn_plus = HIGH; //etat du bouton plus
int mem_btn_moins = HIGH; // etat du bouton moins
const int boite[] = {700, 930, 1160, 1390, 1620, 1850, 2080}; // les valeurs d'angles en µs
const byte nombreDeVitesses = sizeof boite / sizeof boite[0];
byte vitesse = 1; // vitesse par défaut
inline void reglerVitesse() {
levierVitesse.writeMicroseconds(boite[vitesse]);
Serial.print(F("Vitesse ")); Serial.print(vitesse);
Serial.print(F("\tangle ")); Serial.println(boite[vitesse]);
}
void plus() {
if (vitesse < nombreDeVitesses - 1) {
vitesse++;
reglerVitesse();
}
}
void moins() {
if (vitesse > 0) {
vitesse--;
reglerVitesse();
}
}
void gestionPalettes() {
boutonPlus.actualiser();
if (boutonPlus.vientDEtreEnfonce()) plus();
else {
boutonMoins.actualiser();
if (boutonMoins.vientDEtreEnfonce()) moins();
}
}
void setup() {
Serial.begin(115200);
reglerVitesse();
levierVitesse.attach(pinServo);
digitalWrite(a, OUTPUT);
digitalWrite(b, OUTPUT);
digitalWrite(c, OUTPUT);
digitalWrite(d, OUTPUT);
digitalWrite(e, OUTPUT);
digitalWrite(f, OUTPUT);
digitalWrite(g, OUTPUT);
// digitalWrite(bouton_plus, INPUT);
// digitalWrite(bouton_moins, INPUT);
}
void loop() {
gestionPalettes();
etat_bouton = digitalRead(pinPalettePlus);
if ((etat_bouton != mem_btn_plus) && (etat_bouton == LOW)){
nombre++;
}
mem_btn_plus = etat_bouton;
etat_bouton = digitalRead(pinPaletteMoins);
if ((etat_bouton != mem_btn_moins)&& (etat_bouton == LOW)){
nombre--;
}
mem_btn_moins = etat_bouton;
affichage(nombre);
if(nombre < 0){
nombre = 0;
}
if (nombre > 6)
nombre = 6;
}
void affichage (int recu){
if (recu == 0){
digitalWrite(a,HIGH);
digitalWrite(b,HIGH);
digitalWrite(c,HIGH);
digitalWrite(d,LOW);
digitalWrite(e,HIGH);
digitalWrite(f,HIGH);
digitalWrite(g,HIGH);
}
if (recu == 1) {
digitalWrite(a,LOW);
digitalWrite(b,LOW);
digitalWrite(c,HIGH);
digitalWrite(d,LOW);
digitalWrite(e,HIGH);
digitalWrite(f,LOW);
digitalWrite(g,HIGH);
}
if (recu == 2){
digitalWrite(a,LOW);
digitalWrite(b,HIGH);
digitalWrite(c,HIGH);
digitalWrite(d,LOW);
digitalWrite(e,LOW);
digitalWrite(f,LOW);
digitalWrite(g,LOW);
}
if (recu == 3){
digitalWrite(a,HIGH);
digitalWrite(b,HIGH);
digitalWrite(c,LOW);
digitalWrite(d,HIGH);
digitalWrite(e,HIGH);
digitalWrite(f,LOW);
digitalWrite(g,HIGH);
}
if (recu == 4){
digitalWrite(a,HIGH);
digitalWrite(b,HIGH);
digitalWrite(c,HIGH);
digitalWrite(d,HIGH);
digitalWrite(e,LOW);
digitalWrite(f,LOW);
digitalWrite(g,HIGH);
}
if (recu == 5){
digitalWrite(a,LOW);
digitalWrite(b,HIGH);
digitalWrite(c,HIGH);
digitalWrite(d,LOW);
digitalWrite(e,LOW);
digitalWrite(f,HIGH);
digitalWrite(g,HIGH);
}
if (recu == 6){
digitalWrite(a,HIGH);
digitalWrite(b,LOW);
digitalWrite(c,HIGH);
digitalWrite(d,HIGH);
digitalWrite(e,LOW);
digitalWrite(f,HIGH);
digitalWrite(g,HIGH);
}
if (recu == 7){
digitalWrite(a,HIGH);
digitalWrite(b,LOW);
digitalWrite(c,HIGH);
digitalWrite(d,HIGH);
digitalWrite(e,HIGH);
digitalWrite(f,HIGH);
digitalWrite(g,HIGH);
}
}
si quelqu'un a une idée je suis preneur ...