Control de un motor pap unipolar con pic 16f783

#1
Hola desearia que me ayudasen, tengo que realizar un programa en pic c compiler sobre el control de un motor pap unipolar utilizando el pic 16f873 y el driver L293, se como es el funcionamiento del driver y del motor mi problema es el programa y se me da fatal programar, alguien me puede ayudar, gracias.
 
#2
Hi Nightcrawl,
Necesitas poner un poco mas de informacion, el program es solo una parte.
Tienes experiencia con algun otro microcontrolador?
Que PCB vas a utilizar?

Si usas el buscador podras encontrar muchos temas relacionados.
:)
 
#3
Solo he usado el pic16F873, y en cuanto a la pcb, no vamos a hacerla, es para una placa de prototipos, mi problema es programar vamos realizar el programa.
 
#4
Nightcrawl si sigues abriendo hilos con los mismos mensajes te van a llamar la atención. Te he dejado unas directrices y un manual para comiences por el principio. No esperes que hagan el trabajo. De hecho si eres bueno en electrónica será porque te gusta.
 
#6
Si he realizado proyectos con el pic, como termómetros digitales, comunicación entre pics, pic con el pc, etc. el esquema electrico no le he realizado todavía puesto que el proteus no me funcioan en el ordenador.

He intentado realizar por mi mismo el programa y os pregunto si creeis que funcionará:
#include <16f873.h>
#fuses XT,NOWDT
#use delay(clock=4000000)
#include <lcd.c>
#use standard_io(a)
#use standard_io(b)
#use standard_io(c)

int estado,giro;

void main(){

lcd_init();

while(1)
{

if (input(PIN_A3)==0){
lcd_gotoxy(1,1);
printf(lcd_putc,"EN MARCHA ");
estado=0;}
else {
lcd_gotoxy(1,1);
printf(lcd_putc,"APAGADO ");
estado=1;}

if (input(PIN_A4)==0){
output_c(0x0c); // GIRO IZQUIERDA
delay_ms(20);
output_c(0x06);
delay_ms(20);
output_c(0x03);
delay_ms(20);
output_c(0x09);
delay_ms(20);
giro=1;}
else{ // GIRO DERECHA
output_c(0x03);
delay_ms(20);
output_c(0x06);
delay_ms(20);
output_c(0x0c);
delay_ms(20);
output_c(0x09);
delay_ms(20);
giro=2;}

if (giro==1){
printf(lcd_putc,"IZQUIERDA");
}
else{
printf(lcd_putc,"DERECHA");
}
 
#8
Oye, me parece que tienes que revisar bien esa programación (personalmente prefiero el ASM, pero también uso un poco el C) me da la impresión que esta muy poco pensado el código, por ejemplo la variable "estado" que te señala Unikfriend, e incluso la variable "giro" en lugar de usarla como un flag puede contener el valor del pin, o la función "lcd_gotoxy(1,1);" se puede ejecutar fuera de las condicionales pues de igual manera va a correr :) .
Ahora, porque no usar un driver para este motor, hasta podrías usar un pic mas barato y conseguir un mejor desempeño del sistema entero.
Saludos
 

Temas similares

Arriba