Stap 6: Arduino Code
#define echoPin 6 / / dit is de echo-pin
#define triggerPin 7 / / dit is de trigger-pin
#include
int RPM = 120; Stelt de revoluties - Per - minuut van Motor
int detectie = 15; Definieert de afstand waarop de motor zal activeren
int stride = 50; Hiermee stelt u het aantal stappen de Stepper Motor vindt
Const int stepsPerRevolution = 200; Het aantal stappen die nodig zijn voor de motor de schacht te maken van een volledige revolutie.
int i = 0; index voor het vullen van de Data Array
int j = 1; index voor verschuiving van gegevenswaarden en het berekenen van lopende gemiddelde
int dataset = 10; Lengte van lopende gegevens array
int limiet =(dataset-1); compenseren voor het indexeren
int volledig = 0; Gebruikt om de verwerking modi.
voor uw motor
de stepper-bibliotheek op pennen 8 t/m 11 initialiseren:
Stepper-myStepper (stepsPerRevolution, 8, 11, 12, 13); Instantie van de klasse Stepper
int DataCollection [10] = {0,0,0,0,0,0,0,0,0,0}; Lege Data matrix waar de waarden zullen worden verzameld
VOID Setup {}
MOTOR
pinMode(9,OUTPUT);
pinMode(10,OUTPUT);
NABIJHEIDSSENSOR
Serial.begin (115200); //start seriële communicatie
pinMode (echoPin, INPUT);
pinMode (triggerPin, OUTPUT);
}
void loop {}
NABIJHEIDSSENSOR
digitalWrite (triggerPin, hoge); maken van een 10usec-pulse
delayMicroseconds(10); DOEN niet wijzigen deze, sleutel tarief waarop gegevens worden verzameld te handhaven
digitalWrite (triggerPin, laag);
int afstand = pulseIn(echoPin,HIGH); Gegevensverzameling
afstand = abs(distance/58); Frequentie omgezet in eenheden van afstand [cm]
Als (volledige == 1) {/ / gegevensverwerking eenmaal Data Array is gevuld met gegevenspunten
DataCollection [0] = afstand; Nieuwe gegevenswaarde wordt geplaatst op de eerste cel van de matrix
int Opslaan= DataCollection [0]; Variabele Place-Holder van nieuwe gegevenswaarde
voor (j = 1; j
int Hold = DataCollection [j];
DataCollection [j] =Opslaan; Variabele Place-Holder van vorige gegevenswaarde
Opslaan= houden; Overdracht van waarde tussen Place-Holder variabelen
}
int som = 0; Variabele voor het berekenen van gegevens Array gemiddelde
voor (j = 0; j < = maximaal; j ++) {/ / lus voor maken van som van de waarden van de gegevens
Som = som + DataCollection [j];
}
int gemiddelde som/dataset =; Berekent het gemiddelde van de huidige Data Array
Serial.Print ("de gemiddelde afstand is:"); Geeft lezingen
Serial.Print((Average),DEC); / / de meting verzenden de seriële monitor //Displays lezingen
Serial.println ("cm");
Als ( gemiddelde < = detectie) {}
digitalWrite(9,HIGH);
digitalWrite(10,HIGH);
myStepper.setSpeed(RPM);
myStepper.step(stride);
} else if(Average > Detection) {}
digitalWrite(9,LOW);
digitalWrite(10,LOW);
}
}
Als (volledige == 0) {}
DataCollection [i] = afstand;
i ++;
if(i==dataset) {}
Volledige = 1;
}
}
}