Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

20/01/2011 #1


Ayuda con programacion para controlar motor
Hola amigos necesito ayuda para programar el PIC16F628A, la idea es poder controlar a travez de RA0(START) y RA1(STOP) el funcionamiento de un motor, mi problema principal esta en no poder parar el motor cuando este esta funcionando durante un determinado tiempo, necesito poder parar el motor en cualquier momento de dicha temporizacion, se podria decir que es como una parada de emergencia. No se pueden realizar modificacion al esquema del circuito, adjunto codigo de programa que tengo, esperare atento a sus comentarios. Saludos.

#byte porta=05
#byte portb=06
#use fast_io(a)
#use fast_io(b)
#fuses NOPROTECT,NOCPD,NOLVP,NOWDT,XT
#use delay(clock=4000000) //Reloj 4MHz


void main()
{
set_tris_a(0xff); // Puerto A como entrada
set_tris_b(0x00); // Puerto B como entrada
portb=0; // Limpia puerto B

DO{

IF (INPUT(PIN_A0)){ // Si se presiona RA0
delay_ms(100);
portb=1;
delay_ms(5000);
}

IF (INPUT(PIN_A1)){ // Si se presiona RA1
delay_ms(100);
portb=0;
}
}
WHILE(TRUE);
}


El esquematico lo pueden descargar aqui: http://www.megaupload.com/?d=NTUF29SV
20/01/2011 #2

Avatar de Vegetal Digital

No me quedo muy claro...el circuito no lo podemos modificar, osea que hay que usar el boton STOP para detener el motor... Lo que necesitas es que ni bien se preione el boton se detenga? Sino que necesitas que haga el programa?
Saludos

PD: te aconsejo subir el diagrama aqui en el foro para no tener que esperar en megaupload, si la imagen es grande la pones en un winzip
20/01/2011 #3


Hola, el circuito no se puede modificar y la idea es cuando se presione el boton STOP debe detenerse el motor, lo que pasa es que no se detiene debido al delay_ms(5000);, lo que quiero es poder detenerlo en ese delay, si saco el delay del programa el motor se para sin problemas con el boton STOP, pero la idea es poder detenerlo mientras esta en el delay. Atento a sus comentarios.
20/01/2011 #4

Avatar de rednaxela

Que tal si se utiliza una interrupción, aunque habría que mirar si el micro responde a una interrupción mientras se esta ejecutando un delay, eso no se.
20/01/2011 #5

Avatar de Vegetal Digital

Pero despues del delay el motor debe detenerse solo?
20/01/2011 #6


Hola, no puedo utilizar la interrupcion RB0 ya que ahi se encuentra la salida hacia el motor, ademas el pic16f628a no tiene interrupcion por cambio de estado.Despues de realizar el delay debe detenerse, pero lo que necesito es poder parar el motor mientras esta en el delay.
20/01/2011 #7


has un bucle 50 retardos de 100mS entre cada retardo introduces una condicional de parar el motor con un pin de lo que estan libres.
20/01/2011 #8


Hola, la idea es que al presionar STOP el sistema vuelva al inicio como una especie de reset
21/01/2011 #9

Avatar de Vegetal Digital

ok ok ahora si...hay varias formas, lo ideal seria usar la interrupcion, pero no se puede modificar el circuito.
Se me ocurre esto:

Código PHP:

/////////////////////////////////////////////////////////////////////////////////////////////////////////
//Si no se presiona el boton START, el motor esta detenido, pero si se presiona start          //
//entra en el bucle for el cual cada 1 mili segundo se fija que no se haya presiuonado         //
//el boton stop, si se lo presiono, sale del bucle y se repetiria el ciclo si en el programa      // /principal pones un while                                                                                        // 
//////////////////////////////////////////////////////////////////////////////////////////////////////

unsigned int16 v;

if(
START)
{
portb=1;

for(
v=0;v<=5000;v++)                                
 {
 
delay_ms(1);
 if(
STOP) break;
 }
portb=0;
}

else
{
portb=0;

Cuando llegue a casa lo pruebo, si podes anda probandolo vos si es lo que necesitas.
Saludos
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.