Les Entrées/Sorties

De Wiki L.A.B
Révision de 15 décembre 2015 à 12:13 par Adminsys (discussion | contributions) (Page créée avec « ==== Faire clignoter une LED ==== {{:Faire clignoter une LED}} ==== Commander plusieurs LED (Chenillard) ==== {{:Commander plusieurs LED (Chenillard)}} ==== Mo... »)

(diff) ← Version précédente | Voir la version courante (diff) | Version suivante → (diff)
Aller à : navigation, rechercher

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

Montage LED clignotante Montage LED clignotante

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

Montage Chenillard LED Montage Chenillard LED

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

Montage LED PWM Montage LED PWM

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

Montage LED PWM Montage LED PWM

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

Montage LED RGB Montage LED RGB

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);
}