Étape 6: Arduino Code
#define echoPin 6 / / il s’agit de l’axe de l’écho
#define triggerPin 7 / / il s’agit de l’ergot de
#include
int t/mn = 120 ; Établit les révolutions - par - Minute du moteur
int détection = 15 ; Définit la distance à laquelle le moteur s’active
int stride = 50 ; Définit le nombre de mesures que prendra le Stepper Motor
const int stepsPerRevolution = 200 ; Le nombre d’étapes requises pour l’arbre du moteur faire un tour complet.
int i = 0 ; indice pour remplir le tableau de données
int j = 1 ; indice pour le déplacement de valeurs de données et calcul de moyenne mobile
int dataset = 10 ; Longueur du tableau de données en cours d’exécution
limite d’int =(dataset-1) ; compenser pour l’indexation
int Full = 0 ; Permet d’établir des modes de traitement.
pour votre moteur
initialiser la bibliothèque de moteurs pas à pas sur les broches 8 à 11 :
Stepper myStepper (stepsPerRevolution, 8, 11, 12, 13) ; Instance de la classe de Stepper
int DataCollection [10] = {0,0,0,0,0,0,0,0,0,0} ; Tableau vide de données où les valeurs seront recueillies
void setup() {}
MOTEUR
pinMode(9,OUTPUT) ;
pinMode(10,OUTPUT) ;
CAPTEUR DE PROXIMITÉ
Serial.Begin (115 200 bauds); //start communication série
pinMode (echoPin, entrée) ;
pinMode (triggerPin, sortie) ;
}
void loop() {}
CAPTEUR DE PROXIMITÉ
digitalWrite (triggerPin, HIGH) ; faire une impulsion 10usec
delayMicroseconds(10) ; NE pas cette modification, clé pour maintenir la fréquence à laquelle les données sont collectées
digitalWrite (triggerPin, basse) ;
distance de l’int = pulseIn(echoPin,HIGH) ; Collecte de données
distance = abs(distance/58) ; Fréquence, converti en unités de distance [cm]
Si (Full == 1) {/ / traitement une fois données tableau de données sont remplies de points de données
DataCollection [0] = distance ; Nouvelle valeur de données est placé sur la première cellule du tableau
int Save= DataCollection [0] ; Porte-endroit variable de la nouvelle valeur de données
pour (j = 1; j
int Hold = DataCollection [j] ;
DataCollection [j] =sauver; Porte-Place variable de valeur de données précédente
Enregistrer= attente ; Transfert de valeur entre les Variables porte-Place
}
int somme = 0 ; Variable pour calculer la moyenne de tableau de données
pour (j = 0; j < = limite; j ++) {/ / pour la boucle pour créer somme des valeurs de données
Somme = somme + DataCollection [j] ;
}
int moyenne = somme/dataset; Calcule la moyenne des cours tableau de données
Serial.Print ("la distance moyenne est:") ; Affiche lectures
Serial.Print((Average),DEC); / / envoyer la mesure aux série //Displays lectures
Serial.println ("cm") ;
Si ( moyen < = détection) {}
digitalWrite(9,HIGH) ;
digitalWrite(10,HIGH) ;
myStepper.setSpeed(RPM) ;
myStepper.step(stride) ;
} else if(Average > Detection) {}
digitalWrite(9,LOW) ;
digitalWrite(10,LOW) ;
}
}
Si (Full == 0) {}
DataCollection [i] = distance ;
i ++ ;
{if(i==DataSet)}
Full = 1 ;
}
}
}