PotentiometreControlsLed.ino

De Wikilipo
Révision datée du 13 avril 2012 à 18:58 par Pdunandf (discussion | contributions) (Page créée avec « <pre>/* * varaition of sparkfun's inventor's kit CIRC-09 * knob (potentiometer) and light * A simple programme that will change the intensity of * an LED based * on the... »)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à la navigation Aller à la recherche
/*
 * varaition of sparkfun's inventor's kit CIRC-09
 * knob (potentiometer) and light
 * A simple programme that will change the intensity of
 * an LED based 
 * on the degree of twist of 
 * a potentiometer
 * on règle l'intensité d'une DEL à l'aide d'un potentiomètre
 * tested April 13, 2012
 * @atelierpdf.com
 */

/* circuit;
 * DEL entre fiche 9 (PWR) et GND
 * potentiomètre: électrode centrale sur PIN A0 (analogique)
 *                5v sur un bord
 *                GND sur l'autre
 * Note: la répartition gauche droite des fiche + et -
 * inverse les valeurs émises par le pot
 */

// la fiche du pot
int lightPin = 0; //la fiche analogique du pot
// émet des valeurs non normalisées

// fiche de la DEL
int ledPin = 9;   //la fiche choisie fonctionne en PWM
// pulse width modulation pin

void setup()
{
  pinMode(ledPin, OUTPUT); //la fiche en sortie

  //  // debugging
  //  Serial.begin(9600); // initialisation du moniteur seriel à 9600 bauds
}

void loop()
{
  int lightLevel = analogRead(lightPin); // lecture des valeurs retournées par le pot
  lightLevel = map(lightLevel, 0, 1023, 0, 255); 
  //on normalise les valeurs de 0 à 1023
  // en 0 à 255


    // on s'assure que les valeurs seront bien entre 0 et 255
  lightLevel = constrain(lightLevel, 0, 255);// on s'assure que les valeurs seront bien

  analogWrite(ledPin, lightLevel);  //on allume la DEL avec la valeur obtenu

  // // debugging
  // Serial.println(lightLevel);  // écriture de cette valeur dans le moniteur sériel
}