Warning: putenv() has been disabled for security reasons in /home/users4/d/debrouilloweb/www/wikidebrouillard/LocalSettings.php on line 193

Warning: putenv() has been disabled for security reasons in /home/users4/d/debrouilloweb/www/wikidebrouillard/LocalSettings.php on line 197

Warning: putenv() has been disabled for security reasons in /home/users4/d/debrouilloweb/www/wikidebrouillard/includes/parser/Parser.php on line 2338

Warning: putenv() has been disabled for security reasons in /home/users4/d/debrouilloweb/www/wikidebrouillard/includes/parser/Parser.php on line 2338

Warning: putenv() has been disabled for security reasons in /home/users4/d/debrouilloweb/www/wikidebrouillard/includes/parser/Parser.php on line 2338

Warning: putenv() has been disabled for security reasons in /home/users4/d/debrouilloweb/www/wikidebrouillard/includes/parser/Parser.php on line 2338

Warning: putenv() has been disabled for security reasons in /home/users4/d/debrouilloweb/www/wikidebrouillard/includes/parser/Parser.php on line 2338

Warning: putenv() has been disabled for security reasons in /home/users4/d/debrouilloweb/www/wikidebrouillard/includes/parser/Parser.php on line 2338
[ Wikidébrouillard ] Ping lumineux piloté par Arduino.

Ping lumineux piloté par Arduino.

De Wikidebrouillard.

(Le Code)
Ligne 20 : Ligne 20 :
===Le Code===
===Le Code===
// definition des pins
// definition des pins
 +
 +
int led1 = 8;
int led1 = 8;
int led2 = 12;
int led2 = 12;
Ligne 27 : Ligne 29 :
// Fonction de setup, affectations en entree ou sortie des pins I/O
// Fonction de setup, affectations en entree ou sortie des pins I/O
 +
 +
