Bonjour, j'ai un projet à faire en classe et je n'arrive pas à faire fonctionner mon programme correctement, j'ai fait un schéma pour expliquer ce que je dois faire.
Je mets mon code en dessous.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116 #include <Servo.h> //inclusion de la bibliothèque Servo #include <SoftwareSerial.h> //inclusion de la bibliothèque SoftwareSerial Servo monServomoteur; //crée un objet servo pour contrôler le servomoteur SoftwareSerial xbee(2, 3); //émission and réception const int IN1 = 4; //variable qui envoie et reçoit les informations entre le pont H et l'Arduino const int IN2 = 5; //variable qui envoie et reçoit les informations entre le pont H et l'Arduino const int microrupteur1 = 9; //le microrupteur est connecté à la broche 9 de la carte Arduino const int microrupteur2 = 10; //le microrupteur est connecté à la broche 10 de la carte Arduino String statut_livraison = "+304"; //met la valeur "+304" dans statut_livraison String statut_devant_quai = "&404"; //met la valeur "&404" dans statut_devant_quai long temps; void setup() { Serial.begin(9600); //régle le débit de données du Arduino Serial.println("arduino commence à envoyer des données via XBee"); Serial.begin(9600); //régle le débit de données des capteurs IR Serial.println("capteur IR"); pinMode (11,INPUT); //définit le pin 11 comme entrée du capteur IR 1 pinMode (12,INPUT); //définit le pin 12 comme entrée du capteur IR 2 pinMode (13,INPUT); //définit le pin 13 comme entrée du capteur IR 3 pinMode(microrupteur1, INPUT); //définit le pin 9 comme entrée pour le microrupteur pinMode(microrupteur2, INPUT); //définit le pin 10 comme entrée pour le microrupteur pinMode(IN1,OUTPUT); //définit IN1 comme sortie de commande du moteur pinMode(IN2,OUTPUT); //définit IN2 comme sortie de commande du moteur monServomoteur.attach(6); //rattache le servomoteur au pin 6 temps = millis(); } void loop() { int ir1 = digitalRead(11); //la variable ir1 lit ce que le capteur IR 1 reçoit delay(50); //tous les 50 millisecondes int ir2 = digitalRead(12); //la variable ir2 lit ce que le capteur IR 2 reçoit delay(50); //tous les 50 millisecondes int ir3 = digitalRead(13); //la variable ir3 lit ce que le capteur IR 3 reçoit delay(50); //tous les 50 millisecondes int etatMicrorupteur1 = digitalRead(microrupteur1); int etatMicrorupteur2 = digitalRead(microrupteur2); //*présence du drone*\\ if(ir1==0) //le drone est devant le quai { statut_devant_quai = "&400"; //met la valeur "&400" dans statut_devant_quai Serial.println(statut_devant_quai); xbee.print(statut_devant_quai); //envoie la valeur via xBee } if(ir1==1) //le drone est introuvable { Serial.println(statut_devant_quai); xbee.print(statut_devant_quai); //envoie la valeur via xBee } //*aller*\\ if(ir2==0) //si le capteur IR 2 détecte le drone { //mettre code pour arrêter la caméra pixy if((millis() - temps) > 15) { monServomoteur.write(90); //écrit (dire) la position du servomoteur } while(etatMicrorupteur2==LOW) //tant que le bouton n'est pas actionné { digitalWrite(IN1,HIGH); //moteur tourne dans le sens horaire } } //*présence du colis*\\ if(ir3==0) //passage du colis { statut_livraison = "+300"; //met la valeur "+300" dans statut_livraison Serial.println(statut_livraison); xbee.print(statut_livraison); //envoie la valeur via xBee } if(ir3==1) //vide { Serial.println(statut_livraison); xbee.print(statut_livraison); //envoie la valeur via xBee } //*retour*\\ if(ir3==0) //si le capteur IR 3 est actionné { digitalWrite(IN2,HIGH); //moteur tourne dans le sens antihoraire if(etatMicrorupteur1==HIGH) //si le microrupteur1 est actionné { digitalWrite(IN2,LOW); //coupe le moteur } if((millis() - temps) > 15) { monServomoteur.write(90); //écrit (dire) la position du servomoteur } } }
Partager