TODOPIC
Microcontroladores PIC => Primeros pasos - Iniciación a los microcontroladores => Mensaje iniciado por: mikke en 03 de Junio de 2012, 20:24:21
-
bueno estoy usando pic 16f628 y assambler...
bueno lo que pasa es que necesito que el pic me teeste un pin ... a que me refiero, tengo un fin de linea infrarrojo (normalmente cerrado)
entonces necesito que en pic lea ese fin de linea y que cuando pasen 10 segundos con el contacto cerrado el pic active un motor durante 5 s, después de esos 5 segundos que mande voltaje a una de las salida (esa salida va conectada a un micron)... y que después de 30 segundo el pic corte el voltaje y haga girar el motor en reversa unos 5 s, si el fin de linea esta abierto que el pic no active el motor y que tampoco le entregue voltaje a la salida ... bueno eso si alguien me puede ayudar seria bueno ... y que también me explique por que va ese comando o lo que hace bueno eso gracias :oops: :oops:
Pd: lo que necesito es la linea de comandos ... no me importa que entra o salida usan .. :-)
-
No creo que encuentres ayuda con esos datos. Sería mejor que subas el diagrama de tu circuito y el código con que estás trabajando y anda mal.
-
Hola mikke.
Si tienes muy pocos conocimientos de programación te recomiendo que comiences por lenguajes de alto nivel como C o Basic. Estos son mas amigables para aquellos que están comenzando.
Para realizar este proyecto existen 2 soluciones. La primera es mediante técnica "Polling" es decir, muestrear constantemente los pines del PIC, y el Segundo método es mediante interrupciones. La ventaja del segundo método es que puedes poner el PIC en modo Sleep o bajo consumo. Es decir, mientras no ocurran ningún cambio en las entradas el PIC no estará trabajando. Lo cual se ve en un menor consumo de energía.
Luego simplemente tendrás que convertir tu pseudocódigo al lenguaje de tu preferencia. Por ejemplo
if(Sensor == 1) //Si se activa el Sensor
Init_Timer(); //Iniciar el Timer
if(Timer == 5){ //Si el Timer es igual a 5 segundos
Restart_Timer(); //Reinicia el conteo del Timer
Motor= Forward; //Enciende el motor en avance
Micron = 1; //Enciende el micron
}
if(Timer == 30){ //Si el Timer es igual a 30
Restart_Timer(); //Reiniciar Timer
Motor = Reverse; //Detiene el Motor
Micron = 0; //Apaga el micron
if(FinDeLinea == 0) //Si el Fin de linea esta desactivado
Restart_Timer(); //Reinicia el Timer
Motor = Stop; //Detiene el motor
Micron = 0; //Apaga el Micron
Ciertamente este solo es un bosquejo rapido de como podría quedar el código. Tu tendrás que modificarlo hasta que cumpla tus requerimientos.
-
mmm dale me sirvio caleta ... igual suvire el proyecto del proteus para cachar ... y no,no tengo poco conocimiento pero la verdad este proyecto ya me tiene chato :S
de lenguaje de programacion cacho arto ... pero con los pic empese hace poco ...