Les Entrées/Sorties
De Wiki L.A.B
Révision de 3 janvier 2016 à 12:33 par Nedseb (discussion | contributions)
Sommaire
Faire clignoter une LED
Matériel
- Arduino Uno
- Plaque d'essai (breadbord)
- LED
- 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 fait clignoter une LED branchée sur la broche 12
*/
#define led 12 // la led est branchée sur la broche 12
void setup() // setup est déroulé une seule fois après la remise à zéro
{
pinMode(led, OUTPUT); // la broche led (12) est initialisée en sortie
}
void loop() // loop est déroulé indéfiniment
{
digitalWrite(led, HIGH); // allume la LED
delay(500); // attente de 1/2 seconde
digitalWrite(led, LOW); // éteint la LED
delay(500); // attente de 1/2 seconde
}
Commander plusieurs LED (Chenillard)
Matériel
- Arduino Uno
- Plaque d'essai (breadbord)
- 4 LED
- 4 Résistances 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 met en oeuvre un chenillard de 4 LED
*/
#define led1 2 // led1 branchée sur la broche 2
#define led2 3 // led2 branchée sur la broche 3
#define led3 4 // led3 branchée sur la broche 4
#define led4 5 // led4 branchée sur la broche 5
void setup() // setup est déroulé une seule fois après la remise à zéro
{
pinMode(led1, OUTPUT); // la broche led1 (2) est initialisée en sortie
pinMode(led2, OUTPUT); // la broche led2 (3) est initialisée en sortie
pinMode(led3, OUTPUT); // la broche led3 (4) est initialisée en sortie
pinMode(led4, OUTPUT); // la broche led4 (5) est initialisée en sortie
}
void loop() // loop est déroulé indéfiniment
{
digitalWrite(led1, HIGH); // allume la LED1 on aurait aussi pu écrire 1 à la place de HIGH
digitalWrite(led2, LOW); // éteint la LED2 on aurait aussi pu écrire 0 à la place de LOW
digitalWrite(led3, LOW); // éteint la LED3
digitalWrite(led4, LOW); // éteint la LED4
delay(500); // attente de 1/2 seconde
digitalWrite(led1, LOW); // éteint la LED1
digitalWrite(led2, HIGH); // allume la LED2
digitalWrite(led3, LOW); // éteint la LED3
digitalWrite(led4, LOW); // éteint la LED4
delay(500); // attente de 1/2 seconde
digitalWrite(led1, LOW); // éteint la LED1
digitalWrite(led2, LOW); // éteint la LED2
digitalWrite(led3, HIGH); // allume la LED3
digitalWrite(led4, LOW); // éteint la LED4
delay(500); // attente de 1/2 seconde
digitalWrite(led1, LOW); // éteint la LED1
digitalWrite(led2, LOW); // éteint la LED2
digitalWrite(led3, LOW); // éteint la LED3
digitalWrite(led4, HIGH); // allume la LED4
delay(500); // attente de 1/2 seconde
}
Une autre manière de faire la même chose en utilisant une fonction
/*
Ce programme met en oeuvre un chenillard de 4 LED
*/
#define led1 2 // led1 branchée sur la broche 2
#define led2 3 // led2 branchée sur la broche 3
#define led3 4 // led3 branchée sur la broche 4
#define led4 5 // led4 branchée sur la broche 5
/*
La fonction LED permet de commander les 4 LED :
HIGH ou 1 = LED allumée
LOW ou 0 = LED éteinte
Pendant une certaine durée, les 5 paramètres passés sont :
état de la led1, état de la led2, état de la led3, état de la led4, durée
*/
void LED(int L1,int L2,int L3,int L4,int duree)
{
digitalWrite(led1, L1); // écriture du niveau L1 sur la broche led1
digitalWrite(led2, L2); // écriture du niveau L2 sur la broche led2
digitalWrite(led3, L3); // écriture du niveau L3 sur la broche led3
digitalWrite(led4, L4); // écriture du niveau L4 sur la broche led4
delay(duree); // attente de (duree) milli secondes
}
void setup() // setup est déroulé une seule fois après la remise à zéro
{
pinMode(led1, OUTPUT); // la broche led1 (2) est initialisée en sortie
pinMode(led2, OUTPUT); // la broche led2 (3) est initialisée en sortie
pinMode(led3, OUTPUT); // la broche led3 (4) est initialisée en sortie
pinMode(led4, OUTPUT); // la broche led4 (5) est initialisée en sortie
}
void loop() // loop est déroulé indéfiniment
{
LED (1,0,0,0,500);
LED (0,1,0,0,500);
LED (0,0,1,0,500);
LED (0,0,0,1,500);
}
Modifier l'intensité lumineuse d'une LED
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
*/
# define led 3 // broche de la LED
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 (int 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
}
}
}
Mettre en œuvre une LED RGB
Matériel
- Arduino Uno
- Plaque d'essai (breadbord)
- LED RGB Cathodes communes
- 3 Résistances 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 RGB cathodes communes branchée sur les broches 3,5 et 6
*/
int ledR = 3; // broche de la LED Rouge
int ledG = 5; // broche de la LED Verte
int ledB = 6; // broche de la LED Bleue
int i = 0; // variable de la boucle for
void setup() // setup est déroulé une seule fois après la remise à zéro
{
pinMode(ledR, OUTPUT); // la broche led (3) est initialisée en sortie
pinMode(ledG, OUTPUT); // la broche led (5) est initialisée en sortie
pinMode(ledB, OUTPUT); // la broche led (6) 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(ledR,i); // génère une impulsion sur la broche de largeur i => la luminosité R augmente
delay(20); // pause de 20 ms entre chaque pas
}
digitalWrite (ledR,LOW);
for (i=0; i<=255;i++) // i varie de 1 à 255
{
analogWrite(ledG,i); // génère une impulsion sur la broche de largeur i => la luminosité G augmente
delay(20); // pause de 20 ms entre chaque pas
}
digitalWrite (ledG,LOW);
for (i=0; i<=255;i++) // i varie de 1 à 255
{
analogWrite(ledB,i); // génère une impulsion sur la broche de largeur i => la luminosité B augmente
delay(20); // pause de 20 ms entre chaque pas
}
digitalWrite (ledB,LOW);
for (i=0; i<=255;i++) // i varie de 1 à 255
{
analogWrite(ledR,i); // génère une impulsion sur la broche de largeur i => la luminosité R augmente
analogWrite(ledG,i); // génère une impulsion sur la broche de largeur i => la luminosité G augmente
analogWrite(ledB,i); // génère une impulsion sur la broche de largeur i => la luminosité B augmente
delay(20); // pause de 20 ms entre chaque pas
}
digitalWrite (ledR,LOW);
digitalWrite (ledG,LOW);
digitalWrite (ledB,LOW);
}