Trieur M&M's : Différence entre versions
(→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
- 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;}
}