buenas noches, a estas alturas mi cerebro ya no responde ni colocandome un disipador de calor jeje en fin...quisiera que alguien me ayude respecto al control de un motor dc, el esquema va asi: en el portb.f0 tengo un pulsador y en el portb.f1 otro pulsador, los dos activan con flancos positivos es decir envian "1" al pic 16f877a en el portc.f2(que es el cpp1) esta el motor dc( claro esta en el proteus jeje) la idea que tengo es la de controlar la velocidad del motor con los pulsadores, por ejemplo con el pin0 del portb incrementar y con el otro decrementar,pero el problema es como guardo el valor de la tabla para despues decrementarlo? me explico mejor:si por ejemplo con el boton de incremento llegue a 40% de la velocidad...como hago para decrementar la tabla? mi otra duda que si es en lo que estoy perdido es en los flancos, es decir que solo debe permitir el incremento por pulsos y no si lo mantengo presionado bueno aqui les dejo el programa que hice...permite incrementar y decrementar la velocidad del motor pero de forma automatica uso el pic 16f877a y como compilador el mikroc espero que puedan ayudarme y darme una manito jeje desdea ya gracias por la atencion suerte!
void main()
{
int a,b;
//estas tablas las uso para guargar las velocidades del duty cicle
int velup[14]={10,20,35,45,55,65,80,100,120,150,180,200,220,240};
int veldown[14]={240,220,200,180,150,120,100,80,65,55,45,35,20,10};
trisc=0;
pwm_init(333);
pwm_start();
x1:
//esto vendria a ser como un apuntador de tabla
for(a=0;a<14;++a)
{
b=velup[a]; //guardo en "b"el valor en el que apunta "a" en la tabla
pwm_change_duty(b);//y lo enviao el pin rc2
delay_ms(3000);
}
delay_ms(8000);
//lo mismo seria para decrementar
for(a=0;a<14;++a)
{
b=veldown[a];
pwm_change_duty(b);
delay_ms(3000);
}
delay_ms(8000);
goto x1;
}
void main()
{
int a,b;
//estas tablas las uso para guargar las velocidades del duty cicle
int velup[14]={10,20,35,45,55,65,80,100,120,150,180,200,220,240};
int veldown[14]={240,220,200,180,150,120,100,80,65,55,45,35,20,10};
trisc=0;
pwm_init(333);
pwm_start();
x1:
//esto vendria a ser como un apuntador de tabla
for(a=0;a<14;++a)
{
b=velup[a]; //guardo en "b"el valor en el que apunta "a" en la tabla
pwm_change_duty(b);//y lo enviao el pin rc2
delay_ms(3000);
}
delay_ms(8000);
//lo mismo seria para decrementar
for(a=0;a<14;++a)
{
b=veldown[a];
pwm_change_duty(b);
delay_ms(3000);
}
delay_ms(8000);
goto x1;
}