[:es]Objetivo: Medir velocidad rpm de un motor DC con encoder y arduino V2.
Material:
- LCD Shield
- Arduino Uno
- Motor DC con Encoder
Desarrrollo:
Un econder es un dispositivo optoelectronico que nos da a la salida pulsos. La frecuencia de los pulsos depende de la velocidad del motor.
La velocidad rmp usando un encoder la calculamos usando la formula
rpm = ( pulsos en 1 seg ) * 60 / resolucion
La resolución depende de cada encoder ( es el numero de ranuras del disco ) y nos un numero de pulsos por revolución.
En este caso solo usaremos un encoder A.

| Color | Function |
|---|---|
| Red | motor power (connects to one motor terminal) |
| Black | motor power (connects to the other motor terminal) |
| Green | encoder GND |
| Blue | encoder Vcc (3.5 – 20 V) |
| Yellow | encoder A output |
| White | encoder B output |
Diagrama de Proteus:

Código en Arduino
// desarrollado pora microcontroladores.com.mx y proyectosarduino.xyz
// soporte ventas@microcontroladores.com.mx
#include <LiquidCrystal.h>
const int senrpm = 13; // El interruptor a utilizar sera el 0 es decir el pin digital 2
int pulsos=0; // variable para contar los pulsos en 1 segundo
int resolucion = 300; // pulsos por revolución del encoder
int tiempo;
double rpm;
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
void setup() {
// put your setup code here, to run once:
lcd.begin(16, 2);
pinMode(senrpm, INPUT); //declaramos el boton como entrada
}
void loop() {
// put your main code here, to run repeatedly:
velocidadrpm();
}
void velocidadrpm(){
// Serial.println(tiempo);
int pulsos=0;
boolean bandera=LOW;
unsigned long currentTime=0;
unsigned long startTime=millis();
while(currentTime<=1000)
{
if(digitalRead(senrpm)==HIGH)
{
bandera=HIGH;
}
if(digitalRead(senrpm)==LOW && bandera==HIGH)
{
pulsos++;
bandera=LOW;
}
currentTime=millis()-startTime;
}
rpm=((double)pulsos/resolucion)*60;
/// Serial.println(rpm);
lcd.setCursor(0,1);
lcd.write("vel:");
lcd.setCursor(5,1);
lcd.print(rpm);
}
Puedes ver también en
https://github.com/tecsolucion/SensoresYactuadores/tree/master/velocidad_RPM_version2
[:]




