[Tutorial] y manejo de proton IDE

Hola D@rkbyte, de entrada, gracias por tu desinteresada ayuda..... y como dije, recien comienzo con lo de programacion, lo de "drenador abierto" me confirmo lo que ya sabia... (que no sabia nada) y como la curiosidad es la madre de todo conocimiento, investigue un poco y encontre que configurar el pin RA4 como salida genera muchos problemas con pocas soluciones, debido a mi poco conocimiento del tema, pense en migrar a un pic con mas pines.... hasta en retirarme..... en fin, la solucion fue invertir los pines, configure el RA4 como entrada y el RB7 en salida y solucion del problema, utilice tu diagrama electrico que resulto mas apropiada y el programa corre OK Saludos Y Gracias...
 
buenas tardes con todos los presentes de este foro, soy nuevo en esto y necesito pedir de favor si alguien me podria ayudar con la programación de un velocimetro digital utilizando el pic 18f2550 y una lcd teniendo en cuenta que para el conteo el pulsos utilizo un sensor de contacto que entra por el PORTA.0.
estaria muy agradecido con la ayuda por mas pequeña que sea
 
Hola mijastro,

Yo estaba haciendo algo parecido hace algún tiempo pero al final no lo terminé, aquí te adjunto el ejemplo del amigo darkbyte y otros apuntes a ver que tal te va, ojalá lo logres y, por supuesto, recuerda compartir tus avances aquí en el foro.
 

Adjuntos

Última edición:
hola disculpen adjunto los archivos de simulacion en proteus y la codificacion en proton, utilizo el 18f2550 y un sensor de contacto magnetico pero en la simulacion utilizo una señal de reloj con 555 si alguien me ayda en que estoy fallando le estaria agradecido
 

Adjuntos

hola disculpen adjunto los archivos de simulacion en proteus y la codificacion en proton, utilizo el 18f2550 y un sensor de contacto magnetico pero en la simulacion utilizo una señal de reloj con 555 si alguien me ayda en que estoy fallando le estaria agradecido
Hola...revise solo de pasada pero...¿cuando piensas decirle al compilador que tipo de display usaras y donde estará conectado?...si no informas eso para empezar no creo que aparezca nada en el mismo a la hora de imprimir...también es de buena practica anticipar los fusibles que usaras en la cabecera del programa....tienes declarado el puerto b todo como entradas cuando en realidad esta conectado al display que son salida, etc, etc.
Saludos.

Ric.
 

Adjuntos

Última edición:
¿Cuando piensas decirle al compilador que tipo de display usaras y donde estará conectado?
Si no informas eso para empezar no creo que aparezca nada en el mismo a la hora de imprimir.
Como comentario:
Al igual que el PICBasic de MicroCode Studio, también Proton IDE tiene pines que usa por defecto para el control de la pantalla cuando se omiten las declaraciones de control.
LCD Print Declares.jpg
Es por ese motivo que aún sin estar estas declaraciones en el programa de mijastro, funciona la pantalla. :cool:

También es de buena practica anticipar los fusibles que usaras en la cabecera del programa.
Eso si es importante pero también se pueden establecer externamente cuando se graba el PIC.
Tienes declarado el puerto b todo como entradas cuando en realidad esta conectado al display que son salida, etc, etc.
Recordemos que muchas de las funciones propias que realiza un entorno de alto nivel, establecen los pines como entradas o salidas dependiendo que función estemos usando.
Así, en este caso para el control de la pantalla, Proton se encarga de realizar esta tarea.
Sin embargo si es redundante establecer los pines de un puerto como entradas, ya que por defecto así están.

Saludos Ric. :apreton:
Me da gusto verte de nuevo por el Foro.
 
Saludos D@rkbytes y muy atinados y educativos tus comentarios como siempre...cuando descargue el archivo originalmente subido, no funcionaba el display y después de hacer las modificaciones que detalle y subí, empezó a funcionar...supongo que como no utilizo dicha versión(8.1) todavía del forma asidua, estaría con alguna configuración que no correspondía y hasta no realizar dichos cambios no funciono en mi caso en particular.
Personalmente soy de los que prefiere dejar lo menos posible que decida el software que es lo que yo pretendo hacer, ya que pequeños detalles de esa "poca mota"(declarar micro-controlador, frecuencia de reloj, definir fusibles, definir ubicación de dispositivos externos, etc.), son los que hacen que uno pierda bastante tiempo buscando por que no funciona algún proyecto en particular o no lo hace de la forma que uno ideo.
Un abrazo y muchas gracias por tú permanente generosidad.

Ric.
 

