jueves, 8 de noviembre de 2012

motor paso a paso atmega 8

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


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
}