PotentiometreControlsLed.ino
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
}