Étape 3: La durée Code !
J’ai aussi ajouté un signal sonore retentira à ce projet, si vous voulez « entendre » la distance.
Capteur de proximité simple à l’aide d’infrarouge
Description : Mesurer la distance d’un obstacle à l’aide de la lumière infrarouge émise par la LED IR et
lire la valeur avec une photodiode IR. L’exactitude n’est pas parfait, mais fonctionne grand
avec les projets mineurs.
Auteur : Ricardo Ouvina
Date : 10/01/2012
Version : 1.0
int IRpin = A0 ; Photodiode IR sur broche analogique A0
int IRemitter = 2 ; Émetteur IR LED sur la broche numérique 2
int ambientIR ; variable pour stocker la IR venant de la température ambiante
int obstacleIR ; variable pour stocker la IR provenant de l’objet
valeur int [10] ; variable pour stocker les valeurs IR
distance de l’int ; variable qui dira s’il y a un obstacle ou pas
void setup() {}
Serial.Begin(9600) ; l’initialisation du Serial monitor
pinMode(IRemitter,OUTPUT) ; Émetteur IR LED sur la broche numérique 2
digitalWrite(IRemitter,LOW); / / setup IR LED comme off
pinMode(11,OUTPUT) ; vibreur dans la broche numérique 11
}
void loop() {}
distance = readIR(5) ; appeler la fonction qui va lire la distance et la « précision » en lui transmettant
Serial.println(distance) ; écrit la valeur lue sur Serial monitor
buzzer() ; Décommentez pour activer la fonction d’avertisseur sonore
}
int readIR (int fois) {}
pour (int x = 0; x < fois; x ++) {}
digitalWrite(IRemitter,LOW) ; éteindre les LEDs IR lire le IR venant de la température ambiante
Delay(1) ; délai minimal nécessaire pour lire les valeurs
ambientIR = analogRead(IRpin) ; stockage des IR venant de la température ambiante
digitalWrite(IRemitter,HIGH) ; allumer les LEDs IR lire le IR venant de l’obstacle
Delay(1) ; délai minimal nécessaire pour lire les valeurs
obstacleIR = analogRead(IRpin) ; stockage des IR venant de l’obstacle
valeur [x] = ambientIR-obstacleIR ; calcul des changements de valeurs IR et le stocker pour future moyenne
}
pour (int x = 0; x < fois; x ++) {/ / calcul de la moyenne basée sur la « précision »
valeur de += distance [x] ;
}
Return(distance/Times) ; retourne la valeur finale
}
--Fonction de sonner une alarme audible mesures--/ /
void buzzer() {}
Si (distance > 1) {}
if(distance>100) {/ / son continu si l’obstacle est trop proche
digitalWrite(11,HIGH) ;
}
else {/ / bips plus vite quand un obstacle s’approche
digitalWrite(11,HIGH) ;
Delay(150-distance) ; ajuster cette valeur pour votre confort
digitalWrite(11,LOW) ;
Delay(150-distance) ; ajuster cette valeur pour votre confort
}
}
else {/ / off si il n’y a aucun obstacle
digitalWrite(11,LOW) ;
}
}
Bien sûr, vous pouvez modifier pour l’adapter à votre propre projet. Vous pouvez par exemple faire un robot change de direction ou vitesse basée sur la distance de lecture du capteur IR.