Voici les composant que j'ai mis pour cette réalisation.
Une carte Arduino , un servo moteur, un capteur
sharp , et un capteur ou ( détecteur ) de chaleur infrarouge et une
télécommande infrarouge , et deux ventilateur gamer pour ordinateur bureau.
Voila le code que j'ai réalisé:
Et voici se que donne les valeur sur le serial monitor du détecteur de chaleurs.
Est voici une photo de ma création:
Une carte Arduino , un servo moteur, un capteur
sharp , et un capteur ou ( détecteur ) de chaleur infrarouge et une
télécommande infrarouge , et deux ventilateur gamer pour ordinateur bureau.
Voila le code que j'ai réalisé:
- Code:
#include <IRremote.h>
#include <Servo.h>
Servo myservo; // créer un objet de servo pour contrôler un servomoteur
int RECV_PIN = 11; //récepteur infrarouge branché sur la broche 3 à 220ohm résistance
int capteur = 1; // broche 1 du capteur sharp
int val; // variable pour lire la valeur de la broche analogique
int position1; //servo position 1
int position2; //servo position 2
int position3; //servo position 3
int codeValue; //les code de la télécommande
int current; //conserver la trace de la position actuelle du servo
int buzzPin = 6; // Connexion Buzzer numérique Pin6
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup()
{
pinMode(buzzPin, OUTPUT);
Serial.begin(9600);// lancer un port série sur le serial monitor
irrecv.enableIRIn(); // Démarrer le récepteur
position1 = (1); //défaut servo positon 1
position2 = (2); //défaut servo position 2
position3 = (3); //défaut servo position 3
irrecv.enableIRIn(); // Démarrer le récepteur
myservo.attach(2); // attache le servo sur la broche 2
myservo.write(position1); //démarrer le servo sur la position 1
current = position3;
}
void loop() {
digitalWrite(buzzPin, HIGH);
digitalWrite(buzzPin, LOW);
Serial.println(results.value, DEC);
if (irrecv.decode(&results)) {
codeValue = results.value;
switch (codeValue) {
case 16580863:
val = analogRead(capteur);
val = map(val, 0, 115, 0, 300); // lit la valeur du capteur (valeur comprise entre 115 et 300)
myservo.write(val); // définit la position d'asservissement en fonction de la valeur à l'échelle
delay(100); // attend que le servo pour y arriver
if (val <= 115) // si on est à moins de quelque cm d'un obstacle
break;
case 16584943: // la touche fléche du bas de ma télécommande
myservo.write(position1);
current = position3;
break;
case 16613503:// la touche volume de ma télécommande rotation cou par cou par la gauche
current = 25; //servo se déplace à quelque degrés
if (current > 180) current = 0;
myservo.write(current);
break;
case 16617583:// la touche volume- de ma télécommande rotation cou par cou par la droite
current -= 25;//servo se déplace à quelque degrés
if (current < 0) current = 180;
myservo.write(current);
break;
case 16605343://touche recule rapide de ma télécommande
myservo.write(180); //servo se déplace sur tout le chemin à 180
current = 0;
break;
case 16589023://touche avance rapide droite de ma télécommande
myservo.write(0);
current = 180;
break;
case 16601263: // la touche fléche du haut de ma télécommande
int sensorValue = analogRead(1); // analogique 1, a 10k
while (sensorValue > 950) { //valeur peut être ajustée, 255 très sensible
sensorValue = analogRead(1); //lit la valeur du capteur à nouveau pour la boucle
}
myservo.write(position3);
current = position3;
myservo.write(position2);
current = position2;
myservo.write(position1); //servo se déplace en position 1
current = position1;
break;
}
irrecv.resume(); // Recevoir la prochaine valeur
}
}
// signer seb03000
Et voici se que donne les valeur sur le serial monitor du détecteur de chaleurs.
Est voici une photo de ma création: