Flowcode 4

Este archivo es el que necesito hacer funcionar como he comentado, quiere decir algo parecido al video anterior. Es como funciona cualquier tester, al conectar aparece 000 y segun se suba el potenciometro
presentaría la lectura de izquierda a derecha; 001.., 002.., 003.., 010.., 011.., así hasta 100.

Muchas gracias RUIZ13.
Hola Manuel, eso te ocurre porque situas el cursor en un punto fijo, y el largo de la cifra varía entre uno y tres dígitos, dejando a la derecha de estos los caracteres impresos anteriormente, para hacerlo simple podrías agregar otro comando de lcd que imprima espacios luego de los números.
Agrego también las modificaciones a tu código para hacerlo como tu qurerías, con formato "000"
Saludos.
 

Adjuntos

Última edición:
M

manuel gomez

Gracias edgard22, es exactamente lo que necesitaba y ademas no sabía como hacerlo. Lo probare en físico y ya comentaré.

Un saludo.
 
M

manuel gomez

Hola edgard22, he probado el circuito en físico y a pesar de algunos problemas he conseguido hacerlo funcionar. Pero ahora me surje la posibilidad de que la lectura sea con un decimal y que fuera de 5 en 5, osea; 00.5, 01.0, 01.5 y así hasta 99.5, ¿me podrías indicar como hacerlo?.

Muchas gracias.
 
Hola edgard22, he probado el circuito en físico y a pesar de algunos problemas he conseguido hacerlo funcionar. Pero ahora me surje la posibilidad de que la lectura sea con un decimal y que fuera de 5 en 5, osea; 00.5, 01.0, 01.5 y así hasta 99.5, ¿me podrías indicar como hacerlo?.

Muchas gracias.
Hola, de mis experiencias con las dichosas formulas (que no son demasiadas) he notado que las simulaciones no siempre reflejan la realidad, por ejemplo, funcionan cosas que en la realidad darían problemas. Tal es el caso de Volts = Volts*100/1023 para el escalado, el cual en la realidad me ha dado problemas (al superar determinados valores me da cualquier cosa y en números negativos). Imagino que en el pic genera desbordes por la multiplicación...
Para lo que yo necesitaba me funcionó bastante bien esto: Volts = Volts-(Volts/45), con lo cual obtengo el escalado de 1023 a 1000.
Para hacerlo de 5 en 5 yo usé algo simple, dividir volts por 5 y multiplicarlo por 5. Al dividirlo, se truncan los decimales, y al multiplicarlo, se obtiene el multiplo de 5 más cercano al valor original (el menor).
Para imprimir el punto decimal, es otro tema... transformar el "1000" en "100.0".
La que ví en los ejemplos es descomponer el número en cifras independientes dividiendo y usando el comando "MOD" para asignarles una variable a cada una de ellas. (Está en la carpeta 'examples').

Yo uso otro sistema:
Ejemplo: Volts=1234
Temp=(Volts/10)*10 "Da resultado 1230
Dec=Volts-temp "1234-1230=4
Volts=Volts/10 "123
Tenemos entonces: Volts=123 y Dec=4
Se imprime Volts, "." y Dec para obtener "123.4"

Espero te sirva de algo todo esto.
 
M

manuel gomez

Hola edgard22, he estado praticando con lo que anteriormente me habías comentado pero no lo controlo, ¿ me podrías hacer un ejemplo en Flowcode?

Muy agradecido.
 
Hola edgard22, he estado praticando con lo que anteriormente me habías comentado pero no lo controlo, ¿ me podrías hacer un ejemplo en Flowcode?

Muy agradecido.
Claro, ahí va... ten en cuenta que en este ejemplo usé un PIC16F819 porque es lo que tenía para probar y también cambié los pines del LCD.
Cuando simules esto no vas a ver los decimales porque los escalones del simulador ADC son de a 10 y eso impide que los muestre. Quizá te pasó lo mismo y por eso no te funcionaba.
 

Adjuntos

M

manuel gomez

Gracias, puede ser eso que comentas, ahora lo probaré nuevamente en físico a ver el resultado que obtengo, de cualquier manera te estoy muy agradecido y ya contaré como funciona.

Un saludo.
 
Hola a pesar que hace tiempos salio el flowcode hasta ahora estoy empezando a aprender a programar por medio de este programa soy nuevo en el foro, y la mejor forma de aprender es interactuando con personas que saben del tema. Ahora bien tengo un problema y no he logrado manejar el lcd como quisiera he hecho varias pruevas con el flow pero ninguna me ha dado resultados, quisiera que el mensaje que sale en el lcd se desplace ya sea de derecha a izquierda o vicebersa y si se puede de arriba a abajo he visto que se puede pero por mas bueltas que le doy no me funciona como quisiera agradeceria que me explicaran como controlar el lcd....
 
M

manuel gomez

Hola edgard22, no logro hacer funcionar el voltimetro2, tengo un display LCD con el hago pruebas pero no hay manera de que aparezcan datos, el modelo es el GDM1602A, he leido en la ayuda de Flowcode que la conexion debe ser la siguiente:


Dato1: B0
Dato2: B1
Dato3: B2
Dato4: B3
RS: B4
Habilitar: B5

pero la conexion que tu me indicas en voltimetro2 son distintas, me podrías ayudar?

Gracias.
 
Yo tengo también ese mismo display Lcd (GDM1602A) y con un Pic 16F88 he practicado con los ejemplos que trae Flowcode y no soy capaz de hacer funcionar ninguno. Por ello tambien pido algo de ayuda, me gustaría tener el esquema de conexión de algun ejemplo que alguno de vosotros lo halla hecho funcionar.

Un saludo para todos.
 
M

manuel gomez

Hola de nuevo edgard22, he solucionado el problema anterior, pero lo que me sucede ahora es que la presentación de los datos es muy lenta, osea, al girar el potenciometro tarda un poco en aparecer la lectura, he revisado que la velocidad de reloj y está a 4000000, ya no sé que mas se puede hacer para solucionar este síntoma.
(El pic que estoy utilizando es un 16F88, y esta configurado con oscilador interno)
Saludos
 
Última edición:
M

manuel gomez

Otro problema resuelto, he configurado el pic con reloj externo y le he colocado un cristal de cuarzo de 4Mhz con 2 condensadores de 18pF y la presentación de los datos en el display es inmediata, pero vuelve a surgir otro imprevisto, y es que el decimal que va de 5 en 5 oscila mucho y no sé como hacer para que quede estable.

Muchas gracias.
 

Adjuntos

Hola a pesar que hace tiempos salio el flowcode hasta ahora estoy empezando a aprender a programar por medio de este programa soy nuevo en el foro, y la mejor forma de aprender es interactuando con personas que saben del tema. Ahora bien tengo un problema y no he logrado manejar el lcd como quisiera he hecho varias pruevas con el flow pero ninguna me ha dado resultados, quisiera que el mensaje que sale en el lcd se desplace ya sea de derecha a izquierda o vicebersa y si se puede de arriba a abajo he visto que se puede pero por mas bueltas que le doy no me funciona como quisiera agradeceria que me explicaran como controlar el lcd....
Hola de nuevo, despues de darle bueltas aca y alla por fin pude diseñar el programa como queria, ahora el problema es que el flowcode no me genera el codigo HEX y al momento de ensamblar me sale un error, quisiera saber como resolberlo a continuacion publico el error tal como se genera gracias y esperando una positiva respuesta
 

Adjuntos

Hola Manuel, eso que te ocurre es bastante común y se soluciona haciendo una lectura promedial, es decir, se lee el adc y se acumula este valor en una variable repitiendo el proceso, por ejemplo 20 veces, al finalizar, se divide este resultado por 20 y ya está, la mejora es notable.
Tener en cuenta que para este método el número de lecturas acumuladas no debe superar las 30, ya que la variable soporta 32767. (1023 * 30 = 30690)
Por cierto, si quieres puedes aumentar el número de veces haciendo ciclos de lectura anidados, con lo cual mejora aún más. (cuanto mas lecturas, mas demora el proceso, con lo cual en este caso es doblemente beneficioso, ya que mejora la estabilidad de la lectura y se genera una demora entre actualizaciones del display.)
En el ejemplo "Promedio_180_veces.fcf" se realizan 180 lecturas entre actualizaciones de display, las lecturas son muy estables.
Este tipo de rutinas es ideal para usarlas cuando se necesita escalar el valor leído modificando los divisores para obtener el valor deseado.
Nuevamente, espero que esto te sirva de ayuda.
Saludos a todos.

Ah, para invesel:

A ver... sería algo así:
En FlowCode - En Display
---------------------------
DATA 1 - PATA 11
DATA 2 - PATA 12
DATA 3 - PATA 13
DATA 4 - PATA 14
RS - PATA 4
ACTIVAR - PATA 6
--------------------------
pata 3 de display es contraste, se pone un preset de 10k para ajuste o se pone a masa.
pata 5 es R/W y se pone a masa (Habilita modo escritura en LCD)

La imágen es más específica.
 

Adjuntos

Última edición:
Hola de nuevo, despues de darle bueltas aca y alla por fin pude diseñar el programa como queria, ahora el problema es que el flowcode no me genera el codigo HEX y al momento de ensamblar me sale un error, quisiera saber como resolberlo a continuacion publico el error tal como se genera gracias y esperando una positiva respuesta
Según dice el mensaje de error, hay un problema con una de las librerías, quizá deberías volver a instalar flowcode para restaurar los archivos.
 
Según dice el mensaje de error, hay un problema con una de las librerías, quizá deberías volver a instalar flowcode para restaurar los archivos.
gracias por responder si lo que sucede es que cada ves que necesito emsamblar el codigo tengo que desinstalar el flowcode reinicio mi pc, a continuacion procedo nuevamente a instalar el flowcode, luego procedo a abrir el archivo le doy ensamblar y me funciona correctamente, pero si decido ensamblar otro programa creado o el mismo con variaciones inevitablemente me da el fatidico error, y nuevamente a desinstalar y instalar nuevamente, comprenderas que es engorroso ese procedimiento....
 

Temas similares

Arriba