Control 1 Motor + Encoder de vueltas controlado por AVR ATMEGA16 C+
POR Eric Sanchez Briones — El admin je je je je
” EL CONOCIMIENTO TE HACE LIBRE ” VIVA GNU
En el siguiente programa se pretende controlar un motor con un encoder de vueltas integrado…. La finalidad es contar hasta 255 vueltas detenerse y girar hacia el otro lado utilizando
Un AVR …. ATMEGA16.. El programa fue desarrollado en C++ Bajo el compilador GNU de AVR para C en plataforma Linux.
//// PROGRAMA ENCODER PARA MOTOR CD ///
#include <avr/io.h>
#include <util/delay.h>
///////////////////////////////////////
int incremento=1; // Variable contadora de el encoder
int direccion=1; // Variable de Direccion
int main(void)
{
DDRB=0xff;
INICIO: //Etiqueta de inicio
while(incremento != 255) //Ciclo de incremento mientras la variable sea diferente a 255
{ if(PIND==0×10) // Preguntar se el PIN A0=1
{
incremento ++; // Incrementa Variable
while(PIND==0×10) // D4=1 ?
{} // NO hacer nada hasta q sea cero de nuevo la entrada para evitar rebotes
} //TERMINA CICLO incremento
PORTA=incremento; // Opcional para debugear y ver el registro ” solo para Atmega16
PORTB=direccion; // Poner la direccion en el puerto
} //TErmina Loop infinito
incremento=0;
//// DRIVER DE SENTIDO /////
if(direccion==1)
{direccion=2;
goto INICIO ;}
if(direccion==2)
{direccion=1;
goto INICIO;}
} // FIN DE LA APLICACIÓN
Por…. Eric Sánchez.. dudas a eric_sanchez@prodigy.net.mx
diciembre 1, 2009 a 3:54 am
Fotografia pequena es ¿L293d?
enero 27, 2010 a 3:06 am
si es un L293D o puede ser simplemente un puente h no importa el que sea
octubre 7, 2010 a 8:10 pm
Gacias por el aporte, pero necesito un contador de vueltas (que cuente y descuente) con el atmega16 con los siguientes detalles.
* que utlize un sensor gp2d02
* velocidad de giro de un motor
* visualizacion en el LCD
PROCEDIMINETO: Mientras el sensor haga un corte, cuente un numero y se incremente y visualize en el LCD. Para mayor informacion espero tu respuesta