Hur man ställer in en Pololu transportör med skarpa GP2Y0A60SZLF Analog avstånd Sensor (2 / 6 steg)
Steg 2: Få din kod redo för Arduino
Jag använde följande kod för att hämta värden från Arduino.
I koden beräknas ett medelvärde på 500 läsningar för att null-ner avvikare.
Du kan hämta följande .ino-fil nedan.
/*=========================================================
Infraröd kalibrering: skicka menar heltalsvärde till följetong
Skrivet av Tiago A. 21 Mar 2015
===========================================================
Hur du ansluter sensorn till Arduino:
sensor - arduino
VCC - 5V
GND - gnd
ut - A0
SV - Anslut inte
Genomgång:
Detta program har det enda syftet att kalibrera infraröd sensor.
Det beräknar medelvärdet av 500 värden för att närma dem till ett korrekt värde.
Jag använder denna teknik till null ned avvikare värdena.
Hur du använder:
Efter uppladdning detta program startar Arduino att skicka medelvärdet av avståndet genom den seriella porten.
Glöm inte att öppna den Serial Monitor i fliken verktyg (Ctrl + Skift + M)
Efter 500 avläsningar görs, en "RESET" sträng kommer skrivas ut samt LED ska blinka,
Detta är att tillåta användaren att veta när du ska flytta sensorn till en annan sträcka.
*/
lång sensorsum = 0;
int n = 1;
int medelvärde = 0;
int lastmean = 0;
Rutinen installationsprogrammet körs en gång när du trycker på reset:
void setup() {
Uppsättningar stift 13 för utdata för att blinkar LED:
pinMode (13, OUTPUT);
Initiera seriell kommunikation på 9600 bitar per sekund:
Serial.BEGIN(9600);
}
Loop rutinen körs för evigt om och om igen:
void loop() {
Läs input på analoga stift 0:
int sensorValue = analogRead(A0);
Beräkna medelvärdet av åtgärder för ett angivet avstånd för att jämna resultat och skapa en regressionslinje för avstånd efter
sensorsum = (sensorsum + sensorValue);
menar = (sensorsum / n);
n = n + 1.
om (n > 500) {
digitalWrite 13, hög.
Delay(250);
digitalWrite 13, låg.
Serial.println("-----RESET--------------------------------------------------------------------------------");
n = 1;
sensorsum = 0;
lastmean = medelvärde;
}
Ett "medelvärde" varierar hela slingan eftersom det isalways beräkna medelvärdet med Läs värden
"Sista betyder" värdet visar endast beräknade medelvärdet bara för att underlätta läsningen av det beräknade värdet
Serial.Print ("menar =");
Serial.Print(Mean);
Serial.Print ("senaste Mean =");
Serial.println(lastmean);
Delay(25);
}