Trieur M&M's : Différence entre versions

De Les Fabriques du Ponant
Aller à : navigation, rechercher
(membres de l'équipe)
(membres de l'équipe)
Ligne 11 : Ligne 11 :
 
[[ Fichier:TrieurM&M.pdf ‎]]
 
[[ Fichier:TrieurM&M.pdf ‎]]
 
[[catégorie:enib2018]]
 
[[catégorie:enib2018]]
 +
 +
<code>
 +
#include<Servo.h>
 +
Servo Tservo;
 +
Servo Bservo;
 +
//La déclaration de 4 variable entier 
 +
int color,R,G,B;
 +
void setup(){
 +
  pinMode(2,OUTPUT);//cette fonction definie la pile numero 2 comme sortie
 +
  pinMode(3,OUTPUT);//cette fonction definie la pile numero 3 comme sortie
 +
  pinMode(4,OUTPUT);//cette fonction definie la pile numero 4 comme sortie
 +
  Tservo.attach(8);
 +
  Bservo.attach(9);
 +
  Serial.begin(9600);
 +
}
 +
 +
void loop(){
 +
  Bservo.write(0);
 +
  Tservo.write(95);
 +
  delay(2500);
 +
 
 +
  for(int i = 95; i > 20; i--) {
 +
    Tservo.write(i);
 +
    delay(2);
 +
  }
 +
  delay(300);
 +
  color=getcolor();
 +
  switch (color) {
 +
    case 1:
 +
  {
 +
    Bservo.write(45);
 +
    break;
 +
    }
 +
    case 2:
 +
  {
 +
    Bservo.write(90);
 +
    break;
 +
    }
 +
    case 3:
 +
  {
 +
    Bservo.write(0);
 +
    break;
 +
    }
 +
    default:
 +
    break;
 +
  }
 +
  delay(300);
 +
 
 +
  for(int i = 20; i > 0; i--) {
 +
    Tservo.write(i);
 +
    delay(2);
 +
  }
 +
  delay(1000);
 +
 
 +
  for(int i = 20; i < 95; i++) {
 +
    Tservo.write(i);
 +
    delay(2);
 +
  }
 +
  color=0;
 +
}
 +
//definir une fonction qui récupère les valeurs de tension des couleurs
 +
int getcolor(){
 +
digitalWrite(2,HIGH);
 +
delay(2000);
 +
Serial.println("R = ");
 +
Serial.println(analogRead(0));
 +
//La fonction analogRead permet de lire la tension de couleur ,par defaut la plus grande tension c'est celle de rouge puis de vert ,puis de bleau
 +
R=analogRead(0);
 +
digitalWrite(2,LOW);
 +
digitalWrite(3,HIGH);//cette fonction ca sort le courant de 5 v sur la pile 4
 +
delay(2000);
 +
Serial.println("G = ");
 +
Serial.println(analogRead(0));
 +
G=analogRead(0);//
 +
//la fonction digitalwrite c'est pour ecrire sur une sortie numérique
 +
digitalWrite(3,LOW);//envoyer un courant de 0 v
 +
digitalWrite(4,HIGH);//alors ca sort le courant de 5 v sur la pile 4
 +
delay(2000);//cette fonction delay permet d'attendre pendant 2000ms
 +
Serial.println("B = ");
 +
Serial.println(analogRead(0));
 +
B=analogRead(0);
 +
digitalWrite(4,LOW);
 +
delay(50);
 +
//faire un test sur les valeur de tension des couleurs
 +
if(R>B && R>G)
 +
{color=1;return color;}
 +
if(G>R && G>B)
 +
{color=2;return color;}
 +
if(B>R && B>G)
 +
{color=3;return color;}
 +
}
 +
 +
 +
</code>

Version du 19 janvier 2018 à 17:09

robot trieur smarties

pédagogie

manipuler les outils éléctronique

membres de l'équipe

  • Najib CHAOUI
  • Naoufal LAABID
  • Dalal EL ADBI
  • Amine EL MAMSAOUI
  • Mohamed Amine EL AARAJE

Fichier:TrieurM&M.pdf

  1. include<Servo.h>

Servo Tservo; Servo Bservo; //La déclaration de 4 variable entier int color,R,G,B; void setup(){

 pinMode(2,OUTPUT);//cette fonction definie la pile numero 2 comme sortie 
 pinMode(3,OUTPUT);//cette fonction definie la pile numero 3 comme sortie 
 pinMode(4,OUTPUT);//cette fonction definie la pile numero 4 comme sortie 
 Tservo.attach(8);
 Bservo.attach(9);
 Serial.begin(9600);

}

void loop(){

 Bservo.write(0);
 Tservo.write(95);
 delay(2500);
 
 for(int i = 95; i > 20; i--) {
   Tservo.write(i);
   delay(2);
 }
 delay(300);
 color=getcolor();
 switch (color) {
   case 1:
  { 
   Bservo.write(45);
   break;
   }
   case 2:
  { 
   Bservo.write(90);
   break;
   }
   case 3:
  { 
   Bservo.write(0);
   break;
   }
   default:
   break;
 }
 delay(300);
 
 for(int i = 20; i > 0; i--) {
   Tservo.write(i);
   delay(2);
 } 
 delay(1000);
 
 for(int i = 20; i < 95; i++) {
   Tservo.write(i);
   delay(2);
 }
 color=0;

} //definir une fonction qui récupère les valeurs de tension des couleurs int getcolor(){ digitalWrite(2,HIGH); delay(2000); Serial.println("R = "); Serial.println(analogRead(0)); //La fonction analogRead permet de lire la tension de couleur ,par defaut la plus grande tension c'est celle de rouge puis de vert ,puis de bleau R=analogRead(0); digitalWrite(2,LOW); digitalWrite(3,HIGH);//cette fonction ca sort le courant de 5 v sur la pile 4 delay(2000); Serial.println("G = "); Serial.println(analogRead(0)); G=analogRead(0);// //la fonction digitalwrite c'est pour ecrire sur une sortie numérique digitalWrite(3,LOW);//envoyer un courant de 0 v digitalWrite(4,HIGH);//alors ca sort le courant de 5 v sur la pile 4 delay(2000);//cette fonction delay permet d'attendre pendant 2000ms Serial.println("B = "); Serial.println(analogRead(0)); B=analogRead(0); digitalWrite(4,LOW); delay(50); //faire un test sur les valeur de tension des couleurs if(R>B && R>G) {color=1;return color;} if(G>R && G>B) {color=2;return color;} if(B>R && B>G) {color=3;return color;} }