Medir velocidad  rpm de un motor usando encoder, arduino, interrupciones externas, interrupciones temporales.

Medir velocidad rpm de un motor usando encoder, arduino, interrupciones externas, interrupciones temporales.

Escrito Por: admin Publicado En: Arduino Fecha de Creación: 2019-11-07 visitas: 4020

Medir velocidad  rpm de un motor usando encoder, arduino, interrupciones externas, interrupciones temporales.

Objetivo:

Medir velocidad  rpm de un motor usando encoder, arduino, interrupciones externas, interrupciones temporales.

Material:

ELEGOO UNO R3 Tarjeta Placa ATmega328P ATMEGA16U2 con Cable USB y Microcontrolador Compatible con Arduino IDE Proyectos Cumple con RoHS

FTVOGUE Motor de engranaje 12V 30RPM DC motor de engranaje helicoidal de alto par con codificador de bloqueo automático para reducir la velocidad del engranaje

 

Desarrollo:

 

 

Estimados lectores les muestro un nuevo código en Arduino para medir la velocidad rpm de cualquier motor usando un encoder.

Lo primero que tenemos que saber es la resolución del enconder a usar.

La resolución de un encoder es  el número de pulsos que se generan en una revolución del motor.

La formula para medir la velocidad rpm es la siguiente.

 

Vrpm=( #pulsos_en_1_seg/ resolucion)*60;

 

Nuestro programa lo que mide es el número de pulsos que salen del encoder en un 1 seg.

Para medir los pulsos usamos interrupciones externas cada que llega un pulso se produce la interrupción y contamos el número de pulsos

Para medir el tiempo utilizamos la función   millis() de arduino para contar el tiempo y otra función que reinicia el tiempo cada segundo que pasa.

 

 

Diagrama Proteus:

 

 

La simulación es muy buena ya que nuestra LCD se muestra la misma velocidad rpm que marca el motor CD de proteus.

 

Esto se puede usar para cualquier motor. Normalmente lo encoder de cuadratura traen dos salida el canal A y el canal B en este caso solo usaremos uno de los dos canales

Código Arduino: