Hur man gör en hjulet hastighet detektor med hjälp av en ljussensor. (4 / 5 steg)
Steg 4: Ladda upp din kod och få det fungera!
Spetsen på den andra bilden illustrerade reflektion på det blanka papperet i varje rotationsperiod. Jag räknade tiden mellan dessa spikar och få rotationshastigheten i hjulet.
På den tredje bilden, kan du se hastigheten på dina hjul i följetong monitor i Arduino programvara.
Om du har en Digital Tube, gå till nästa sida och kopiera att en.
/*************************************************************************
* Namn: Hastighet detektor.
* Författare: Sylvia
* Uppdaterad: Sylvia
* Datum: 3/13/2014
* Beskrivning: Jag använder en Makeblock Me-LightSensor för att göra en hjulet hastighet detektor.
Du kan ansluta denna mig-LightSensor till PORT_3, PORT_6, PORT_7, PORT_8 av mig-bottenplatta.
* Copyright (C) 2013 Maker fungerar Technology Co, Ltd Alla rättigheter reserverade.
* http://www.makeblock.cc/
**************************************************************************/
#include < Makeblock.h >
#include < Arduino.h >
#include < SoftwareSerial.h >
#include < Wire.h >
MeLightSensor lightSensor(PORT_6);
MeDCMotor motor1(M1);
uint8_t motorSpeed = 100;
int värde = 0; en variabel för den lightSensor värde
int count = 0;
int buff [3].
int summa = 0;
int omega.
statisk int matrix [3] = {-1,4, -1};
void setup()
{
initiera seriell kommunikation på 9600 bps
Serial.BEGIN(9600);
lightSensor.lightOn();
}
lång time0 = 0;
void loop()
{
värde = lightSensor.read();
motor1.Run(motorSpeed);
Läs lightSensor värdet:
buff [0] = buff [1].
buff [1] = buff [2].
buff [2] = värde;
summa = matrix [0] * buff [0] + matrix [1] * buff [1] + matrix [2] * buff [2];
Serial.println(Sum); avkommentera raden och kommentera de nästa 15 raderna om du vill se informationen i följetong diagram
IF(Sum >750)
{
greve ++;
lång t=millis();
långa deltaT = t-time0;
IF(deltaT>100)
{
Omega = 360000/deltaT;
Du kan använda Printf fuction om du lägger till "printf" biblioteket Print klass.
mer detaljer på http://playground.arduino.cc/Main/Printf#.UyE3NxSSz9F
Serial.Print(Omega);
Serial.println("rad/s");
}
time0 = t;
}
Delay(2);
}