Flowcode 4

Sres, debo hacer un controlador de humedad con el sensor hs1101, en las especificaciones indica un circuito pero tengo una inquietud, este entrega una salida en frecuencia, como discrimino o programa en el pic 16f877a este valor, espero me puedan ayudar

Juan Carlos
 
Hola compañeros buenos dias, estoy teniendo problemas al programar un 12f683 y necesito desconectar el ADC de este pic para que funcione como un pic comun , utilizo el flowcode y no veo por donde tengo que ir para desactivar esta funcion, he programado 16f84 y sin problemas pero claro este no trae el ADC.

Cualquier consejo, opinion o ejemplo se lo agradezco en el alma.

Un saludo chicos.
 
Hola a todos, he estado intentando hacer un sensor de temperatura que me indique en un lcd el promedio de las 10 ultimas lecturas.

1.- al hacerlo en donde paso de flotante a cadena, para leerlo en el lcd se incrementa solo.
2.- si le indico que muestre la lectura del sensor en flow lo hace pero solo la ultima lectura y no el promedio ( dado que asi se lo indico)
3.- Me muestra un valor que no corresponde me imagino que eso se debe a multiplicar por un factor para que de lo mismo.

En definitivas, quisiera solcitarle ayuda en como puedo hacer que me indique el promedio del sensor ( he buscado en los ejemplos pero ingresan variables int o byte, pero no he encontrado en flotante y en secuencia), o no se puede hacer


plis sos, gracias

juan carlos

adjunto los archivos
 

Adjuntos

  • sensor.zip
    233 KB · Visitas: 101
La mecánica simple del Flowcode es:.
1-Leer los datos externos.
2-Guardarlos en un registro.
2a-Procesarlos matemáticamente sin modificarlos.
2b-Guardar los resultados en otro registro.
2c-Convertir en cadena, coma flotante, etc.
3-Enviar lo que se desea al display.

No puedo ver el archivo adjunto pero para mi que el error lo estás teniendo en el procesamiento matemático de los datos obtenidos y el registro donde estás guardando el resultado para luego enviarlo al display.

Ese registro debe ser modificado a intervalos pre establecidos o envía los datos al display cuando estés seguro que el resultado del promedio ya está guardado en el registro que envías al display y no utilices ese registro para guardar ningún otro dato.
 
La mecánica simple del Flowcode es:.
1-Leer los datos externos.
2-Guardarlos en un registro.
2a-Procesarlos matemáticamente sin modificarlos.
2b-Guardar los resultados en otro registro.
2c-Convertir en cadena, coma flotante, etc.
3-Enviar lo que se desea al display.

No puedo ver el archivo adjunto pero para mi que el error lo estás teniendo en el procesamiento matemático de los datos obtenidos y el registro donde estás guardando el resultado para luego enviarlo al display.

Ese registro debe ser modificado a intervalos pre establecidos o envía los datos al display cuando estés seguro que el resultado del promedio ya está guardado en el registro que envías al display y no utilices ese registro para guardar ningún otro dato.

sigo cada uno de estos pasos, solo me falta el promedio de lecturas que es flotante, volverla a cero, para que empiece de nuevo, como hago eso

agradecere su ayuda

juan carlos
 
Los promedios son complicados porque debes llevar varios registros individuales tomados cada cierto intervalo para luego poder promediar sacando esos registros que ya no varíen.

Por ejemplo: a la 1 am 15º y se guarda en un registro individual, a las 2 am 14º y se guarda en otro registro individual, a las 3am 11º y se guarda en otro registro individual, asi hasta los 10 registros con sus datos individuales; recién allí sacas los cálculos llamando a cada uno de esos registro que ya no cambian y los agrupas en una sola ecuación, recién allí se envía ese resultado al display.

Seguramente deberás crear un reloj para mi ejemplo para que se sincronice en tiempo real (no creo que sea tan critico para tu proyecto) y hacer un ciclo para que se repita la lectura y escritura en cada registro cuando se lleguen a los 10 registros y se envíe al display. No sirve escribir permanente en los registros ya que el resultado estaría variando a cada instante.
 
Hola, alguien me puede decir porque no me funciona este circuito? Estoy intentando encender un led, pulsar en el emisor y que se encienda el led en el receptor, a ver si podeis echarle un ojo.

saludos
 

Adjuntos

  • emisor.rar
    56.9 KB · Visitas: 77
  • isis.rar
    13 KB · Visitas: 59
  • receptor.rar
    58.7 KB · Visitas: 69
Para empezar, en FC tienes configurados los pic con 0x3ffa, y en proteus con 3ffb.
El pulsador del PIC U2 está mal conectado, o se conecta en pull-up, o en pull-down, pero no e esa manera ya que deja RA0 "al aire".
Ninguno de los pic tiene su oscilador.
la terminal virtual, no sé que hace ahí, pero en dado caso, para poder "ver" la "a" que mandas, en sus propiedades hay que ponerla "invertida".
El led en la simulación nunca te va a encender porque esta a 10mA, ponle 1mA para verlo.
Para recibir "char", basta con timeout de 50, no de 100.
para enviar "char", ponle un pequeño retardo.
ojo que el led solo encendería mientras estés pulsando el botón.

por lo demás; no dices si ya lo montaste real, o solo en proteus; si lo montaste asi como está en proteus, pues obvio no funcionará.

realiza los cambios y probemos.

Saludos!.
 
muchas gracias por tu tiempo, te lo agradezco.

Acabo de corregir lo que me digiste pero sigue sin funcionar, lo de 0x3ffa, copie y pegue en proteus, no se para que es esto. Despues lo del terminal virtual no entiendo lo que me quieres decir, tal y como estaba se visualizaba la "a", no se si estaba mal puesto...como digo cambié todos esos detalles pero sigue sin funcionar...la intencion que tengo con esto es conseguir la comunicacion de este modo y despues poner modulos RF. Los subo corregidos de nuevo.

Muchas gracias:)
 

Adjuntos

  • emisor.rar
    57.6 KB · Visitas: 55
  • isis.rar
    25.7 KB · Visitas: 39
  • receptor.rar
    58.6 KB · Visitas: 38
La configuración del pic es incorrecta, debe ser 3f3a en ambos casos.
entra a opciones de compilador y desmarca la casilla que tiene la "palomita" (es la unica) y le das aceptar.
luego vas a chip => configurar y en el cuadro en blanco escribes: 0x2007,0x3f3a
tu velocidad de reloj es de 20 000 000 hz en un pic y en el otro tienes 2 000 000 hz; ojo con eso.
en proteus sigue mal el asunto, te faltan los capacitores del cristal, al menos de 22pF,
el MCLR del pic U2 no esta conectado.

en la configuracion de los pic, en proteus, escribe 3F3A (en mayúsculas, a diferencia del anterior), en ambos.

vuelve a probar.
 
Los promedios son complicados porque debes llevar varios registros individuales tomados cada cierto intervalo para luego poder promediar sacando esos registros que ya no varíen.

Por ejemplo: a la 1 am 15º y se guarda en un registro individual, a las 2 am 14º y se guarda en otro registro individual, a las 3am 11º y se guarda en otro registro individual, asi hasta los 10 registros con sus datos individuales; recién allí sacas los cálculos llamando a cada uno de esos registro que ya no cambian y los agrupas en una sola ecuación, recién allí se envía ese resultado al display.

Seguramente deberás crear un reloj para mi ejemplo para que se sincronice en tiempo real (no creo que sea tan critico para tu proyecto) y hacer un ciclo para que se repita la lectura y escritura en cada registro cuando se lleguen a los 10 registros y se envíe al display. No sirve escribir permanente en los registros ya que el resultado estaría variando a cada instante.

en relacion a mi consulta, logre hacer que en flow lea el promedio y vuelva de cero, pero al llevarlo a proteus , mi indica el valor -0.0, pruebo otros programas de lectura de sensor pero sin promedio y lee bien, la idea del promedio es que al variar tan rapido valor del sensor este entrega lectura en el lcd conb diferencia de aveces varios grados lo que complica la accion un calefactor, el que solo debe varia en grado es decir partir en 23 y parar en 24 grados

adjunto fotos de las pantallas y los archivos para ver si alguien me puede ayudar e indicar donde esta mi error.


Espero alguine me pueda ayudar, es urgente plis
 

Adjuntos

  • foto 1.jpg
    foto 1.jpg
    112.3 KB · Visitas: 72
  • foto 2.jpg
    foto 2.jpg
    107.2 KB · Visitas: 47
  • foto 3.jpg
    foto 3.jpg
    110.2 KB · Visitas: 45
  • sensor.zip
    241.5 KB · Visitas: 60
Buaah, se me colo un cero en el reloj! Todo corregido, ahora funciona, lo que pasa es que no funciona al tenerlo pulsado, solo se enciende el led al soltar el pulsador, se que existe una funcion en ccs que hace esto, pero aquí no puse nada... En la configuracion del pic no me dejo poner 3F3A, me daba error.

Esto que me digiste que pusiera en el cuadro blanco 0x2007,0x3f3a para que es, deduzco que es una configuracion porq ahora no me deja entrar a configurar el pic...

Muchas gracias por tu tiempo, eres muy amable, te lo agradezco:)
 
Bueno agradecer a elprofetellez que me ayudó a conseguir lo que buscaba, pero ahora se me presenta otro problema, estoy haciando la comunicacion serial con dos modulos RF, tan solo tengo 2botones en el emisor y dos leds en el receptor y funciona perfectamente pero hay veces que se encienden los leds solos, supongo que por interferencias, me leí todos los post sobre esto y creo que la solución es utilizar el codigo manchester, este usuario dice lo siguiente:

Me tomo la libertad de copiar su comentario, espero no molestar.

"Bueno yo estube practicando con unos de estos modulos y tambien tube problemas con el ruido y lo que encontre en un foro es que se suele mandar un dato de "sincronizacion" antes del se quiere ejecutar, este dato de "sincronizacion" normalmente es 55h o AAh (en dinario son 01010101 y 10101010) y despues de este dato se manda el dato que se va a utilizar, es decir que el programa de tu receptor tiene que reconocer si recibio el dato de "sincronizacion" y si lo recibio tiene que esperar el siguente codigo para realizar la tarea que se desae e ingnorar cuarquier otro dato que reciba sin el codigo de "sincronizacion" antes del dato. Otro aspecto que me cauzo problemas es que no se puede mandar una sola vez el paquete de datos, se tiene que mandar varias veces, en mi caso lo mandaba 10 veces cada vez que precionaba un boton y me funciono bien".

Mi pregunta es como puedo hacer esto con flowcode 4, ahora mismo estoy simplemente enviando el caracter 'a' y recibiendo con un if, si es "a" encender el led 2 segundos.

A ver si alguien puede orientarme como hacer esta trama con flowcode, les estaría muy agradecido.

Saludos.
 
hola estimados, quería hacerle una consulta, gracias a don Mario logre hacer el promedio de mi sensor con el lm35 y 16f877a, todo bien, pero ahora me sucede que se reinicia el sistema, por lo que estado observando, cada vez que se enciende un equipo fluorescente o se pone en marcha algún equipo con bobina, sucede esto.

La consulta como puedo evitar este fenómeno, debo indicar que para los 5 volts he considerado el 7805 y una serie de condensadores pero aun así se reinicia.

Si alguien tiene una solución u orientación para solucionar se lo agradecería

Juan Carlos
 

Adjuntos

  • sensor.zip
    26.8 KB · Visitas: 61
Además pon condensadores en.la.fuente y en los pines de masa a vcc

Hice lo que me indicaron y ya no se me reinicia, coloque resistencias y condensadores, ademas de usar optoacopladores.

Ahora a mi maquina le quiero poner luces rgb, lo que cuando es prender y apagar no es problema, todo se complica cuando quiero hacer que el led rgb prenda lento y se apague lento, en flow code lo hice, en proteus tambien, solo que use un transistor npn el 2n222, cuando conecto la salida del pmw al colector no me enciende el led pero al hacerlo que la salida pmw se conecte al emisor si se prenden (todo esto en proteus), la duda es si esta coneccion esta correcta, ya que todas las conecciones que he visto el Vcc se conecta al colector y el emisor a negativo por el funcionamiento mismo del transistor.

es adjunto archivo, les agradecere indicarme si mi programa esta bien y la coneccion en proteus esta bien. (esto por que cuando lo lleve al fisico no me funcionó)

a lo mejor es algo pequeño pero me tiene mariado, espero me puedan orientar por favor


juka
 

Adjuntos

  • luces.rar
    112.4 KB · Visitas: 90
Atrás
Arriba