Programación del motor Paso A Paso unipolar Sena micro ATMEGA 8
Con configuración half step o medio pasó en una secuencia
360 grados
Decimos 3.75 grados por impulso 0 *numero de pasos 96=
360 grados igual una vuelta
En conclusión decimos que secuencia de 8 * 12 =96
Veces en el ciclo WHILE nos da 360 grados de giro hacia el sentido horario como antiorario
con dos pulsadores voy crear un link para bajen los archivos de todo el proyecto
link: del proyecto funcionado:
http://www.youtube.com/watch?v=naRyChLF9Jo
con dos pulsadores voy crear un link para bajen los archivos de todo el proyecto
link: del proyecto funcionado:
http://www.youtube.com/watch?v=naRyChLF9Jo
Hola todos soy técnico en electrónica
y mantenimiento de computadores y venta acá en Bogotá.
También
hago proyectos de electrónica a nivel estudiantil o prototipos de electrónica analógica,
secuencial, programación lenguaje C para micro controladores en lenguaje C o
C++, en diferentes compiladores
En
este año estoy estudiando e investigado en visual C++ ,
Software LabVIEW para Diseño de Sistemas.
Es
estos días subo mas proyectos y simulaciones de algunas
Investigaciones
que he realizado
CONTACTO:
jyrojas@misena.edu.co
Mi
teléfono es 310-3014239
Bogotá
Colombia
zona de codigo AVR Studio 4
PROGRAMADO: jose yovany rojas tecnologo BIOMEDICA SENA CEET *graduacion 2013*
ESTUDIANTE INGENIERIA FUNDACION UNIVERSIDAD CENTRAL *activo*
/*sena CEET biomedica 28/09/2012********************************/
#include <stdio.h> // Libreria standar
#include <avr/io.h> // Libreria para usar puertos de entrada y salidas
#include <util/delay.h> // Libreria para retardos
int main (void)
{
DDRD= 0b11110100; // declaran los bit 7 al 4 como salida; 0 y 1 como entrada
PORTD=0b00000011; // activamos resistencias pull-up en los bit 1 y 0
DDRB= 0b00111001;
char A,B; //variable de tipo caracter
char i;
while(1)
{
A=PIND & 0b00000001; // bit 1 activa pulsador 1 pind es nombrar el puerto
B=PIND & 0b00000010; // bit 2 activa pulsador 2
for(i=0;i<=11;i++)// codigo a repetir 0 a 11veces
if (A==0) //sentecia if para giro hacia sentido del reloj (derecha)
{
PORTD=0b10000011; // paso 1
_delay_ms(200);
PORTB=0b00000001; //Código del dígito 1
_delay_ms(200);
PORTD=0b11000011; // paso 2
_delay_ms(200);
PORTB=0b00001000; //Código del dígito 2
_delay_ms(200);
PORTD=0b01000011; // paso 3
_delay_ms(200);
PORTB=0b00001001; //Código del dígito 3
_delay_ms(200);
PORTD=0b01100011; // paso 4
_delay_ms(200);
PORTB=0b00010000; //Código del dígito 4
_delay_ms(200);
PORTD=0b00100011; // paso 5
_delay_ms(200);
PORTB=0b00010001; //Código del dígito 5
_delay_ms(200);
PORTD=0b00110011; // paso 6
_delay_ms(200);
PORTB=0b00011000; //Código del dígito 6
_delay_ms(200);
PORTD=0b00010011; // paso 7
_delay_ms(200);
PORTB=0b00011001; //Código del dígito 7
_delay_ms(200);
PORTD=0b10010011; // paso 8
_delay_ms(200);
PORTB=0b00100000; //Código del dígito 8
_delay_ms(200);
}
for(i=0;i<=11;i++) //le decimos que repita el ciclo 12 veces
if (B==0) //sentecia if para giro hacia sentido antihorario del reloj (izquierda)
{
PORTD=0b10010011; // paso 8
_delay_ms(200);
PORTB=0b00100000; //Código del dígito 8
_delay_ms(200);
PORTD=0b00010011; // paso 7
_delay_ms(200);
PORTB=0b00011001; //Código del dígito 7
_delay_ms(200);
PORTD=0b00110011; // paso 6
_delay_ms(200);
PORTB=0b00011000; //Código del dígito 6
_delay_ms(200);
PORTD=0b00100011; // paso 5
_delay_ms(200);
PORTB=0b00010001; //Código del dígito 5
_delay_ms(200);
PORTD=0b01100011; // paso 4
_delay_ms(200);
PORTB=0b00010000; //Código del dígito 4
_delay_ms(200);
PORTD=0b01000011; // paso 3
_delay_ms(200);
PORTB=0b00001001; //Código del dígito 3
_delay_ms(200);
PORTD=0b11000011; // paso 2
_delay_ms(200);
PORTB=0b00001000; //Código del dígito 2
_delay_ms(200);
PORTD=0b10000011; // paso 1
_delay_ms(200);
PORTB=0b00000001; //Código del dígito 1
_delay_ms(200);
} // fin if de el motor
else
{
PORTD=0b00000011; // apagar todo si no cumple la condicion
} //
} // fin main
}