void setup() {  
void setup() {  
   pinMode(led1, OUTPUT);   
   pinMode(led1, OUTPUT);   
Ligne 38 : Ligne 42 :
correspondant au temps d'attente en millisecondes entre chaque
correspondant au temps d'attente en millisecondes entre chaque
decalage de led */
decalage de led */
 +
void chenillard(int tempo)
void chenillard(int tempo)
{
{
Ligne 72 : Ligne 77 :
// declaration initalisation des variables internes compteur et temps.
// declaration initalisation des variables internes compteur et temps.
-
  unsigned int ctr=0, time=0;
 
 +
 +
  unsigned int ctr=0, time=0;
Ligne 80 : Ligne 86 :
void loop() {
void loop() {
-
// EMMISION ECHO
+
/* EMMISION ECHO
-
/* Tant que le capteur ne retoune pas d'echo, on envoie une trame  
+
Tant que le capteur ne retoune pas d'echo, on envoie une trame  
d'ultrasons toutes les 65ms, un intervalle inferieur causerai des  
d'ultrasons toutes les 65ms, un intervalle inferieur causerai des  
interferences entres deux trames successives */
interferences entres deux trames successives */

Version du 14 janvier 2014 à 16:55

Article incomplet en cours de rédaction
Modèle:Vidéo

Sommaire

Présentation du projet Arduino

Évaluation de la distance entre un obstacle et le capteur a ultrason.

Liste du matériel

réalisation du projet

Explication

Schéma Fritzing

Le Code

// definition des pins


int led1 = 8; int led2 = 12; int led3 = 13; int commande = 7; int echo = 4;

// Fonction de setup, affectations en entree ou sortie des pins I/O


void setup() {

 pinMode(led1, OUTPUT);  
 pinMode(led2, OUTPUT);
 pinMode(led3, OUTPUT);
 pinMode(commande, OUTPUT);
 pinMode(echo, INPUT);

}

/* Fonction de chenillard, parametrable en rentrant un entier correspondant au temps d'attente en millisecondes entre chaque decalage de led */

void chenillard(int tempo) {

   unsigned int cheni=0;
   do
   {
   if(cheni==0)
   {
       digitalWrite(led1, LOW); 
       digitalWrite(led2, HIGH); 
       digitalWrite(led3, HIGH); 
   }else if(cheni==1)
   {
       digitalWrite(led1, HIGH); 
       digitalWrite(led2, LOW); 
       digitalWrite(led3, HIGH);
   }else if(cheni==2)
   {
       digitalWrite(led1, HIGH); 
       digitalWrite(led2, HIGH); 
       digitalWrite(led3, LOW);
       
   }
   delay(tempo);
   cheni++;
   }while(cheni!=3);

}


// ******* MAIN *******


// declaration initalisation des variables internes compteur et temps.


 unsigned int ctr=0, time=0;


// Tache de fond

void loop() {

/* EMMISION ECHO

Tant que le capteur ne retoune pas d'echo, on envoie une trame 

d'ultrasons toutes les 65ms, un intervalle inferieur causerai des interferences entres deux trames successives */

 while(digitalRead(echo)==LOW)		
 {
   if(time==65) //emmission test toutes les 65ms
               {
                   digitalWrite(commande, HIGH); 
                   delay(1); //impulsion 1 ms
                   digitalWrite(commande, LOW); 
                   time=0;
               }
           else
               {
                   time++;
                   delay(1);
               }
 }
 

// CALCUL TEMPS ECHO EN MS /*Comptage des millisecondes durant lesquelles le signal d'echo reste a l'etat haut. C'est l'image du temps que mets la trame d'ultrasons pour faire l'aller-retour entre l'emetteur/capteur et l'obstacle */

  if(digitalRead(echo)==HIGH)
           {
                while(digitalRead(echo)==HIGH)
                  {
                   ctr++;
                   delay(1);
                  }
           }
           

/* En fonction du temps d'echo, donc de la distance de l'objet, affichage de différentes combinaisons avec les leds, actives sur etat bas : digitalWrite(led,LOW) allume la led */

           if(ctr<=1) // affichage pour 0 ou 1ms
           {
               chenillard(70);
           }
           else if((ctr>1)&&(ctr<=2)) //affichage pour 2ms
           {
               chenillard(200);
           }else if((ctr>2)&&(ctr<=3)) //affichage pour 3ms
           {
               digitalWrite(led1,LOW); 
               digitalWrite(led2, LOW); 
               digitalWrite(led3, LOW);
           }
           else if((ctr>3) && (ctr<=4)) //affichage pour 4ms
           {
               digitalWrite(led1, LOW); 
               digitalWrite(led2, LOW); 
               digitalWrite(led3, HIGH);
           }
           else if((ctr>4) && (ctr<=5)) //affichage pour 5ms
           {
               digitalWrite(led1, LOW); 
               digitalWrite(led2, HIGH); 
               digitalWrite(led3, HIGH);
           }else if(ctr>5) // //affichage pour plus de 5ms
           {
               digitalWrite(led1, HIGH); 
               digitalWrite(led2, HIGH); 
               digitalWrite(led3, HIGH);
           }
           
           ctr=0; // initialistation compteur pour mesure suivante

}

Liens avec d'autres projets arduino

chercher ici : http://wikidebrouillard.org/index.php/Catégorie:Arduino

Pour aller plus loin

Liens avec le quotidien

quelles peuvent être les applications technologiques de ce montage, ou est-ce qu'on retrouve des programmes qui y ressemble ?
Portail des ExplorateursWikidébrouillardLéon DitFLOGPhoto mystèreJ'ai FaitPortraits
FI

Ping lumineux piloté par Arduino.

Rechercher

Page Discussion Historique
Powered by MediaWiki
Creative Commons - Paternite Partage a l

© Graphisme : Les Petits Débrouillards Grand Ouest (Patrice Guinche - Jessica Romero) | Développement web : Libre Informatique