TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: joshuadadas en 27 de Marzo de 2016, 06:56:04

Título: ayuda con banda transportadora
Publicado por: joshuadadas en 27 de Marzo de 2016, 06:56:04
estoy haciendo una banda seleccionadora con un pic 18f4550 pero no soy muy bueno con la programación es que necesito que haga
1: encendido con botón
2: el motorreductor enciende y mueve la banda
3: si las cajas que corren por la banda son blancas detectadas por un sensor cny70
4: la banda se detiene por un momento y  un servo motor se activa a 90 y regresa a su posición
5: se mueve de nuevo la banda
espero que me puedan ayudar ya no se ni como hacerle soy nuevo :(
esto es lo que llevo

#include <18f4550.h>
#fuses HS,NOPROTECT,NOWDT,
#use delay(crystal=20mhz)
int a=0;
int b=0;
int c=0;
int i;
void main()
{
{
if(input(pin_b0)==1);
output_high(pin_d3);
}
output_low(pin_d2);
delay_ms(2000);
   while(1);
   {
   for(i=0;i<60;i++);
   {
   output_high(pin_d2);
   delay_us(2000);
   output_low(pin_d2);
   delay_ms(20);
   }
   delay_ms(3000);   
   {
   b=input(pin_b1);
   if (b=0);
   a==0;
         for(i=0;i<60;i++)
      {
   output_high(pin_d2);
   delay_us(400);
   output_low(pin_d2);
   delay_ms(20);

      }
      delay_ms(3000);
   }
}

   }
   

Título: Re:ayuda con banda transportadora
Publicado por: w3-sistemas en 27 de Marzo de 2016, 09:34:06
hola, explicame como es eso de que un motor se enciende a 90 y regresa a su posicion, saludos
Título: Re:ayuda con banda transportadora
Publicado por: KILLERJC en 27 de Marzo de 2016, 09:42:11
hola, explicame como es eso de que un motor se enciende a 90 y regresa a su posicion, saludos

Un servomotor, basicamente tiene que realizar un PWM. Lo ideal que lo haga con timers.

estoy haciendo una banda seleccionadora con un pic 18f4550 pero no soy muy bueno con la programación es que necesito que haga
1: encendido con botón
2: el motorreductor enciende y mueve la banda
3: si las cajas que corren por la banda son blancas detectadas por un sensor cny70
4: la banda se detiene por un momento y  un servo motor se activa a 90 y regresa a su posición
5: se mueve de nuevo la banda
espero que me puedan ayudar ya no se ni como hacerle soy nuevo :(
esto es lo que llevo

Si queres que funcione empeza a olvidarte de poner delays. Aca tenes un pseudocodigo que tendria una traduccion casi inmmediata:

Código: [Seleccionar]
Loopinfinito:

Boton START presionado?
Si: Espero 10ms
Espero que se suelte el boton
Activo ^= 1
Motorreductor = Activo

Es Activo = 1 ?
Si:
Caja Blanca detectada?
Si:
Motorreductor = 0
ServoMotor a 90º
ServoMotor a 0º
Motorreductor = 1

Ir a LoopInfinito