Étape 4: Étape 4
Le code utilisé pour cela, j’ai trouvé principalement en ligne, mais j’ai dû ruser un peu pour le rendre plus stable. Il y a quelque valeur ajustent pour vérifier qu’il fonctionne pour votre besoin et l’espace.Je recherche "distance = pulseTime", sa valeur par défaut est de 58, mais je voudrais jouer avec lui entre 20 et 70 selon votre espace et quelle est la fiabilité du capteur à ultrasons est.
CODE
const int numOfReadings = 1 ; nombre de lectures de prendre / d’éléments dans le tableau
int lectures [numOfReadings] ; stocke les valeurs de distance dans un tableau
arrayIndex int = 0 ; arrayIndex de l’élément actuel dans le tableau
total int = 0 ; stocke le total cumulé
int averageDistance = 0 ; stocke la valeur moyenne
goupilles de réglage et de variables pour appareil sonar DYP-ME007
int echoPin = 7 ; Broche d’echo DYP-ME007 (digital 2)
int initPin = 8 ; Ergot de DYP-ME007 (digital 3)
unsigned long pulseTime = 0 ; stocke le pouls en Micro secondes
unsigned long-distance = 0 ; variable pour stocker la distance (cm)
le programme d’installation broches/valeurs pour LED
int LEDPin = 6 ; CONDUIT, connecté au numérique PWMpin 6
int LEDValue = 0 ; stocke la valeur de luminosité de la LED (0 = entièrement éteint, 255 = complètement)
programme d’installation
void setup() {}
pinMode (LEDPin, sortie) ; ensembles de broche 6 en sortie
pinMode (initPin, sortie) ; la valeur init pin 8 en sortie
pinMode (echoPin, entrée) ; la valeur de broche echo 7 comme entrée
créer tableau boucle pour itérer sur chaque élément du tableau
pour (int thisReading = 0; thisReading < numOfReadings ; thisReading ++) {}
lectures [thisReading] = 0 ;
}
initialiser le port série, vous permet de visualiser la
distances étant possible si connecté à l’ordinateur
Serial.Begin(9600) ;
}
exécuter
void loop() {}
digitalWrite (initPin, HIGH) ; Envoyer 10 impulsions microseconde
delayMicroseconds(0) ; attendre 10 microsecondes avant de s’éteindre
digitalWrite (initPin, basse) ; cesser d’envoyer des impulsions
pulseTime = pulseIn (echoPin, HIGH) ; Recherchez une impulsion de retour, il devrait être élevé comme le pouls va très haut-bas
distance = pulseTime/58 ; Distance = pulsée / 58 pour convertir en cm.
Total = total - lectures [arrayIndex] ; soustraire la distance dernière
lectures [arrayIndex] = distance ; Ajoutez la distance de lecture au tableau
Total = total + lectures [arrayIndex] ; Ajouter la lecture au total
arrayIndex = arrayIndex + 1 ; aller à l’élément suivant dans le tableau
À la fin du tableau (10 éléments) puis recommencer
Si (arrayIndex > = numOfReadings) {}
arrayIndex = 0 ;
}
averageDistance = total / numOfReadings ; calculer la distance moyenne
Si la distance est inférieure à 255cm puis modifiez la luminosité de la LED
Si {(averageDistance < 255)
LEDValue = 255 - averageDistance ; autrement dit, la plus petite à la distance de la brighterthe LED.
}
analogWrite (LEDPin, LEDValue) ; Écrire la valeur actuelle aux broches de la LED
Serial.println (averageDistance, DEC) ; imprimer la distance moyenne au débogueur
Delay(500) ; attendre 100 milli secondes avant une boucle à nouveau
}