Imprimer
Affichages : 953

Gérer une led avec cinq capteurs

 

Les besoins :

Une platine d'essai Une arduino (type uno ou autre ...) Une led Une résistance 330 ohm
           

 

 Cinq résistances 10kohm Un capteur de flexion Deux SoftPot  Deux capteurs de pression  Des jumpers

Schéma de montage :

 

Code pour IDE arduino :

int ledrouge        = 3;           // La LED est liée à la broche digitale 3
int capteurcercle   = A5;          // Le softpot 1 est lié à la broche A5
int capteurposition = A4;          // Le softpot 2 est lié à la broche A4
int capteurcarre    = A3;          // Le capteur de pression 1 est lié à la broche A3
int capteurflex     = A2;          // Le capteur de flexion est lié à la broche A2
int capteurpression = A1;          // Le capteur de pression 2 est lié à la broche A1
int cercle;
int Position;
int carre;
int flex;
int pression;
int brightness      = 0;
int fadeAmount      = 5;           // Nombre de pas
 
void setup() {
  pinMode(ledrouge,OUTPUT);        // configurer la broche comme sortie
  pinMode(capteurcercle,INPUT);    // configurer la broche comme entrée
  pinMode(capteurposition,INPUT);
  pinMode(capteurcarre,INPUT);
  pinMode(capteurflex,INPUT);
  pinMode(capteurpression,INPUT);
  Serial.begin(9600);              // initialisation du port série
}
 
void loop() {
  char octet_recu;
  if (Serial.available() > 0) {
 
    // Lisons ce que l'on reçoit via le port série
    octet_recu = Serial.read();
    if (octet_recu == '1') {
      digitalWrite(ledrouge, HIGH);
    } else {
      digitalWrite(ledrouge, LOW);
    }
  }
 
  // Lecture de l'entrée analogique 0:
  pression = analogRead(capteurpression);
  char envoyer = 'a' + map(capteurpression, 0, 1023, 0, 25);
  Serial.print(envoyer);
 
  // On attend un peu pour laisser le temps au ADC de respirer
  delay(20);
 
  cercle   = analogRead(capteurcercle);
  Position = analogRead(capteurposition);
  carre    = analogRead(capteurcarre);
  flex     = analogRead(capteurflex);
 
  analogWrite(ledrouge, brightness);
  brightness = brightness + fadeAmount;
 
  // Map pour chaque capteurs
  brightness = map(flex,750,950,0,255)
             + map(pression,1023,0,0,255)
             + map(carre,1023,0,0,255)
             + map(Position,0,1023,0,255)
             + map(cercle,0,1023,0,255);
 
  Serial.print("cercle");
  Serial.println(cercle);
  //Serial.print("Position");
  //Serial.println(Position);
  //Serial.print("carre");
  //Serial.println(carre);
  //Serial.print("flex");
  //Serial.println(flex);
  //Serial.print("pression");
  //Serial.println(pression); 
}