Modifier l'intensité lumineuse d'une LED
De Wiki L.A.B
Révision de 15 décembre 2015 à 12:15 par Adminsys (discussion | contributions) (Page créée avec « ===== Matériel ===== * Arduino Uno * Plaque d'essai (breadbord) * LED * Bouton Poussoir * Résistance 1/4W 270Ω ( 220Ω ou 330Ω peuvent également convenir) * Straps ou... »)
Matériel
- Arduino Uno
- Plaque d'essai (breadbord)
- LED
- Bouton Poussoir
- Résistance 1/4W 270Ω ( 220Ω ou 330Ω peuvent également convenir)
- Straps ou fils de liaison
Montage
Programme
Voici le programme qu'il faut éditer dans l'IDE Arduino, puis compiler et charger dans la carte Arduino
/*
Ce programme allume progressivement une LED branchée sur la broche 3
*/
int led = 3; // broche de la LED
int i = 0; // variable de la boucle for
void setup() // setup est déroulé une seule fois après la remise à zéro
{
pinMode(led, OUTPUT); // la broche led (3) est initialisée en sortie
}
void loop() // loop est déroulé indéfiniment
{
for (i=0; i<255;i++) // i varie de 1 à 255
{
analogWrite(led,i); // génère une impulsion sur la broche de largeur i => la luminosité augmente
delay(20); // pause de 20 ms entre chaque pas
}
}
Montage avec BP
Programme avec BP
Voici le programme qu'il faut éditer dans l'IDE Arduino, puis compiler et charger dans la carte Arduino
/*
Ce programme allume puis éteint progressivement une LED branchée sur la broche 3
lorsque le bouton poussoir est appuyé
*/
int BP = 2; // broche du bouton poussoir
int led = 3; // broche de la LED
int i = 0; // variable de la boucle for
void setup() // setup est déroulé une seule fois après la remise à zéro
{
pinMode(led, OUTPUT); // la broche led (3) est configuéeée en sortie
pinMode(BP, INPUT_PULLUP); // la broche BP (3) est configuréée en entrée avec résistance de tirage au +
}
void loop() // loop est déroulé indéfiniment
{
if (!digitalRead(BP)) // test si BP appuyé
{
for (;i<255;i++) // i varie de 1 à 255
{
analogWrite(led,i); // génère une impulsion sur la broche de largeur i => la luminosité augmente
delay(10); // pause de 10 ms entre chaque pas
}
for (;i>0;i--) // i varie de 1 à 255
{
analogWrite(led,i); // génère une impulsion sur la broche de largeur i => la luminosité augmente
delay(10); // pause de 10 ms entre chaque pas
}
}
}
Le programme suivant a strictement la même fonctionnalité en utilisant la boucle while
/*
Ce programme allume puis éteint progressivement une LED branchée sur la broche 3
lorsque le bouton poussoir est appuyé en utilisant la boucle While
*/
int BP = 2; // broche du bouton poussoir
int led = 3; // broche de la LED
int i = 0; // variable de la boucle for
void setup() // setup est déroulé une seule fois après la remise à zéro
{
pinMode(led, OUTPUT); // la broche led (3) est configuéeée en sortie
pinMode(BP, INPUT_PULLUP); // la broche BP (3) est configuréée en entrée avec résistance de tirage au +
}
void loop() // loop est déroulé indéfiniment
{
while (!digitalRead(BP)) // exécute la boucle tant que BP est appuyé
{
for (;i<255;i++) // i varie de 1 à 255
{
analogWrite(led,i); // génère une impulsion sur la broche de largeur i => la luminosité augmente
delay(10); // pause de 10 ms entre chaque pas
}
for (;i>0;i--) // i varie de 1 à 255
{
analogWrite(led,i); // génère une impulsion sur la broche de largeur i => la luminosité augmente
delay(10); // pause de 10 ms entre chaque pas
}
}
}