Control de giro de un motor dc con pic16f887

Control de giro de un motor dc con pic16f887

Objetivo:

Control de giro de un motor dc con pic16f887

Código  in PIC C:

// control de motor de pasos unipolar con un boton de arranque y otro de giro
#include <16F887.h>
#FUSES NOWDT                    //No Watch Dog Timer
#FUSES LP                       //Low power osc < 200 khz
#FUSES NOPUT                    //No Power Up Timer
#FUSES NOMCLR                   //Master Clear pin used for I/O
#FUSES NOPROTECT                //Code not protected from reading
#FUSES NOCPD                    //No EE protection
#FUSES NOBROWNOUT               //No brownout reset
#FUSES NOIESO                   //Internal External Switch Over mode disabled
#FUSES NOFCMEN                  //Fail-safe clock monitor disabled
#FUSES NOLVP                    //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NODEBUG                  //No Debug mode for ICD
#FUSES NOWRT                    //Program memory not write protected
#FUSES BORV40                   //Brownout reset at 4.0V
#use delay(clock=8000000)

void giraizquierda(){
output_low(PIN_C0);
output_high(PIN_C1);

}

void giraderecha(){
output_high(PIN_C0);
output_low(PIN_C1);

}

void main()
{
set_tris_a(0xFF);  // configure porta como entrada
set_tris_c(0x00);  // configure portc como salida

while(true){
if ((input(PIN_A0) == 0))  // esta prendido?
{

if ((input(PIN_A1) == 0)){  // si la ra1 esta en 1 gira en sentido, si esta 0 gira en otro

                giraizquierda();

}
else{

                 giraderecha();

}

}
else     // está apagado?
{

output_c(0x00);

}

}  // end while

}  // endvoid

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *