Paso 4: Cargar el código y conseguir funcione!
El repunte en la segunda imagen ilustra la reflexión sobre el papel brillante en cada período de la rotación. He contado el tiempo entre los picos y obtener la velocidad de rotación de la rueda.
En la tercera foto, se puede ver la velocidad de la rueda en el monitor serial en el software de Arduino.
Si tienes un tubo Digital, ir a la página siguiente y copia de aquél.
/*************************************************************************
* Nombre: Detector de velocidad.
* Autor: Macarena
* Actualizado: Macarena
* Fecha: 3/13/2014
* Descripción: estoy usando un Makeblock Me-LightSensor para hacer un detector de velocidad de rueda.
Puede conectar este Me-LightSensor a la PORT_3, PORT_6, PORT_7, PORT_8 de Me-zócalo.
* Copyright (C) 2013 fabricante obras tecnología Co., Ltd. Todos los derechos reservados.
* http://www.makeblock.cc/
**************************************************************************/
#include < Makeblock.h >
#include < Arduino.h >
#include < SoftwareSerial.h >
#include < Wire.h >
LightSensor(PORT_6) de MeLightSensor;
Motor1(M1) de MeDCMotor;
uint8_t motorSpeed = 100;
int valor = 0; una variable por valor de lightSensor
int cuenta = 0;
buff de int [3];
int suma = 0;
int omega;
Static int matriz [3] = {-1, 4, -1};
void setup()
{
inicializar la comunicación serial a 9600 bps
Serial.Begin(9600);
lightSensor.lightOn();
}
time0 largo = 0;
void loop()
{
valor = lightSensor.read();
motor1.Run(motorSpeed);
leer el valor de lightSensor:
Buff [0] = buff [1];
Buff [1] = buff [2];
Buff [2] = valor;
suma = matriz [0] * buff [0] + matriz [1] * buff [1] + matriz [2] * buff [2];
Serial.println(SUM); descomentar esta línea y comentar las 15 a continuación líneas si desea ver los datos en tablas de serie
if(Sum >750)
{
cuenta ++;
largo t=millis();
largo deltaT = t-time0;
if(deltaT>100)
{
Omega = 360000/deltaT;
Se puede utilizar Printf fuction si agrega la biblioteca de "printf" a la clase de impresión.
más detalles en http://playground.arduino.cc/Main/Printf#.UyE3NxSSz9F
Serial.Print(Omega);
Serial.println("Rad/s");
}
TIME0 = t;
}
Delay(2);
}