Adjuntos

Última edición:
buenos dias con todos, en mi compilador no tengo problema del display ni en mi simulacion ya que yo uso el proteus 8.0, y el proton es la version 2.2.5 que en esta no se necesita declarar la lcd que se va a ocupar
 
buenos dias con todos, en mi compilador no tengo problema del display ni en mi simulacion ya que yo uso el proteus 8.0, y el proton es la version 2.2.5 que en esta no se necesita declarar la lcd que se va a ocupar
Como comente anteriormente en el Proteus 8.1 que tengo instalado da la lista de errores de display que adjunte con anterioridad los archivos que subiste oportunamente(por lo que no importaría la versión de Proton si ya esta el "hex" generado que es el que se utiliza en la simulación así como el proyecto de Proteus) y solo después de reformar los item que anteriormente remarque entonces empezó a funcionar (mí versión del IDE 2.0.1.0 y 3.5.2.7 del compilador).
Adjunto capturas con la carga de los dos archivos distintos y sus resultados así como los archivos usados en ambos casos.

Ric.
 

Adjuntos

buenas con todos, yo tambien utilice el proteus 8.1 y no me funcionaba por esa razon utilice la version anterior y me corria muy bien
OK...me quedo tranquilo que no es algo de "seteo" si no de versión....revisa el comando "Counter" en la ayuda del Proton que tal vez allí encontraras la solución a lo que buscas.
Saludos.

Ric.
 
gracias por comentar, pero ya utilice la funcion counter pero no obtuve buenos resultados
Con los datos que aportas es muy difícil prestarte ayuda...Tú sabes lo que has echo y como y nosotros solo lo que tú nos dices y hasta ahora es "no anda"...en el software que subiste no hay ningún lapso de tiempo para la cuenta de los cambios de estado del pin RA.0 de entrada entonces ¿como piensas relacionarlo con la formula de velocidad = espacio / tiempo? tienes en cuenta el estado del pin pero no hay ninguna referencia a un lapso de tiempo.
Falta que informes que relación guarda la entrada de pulsos con la distancia recorrida aparte del calculo de 2*Pi*Radio. El comando Counter en la simulacion funciona correctamente(no se en lo real por los rebotes de señal en el sensor).
Ric.
 

Adjuntos

buenas me faltaba algo de especificar que ya tenemos la relacion tiempo-pulsos que adjunto en la imagen y en la programacion tiene que sonar una alarma que me indique que cuando la velocidad haya pasado los 30km/h, "reduzca la velocidad"
 

Adjuntos

buenas me faltaba algo de especificar que ya tenemos la relacion tiempo-pulsos que adjunto en la imagen y en la programacion tiene que sonar una alarma que me indique que cuando la velocidad haya pasado los 30km/h, "reduzca la velocidad"
La forma que se me ocurre para medir la velocidad según la formula que antes expuse es o mides en un tiempo pre-determinado la cantidad de pulsos entrantes o mides el tiempo entre cada pulso...un método tiene mayor exactitud a menor velocidad y el otro a mayor velocidad entre los pulsos.
El problema que se plantea es que para medir 5Km/h en ambos métodos y con la escala que pasate, deberías esperar 60minutos(1hora)/5= 12minutos(poco practico un velocímetro que demore tanto en informar a que velocidad vas...a menos que seas una tortuga:D) para que ocurra 1 pulso o lo que es lo mismo que has recorrido 1000mts(1Km). Con el mismo razonamiento para 30Km/h debes esperar 2minutos para que ocurra un pulso.
Si el generador de pulso esta solidariamente puesto al eje de la rueda del vehículo, las ruedas de este miden aproximadamente 318mts de diámetro!!!!!(quisiera "pasear" en él)

Ric.
 
Última edición:
Con los datos que aportas es muy difícil prestarte ayuda...Tú sabes lo que has echo y como y nosotros solo lo que tú nos dices y hasta ahora es "no anda"...en el software que subiste no hay ningún lapso de tiempo para la cuenta de los cambios de estado del pin RA.0 de entrada entonces ¿como piensas relacionarlo con la formula de velocidad = espacio / tiempo? tienes en cuenta el estado del pin pero no hay ninguna referencia a un lapso de tiempo.
Falta que informes que relación guarda la entrada de pulsos con la distancia recorrida aparte del calculo de 2*Pi*Radio. El comando Counter en la simulacion funciona correctamente(no se en lo real por los rebotes de señal en el sensor).
Ric.
muchas gracias por la programacion me fue de mucha ayuda y si alguien puede darme algun otro metodo de funcionamiento les estare muy agradecido