Autor Tema: ayuda para medir baja frecuencia con pic 16f874  (Leído 8705 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado jorgeansuini

  • PIC18
  • ****
  • Mensajes: 340
RE: ayuda para medir baja frecuencia con pic 16f874
« Respuesta #15 en: 01 de Febrero de 2006, 16:40:00 »
Hola:

Realmente Chali esta idea me ha estado rondando en la cabeza hace algun tiempo ,que Norberto tambien propuso lo mismo y yo no la pude seguir desarrollando por falta de tiempo (a veces duermo) .

En ese momento le comenté a Norberto que otra de las cosas a tener en cuenta, aparte de cálculos ,es la detección de paso por cero ,que justamente debe estar lo más cerca posible al cero. Ensaye un circuito con un diodo,un opto y algunas resistencias y visto al osciloscopio funcionaba bien.-

Mi idea inicial respecto al soft era medir durante uno de los semiciclos (10ms) y calcular en el otro .Como base de tiempo usar un TMR2 de 16bits con reloj interno dividido para que nos de 50000 cuentas en 10ms y tengo todavia un 30% de tolerancia para llegar a desbordar contador. Ojo ,todo esto paso por mi mente y realmente todavia no hago calculos en papel.-

Si nos interesa medir mas lento,simplemente es cuestion de sumar 50 resultados y sacar su promedio para presentarlo durante 1 segundo.-

Cambiando de tema ¿Cuál es la idea de hacer el desarrollo ? Yo no tengo necesidad de usarlo pero siempre es un buen ejercicio y si se empieza a ver movimiento "real" del proyecto y no solo aportes "técnicos" ,seguro que va a moverse el foro.-

Allá lejos y hace tiempo (calculo que los principios del foro) ,alguien de España comentó la necesidad de un simulador de GPS ,comencé a poner código ,luego Norberto a hacer una aplicación en visual para el mismo y  se consiguió que muchos se prendieran .Esta es mi tirada de piedra.-

Jorge

Desconectado Chaly29

  • Moderador Global
  • DsPIC33
  • *****
  • Mensajes: 4315
RE: ayuda para medir baja frecuencia con pic 16f874
« Respuesta #16 en: 01 de Febrero de 2006, 20:49:00 »
Hola jorgeansuini, cuando yo me referí a desarrollo quería indicar el tema del circuito:

Sencillo: para que todos lo puedan realizar por mas básicos que sean sus conocimientos en electrónica, ya que e podido comprobar que muchos asiduos al foro llegan por el lado de las PC y no de ser técnicos o ingenieros electrónicos.

Económico: hay casos de gente joven o estudiantes que les gustaría realizar un proyecto útil o sea que tenga un uso real pero no pueden por el motivo de los costos.

Claro: con explicaciones, para aquellas personas que recién empiezan en la electrónica

Ordenados: que los aportes se realicen de forma ordenada y llegemos a un circuito final y bien definido.

Bueno básicamente esa era mi idea, esta inquietud me surge por ver post sobre otros proyectos, que la mayoría de las veces no llegan a puerto, o continuamente la agregan opciones y nunca terminan de realizar el equipo.

Si empezamos este equipo yo me anoto para colaborar en lo que pueda, por otro lado podemos llegas a sacar un equipo de muy buenas característica y a precios razonable. Tanto para el técnico, ingeniero, aficionado o principiante.

Se aceptan sugerencias.

Atte. CARLOS

Pda. en el caso de ponernos de acuerdo, deberíamos de realizar un post nuevo, ¿no les parece?

La teoría es cuando se sabe todo y nada funciona. La práctica es cuando todo funciona y nadie sabe por qué.

Desconectado pietrodilaccua

  • PIC10
  • *
  • Mensajes: 46
RE: ayuda para medir baja frecuencia con pic 16f874
« Respuesta #17 en: 02 de Febrero de 2006, 07:03:00 »
hola amigos, luego de lanzar mi S.O.S. respecto da la medicion de frecuencia me he dedique a resolver el problema de acuerdo a la sugerencia de charly. agradezco a todos sus interesantes aportes y les explicare en gral. mi proyecto, asi se despejaran algunas dudas.
lo primero es contar que  la cuenta de frecuencia la realice tomando un cruce por cero usando el timer0 del 16f874 en modo contador precargado con FF de modo que interrumpa a cada pulso que entra, luego con esta inte pongo en marcha el timer1 para inte de 5useg lo que sumado a las instrucciones de recuperacion de registros y salida de la inte dura en total 10 usg por cada inte de tmr1 lo que acumulo en un contador de 16 bits. al llegar el segundo cruce por cero de tmr0 detengo el tmr1. Ahora tomo la cuenta en el reg de 16 bit y hago la operacion 1.000.000/ contador 16 bits
vale decir 1/T = frec. El resultado es la frecuencia con 1 decimal.  todo esto me ha tomado 1 ciclo de la frecuencia para determinar su exactitud. durante el proximo ciclo tengo tiempo de realizar todo el resto de los procesos de mi proyecto y me sobra tiempo para preparar la lectura en el ciclo subsiguiente. es decir mido la frec. ciclo por medio.

EL PROYECTO:  estabilizar la frecuencia de una microcentral de generacion electrica por medio del control de la carga.
Es muy importante la obtencion de los decimales para determinar una ventana de control ya que estos equipos tienen una inercia muy activa que depende de la carga en el momento de la muestra y los parametro de control de esta carga van a depender del delta tiempo ( diferencia de ciclos entre dos muestras) v/s diferencia de carga tambien entre estos dos ciclos mas algunas constantes propias del sistema. El control del voltaje no es un problema porque los generadores vienen fabricados con el AVR, de modo que a partir de +/- 40 cilos en adente el voltaje se mantiene constante .
Como pueden ver, hay aplicaciones en que medir decimales en baja frec es importante y es tambiem importante que estas muestras se relicen ojala ciclo a ciclo.

espero tambien haber contribuido a la discusion y muchas gracias a todos.

saludos, pietridilaccua       ( un artesano del ASM )


Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
RE: ayuda para medir baja frecuencia con pic 16f874
« Respuesta #18 en: 02 de Febrero de 2006, 08:24:00 »
Je, yo lo resolvería de manera diferente.  En estos momentos no estoy en condiciones de aportar HORAS y HORAS a un proyecto (estoy muy cargado de trabajo, al punto de que ya son unas 14 hs diarias) pero si puedo hacer pequeñas sugerencias o aportes o alguna modificación al código (con alguna subrutina por ej) si es que alguien se da con la inciativa.

En mi opinion usar un pulso en el timer0 con un detector de cruce por cero sería problemátic, porque? Que pasa si justo hay un ruido en el cruce por cero y el detector mande 2 o 3 pulsitos rapidos? En este caso creo que hay que tener mucho cuidado y ver de usar un detector que realmente sea muy inmune a este ruido o ver de filtrar dicho ruido por software o que el detector en vez de tirar pulsos que sea por nivel y que mantenga el nivel latcheado hasta que detecte otro cruce por cero.  

Como vemos algo que al principio parece simple, luego se empieza a complicar.

Una forma de saber si el detector de cruce por cero es realmente fiable sería hacerlo medir frecuenca por horas.   Calcular la cantidad de ciclos que debiera contar y hacer un firmware de testeo de que cuente solo eso.  CICLOS de deteccion de cruce por cero y que lo guarde para luego sacarlo por la usart.

Si al cabo de 24 hs con carga diferente y en entornos diferentes (no es lo mismo medir en la casa de uno con una computadora encendida que con una licuadora, o un motor).


Considero que habría que hacer esto para poder estar realmente seguro de que el detector de cruce por cero funciona BIEN.

Una vez logrado esto, y previendo que algún ruido haga que el detector se dispare un poco antes o un poco después del cruce por cero, vuelvo a insistir en mi idea de que tomemos varios ciclos y luego saquemos el promedio antes que tomar ciclo a ciclo.

- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado Chaly29

  • Moderador Global
  • DsPIC33
  • *****
  • Mensajes: 4315
RE: ayuda para medir baja frecuencia con pic 16f874
« Respuesta #19 en: 02 de Febrero de 2006, 09:49:00 »
Hola maunix, muy a mi pesar el único lenguaje que manejo es el .asm, a duras penas logro entender solo algunas cosas del C, por lo que mi voto va directo al .asm, lo que no quiere decir que sienta que sea el mejor.

Pero por otro lado se que hay gente capaz (como túGiño de realizar el firmware en ambos lenguajes, ¿no seria interesante poner ambos? ojo, no propongo que tu realices los dos, pero que los hagamos en .asm, y entre varios que sepan lo traduzcan al C, e incluso al Basic.

Este es mi punto de vista, mi idea es de posibilitar a un margen mas amplio de gente, que inicie en el mundo de los PIC con un proyecto como este, o incluso, a aquel (como yo) que intenta comprender un lenguaje comparando con otro que ya sepa.

Bueno estaré a la espera de mas ideas y consejos sobre este y otros puntos en cuestión.

Atte. CARLOS

La teoría es cuando se sabe todo y nada funciona. La práctica es cuando todo funciona y nadie sabe por qué.

Desconectado jorgeansuini

  • PIC18
  • ****
  • Mensajes: 340
RE: ayuda para medir baja frecuencia con pic 16f874
« Respuesta #20 en: 02 de Febrero de 2006, 10:22:00 »
Hola:

Para aclarar un poco lo que necesita pietridilaccua:

En un minigenerador hidraulico necesita mantener la frecuencia constante en función de mantener carga constante ,corregime si no es así.-
Este es método de regulación cuando no se pueden utilizar reguladores mecánicos de caudal de agua (palas directrices),entonces hacemos caudal constante y absorvemos las variaciones de potencia de la linea incorporando o sacando carga resistiva ,pienso que esto es lo que necesita pietridilaccua. Si es eso,quizas ya no es tan necesario medir ciclo por ciclo ,sino quizas cada 1 segundo ,porque hay que tener en cuenta que los tiempos de respuesta de la inercia mecánica son bastantes mayores que los electrónicos .Por otro lado ,si es asi ¿como conmutaras la carga? He visto intentos de hacerlo con triac y en las conmutaciones de los mismos se producen los ruidos electricos que comento Mauricio y se vuelve loco el sistema. Yo hice un sistema para controlar un minigenerador en la epoca no existian los pic (unos 15 años atras) y controlaba paquetes de resistencia segun peso binario.-

El metodo que usaste para medir es similar al que yo planteaba ,solo que me epese mal y no hice un detector de paso por cero sino que generaba un onda rectangular  en cada semiciclo positivo que me servia de compuerta del contador y en el negativo de la senoide pensaba hacer calculo y presentacion.-

Con respecto al lenguaje a usar ,casi diria que C.-
micro uno de los chicos y presentacion en lcd inteligente.-
seguramente tambien una salida 232 por si querio mandar datos a graficar.-

Seguimos adelante,ya se podrian ir haciendo el esquema del micro. como para que vaya saliendo el impreso.-
 

Desconectado jorgeansuini

  • PIC18
  • ****
  • Mensajes: 340
RE: ayuda para medir baja frecuencia con pic 16f874
« Respuesta #21 en: 02 de Febrero de 2006, 10:36:00 »
Carlos:
Justo estabamos escribiendo en el mismo momento ,te comento: me parece que haciendo algo en C ,la gente va aprendiendo otro lenguaje ,después ver el meterse en asm ,te va llevando solo para poder interpretar algunas cosas de C,pero me parece un buen ejercicio para empezar a entusiasmarse con C.-

Jorge

Desconectado Chaly29

  • Moderador Global
  • DsPIC33
  • *****
  • Mensajes: 4315
RE: ayuda para medir baja frecuencia con pic 16f874
« Respuesta #22 en: 02 de Febrero de 2006, 11:16:00 »
Hola jorgeansuini, si estas dispuesto a aguantar todas mis preguntas que aré con respecto del C (no van a ser pocas), pues no hay mas que hablar, propongo que se inicie con el CCS, porque creo es el mas usado.

Lo de la salida RS-232 lo había pensado, pero esperaba que otro pusiera la idea, de esa forma tendremos que incluir en el proyecto a alguien que programe por ejemplo en Visual Basic.

Esto va lindo, ¿no les parece? Rebotado

Atte. CARLOS

La teoría es cuando se sabe todo y nada funciona. La práctica es cuando todo funciona y nadie sabe por qué.

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
RE: ayuda para medir baja frecuencia con pic 16f874
« Respuesta #23 en: 02 de Febrero de 2006, 12:31:00 »
A ver si les paso en que puedo aportar.

. C para pic, con el MPLABc18 en los PIC18.  El CCS lo odio pero lo he usado también (y respeto opiniones de otros).

. ASM para PIC16 o PIC18.

. Delphi como lenguaje de alto nivel en PC.


Carlos tu idea de ASM y C, me parece muy buena, es mas podría yo darte una mano para iniciarte en el C aunque desconozco los detalles del CCS pero para los 16F no hay chance de usar el C18.  

De todas formas reconozco que el VBasic es mas popular (aunque no se compara con el Delphi o el Borland Builder) pero para una aplicación simple funcionará.

Saludos
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado Chaly29

  • Moderador Global
  • DsPIC33
  • *****
  • Mensajes: 4315
RE: ayuda para medir baja frecuencia con pic 16f874
« Respuesta #24 en: 02 de Febrero de 2006, 14:12:00 »
Hola maunix, gracias por la oferta, y es aceptada, en realidad yo el C solo lo pretendo usar con la familia superior de PIC (18F en adelante) ya que en la gama baja me ciento muy cómodo con el .asm

De todas formas creo sabiendo usar el C18 no pienso que sea muy complicado de aprender el CCS, ¿o me equivoco?

Cambiando de tema el C18 ¿es gratuito? por que de no serlo ya lo tendríamos que descartar por las razones obvias.

Yo e propuesto el CCS y el Visual Basic, ya que como todos sabemos son los mas populares (no quiere decir que los mejores) pero en realidad no me cierro solo a esa idea ya que no conozco lo suficiente, ese tema se lo dejo a la gente que mas sepa

Espero mas aporte.

Atte. CARLOS

La teoría es cuando se sabe todo y nada funciona. La práctica es cuando todo funciona y nadie sabe por qué.

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
RE: ayuda para medir baja frecuencia con pic 16f874
« Respuesta #25 en: 02 de Febrero de 2006, 14:28:00 »
Escrito originalmente por Chaly29
Hola maunix, gracias por la oferta, y es aceptada, en realidad yo el C solo lo pretendo usar con la familia superior de PIC (18F en adelante) ya que en la gama baja me ciento muy cómodo con el .asm

De todas formas creo sabiendo usar el C18 no pienso que sea muy complicado de aprender el CCS, ¿o me equivoco?

Cambiando de tema el C18 ¿es gratuito? por que de no serlo ya lo tendríamos que descartar por las razones obvias.

Yo e propuesto el CCS y el Visual Basic, ya que como todos sabemos son los mas populares (no quiere decir que los mejores) pero en realidad no me cierro solo a esa idea ya que no conozco lo suficiente, ese tema se lo dejo a la gente que mas sepa

Espero mas aporte.

Atte. CARLOS




A ver vamos por partes.  En los 16, yo también uso el assembly porque es directo y  los compiladores de C son pocos optimos para esta arquitectura debido al paginado de DATA RAM y PROGRAM MEMORY, entonces un codigo que en assembly ocupa 10 bytes en C compilado termina siendo 100.

Con respecto a los del C18 y CCS, SI son diferentes y bastante diferentes.

El C18 es bastante compatible con las normas ANSI y tiene algo complejas como por ejemplo que las constantes de string se guardan en memoria flash y para pasarlas a memoria hay que hacer un comando de puntero que copie de FLASH a MEMORIA.  No se si he sido claro pero puedo ser mas extenso si hace falta.

Por otra parte el CCS es como un lenguaje de macros, mas que un compilador de C.  Lleno de definiciones por todos lados para hacer lo que uno haría con un par de instrucciones en assembly.  Las diferencias son bastantes.  Lo unico que se conserva es que hay un main o las funciones que devuelven un resultado pero después cambia todo.

Para usar el C18 haría falta usar un PIC18 y nuestro amigo propuso un 16F874 entonces habría que proponerle usar por ejemplo un 18F4520 (es identico pin a pin pero con clock interno y todo el potencial de un pic 18, con nanowatt technollogy, puede correr con clock interno a 32Mhz y el precio es el mismo).

Con respecto a si son pagos o no..... el C18 tiene una versión estudiante que no se cuantas líneas compila pero anda muy bien.

El CCS tampoco es free pero se lo consigue free... idem con el C18... asi que si es por costos... estamos en lo mismo.

En la parte de alto nivel usar Visual Basic me es indiferente, a lo sumo yo no haré ninguna colaboración al respecto ya que no lo uso ni lo quiero aprender Sonrisa  por considerarlo, en mi caso personal, una pérdida de tiempo en ir para "atras" en conocimiento y no para adelante.

De todas formas Carlos tampoco te creas que va a haber 40 desarrolladores.. jaja, a lo sumo seremos 3 o 4 (ojalá me equivoque).


Saludos

PD: carlos de donde sos? yo de córdoba.
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado Chaly29

  • Moderador Global
  • DsPIC33
  • *****
  • Mensajes: 4315
RE: ayuda para medir baja frecuencia con pic 16f874
« Respuesta #26 en: 02 de Febrero de 2006, 15:30:00 »
Hola maunix, as dejado en claro que de C no se nada Muchas risas.

Seria interesante poder usar in PIC de la familia 18F, pero en realidad lo veo un poco exagerado para la funciones que debe cumplir, ya que con un 16F870 creo que iría de sobrado para este tema, claro esta usando una comunicación tipo RS-232.

Yo soy de Venado Tuerto, al sur de Santa Fe, 60 Km más al sur de donde vive Norberto, tú eres de la ciudad de Cordoba o de la Provincia.

Bueno, nos vemos

Atte. CARLOS

La teoría es cuando se sabe todo y nada funciona. La práctica es cuando todo funciona y nadie sabe por qué.

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
RE: ayuda para medir baja frecuencia con pic 16f874
« Respuesta #27 en: 02 de Febrero de 2006, 18:39:00 »
Escrito originalmente por Chaly29
Hola maunix, as dejado en claro que de C no se nada Muchas risas.

Seria interesante poder usar in PIC de la familia 18F, pero en realidad lo veo un poco exagerado para la funciones que debe cumplir, ya que con un 16F870 creo que iría de sobrado para este tema, claro esta usando una comunicación tipo RS-232.

Yo soy de Venado Tuerto, al sur de Santa Fe, 60 Km más al sur de donde vive Norberto, tú eres de la ciudad de Cordoba o de la Provincia.

Bueno, nos vemos

Atte. CARLOS




Si,  dimensionar el PIC "justo" para el trabajo es una cuestión y hacer un proyecto didáctico es otra.  Por ahi usar un 18F sea mas didactico porque encamine a varios usuarios a perderles el miedo y yo lo puse en comparacion con el 18F874 que salen los mismo ahora con el 870 ya no es tan asi jeje.  Pero un par de dolares mas o menos tampoco hacen tannnto a la cuestión si es que el que lo quiere armar lo usa para aprender.

Vivo en Córdoba Capital, la tierra del cuarteto aunque yo nací en la pampa y me quedé aquí luego de haber estudiado Sonrisa
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado jorgeansuini

  • PIC18
  • ****
  • Mensajes: 340
RE: ayuda para medir baja frecuencia con pic 16f874
« Respuesta #28 en: 02 de Febrero de 2006, 18:49:00 »
Hola:

Me parece que CCS es mas común para todo el mundo ,aunque de alguna manera tambien se podría "traducir a C18 o viseversa.-

Por otro lado,para graficar hay un programita que es free y anda muy bien:

http://www.selmaware.com/stampplotlite/litedownload.htm

solo hay que tirarle los datos en ascii y el los va dibujando y responde muy rápido.-

Seguimos en contacto
Jorge

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
RE: ayuda para medir baja frecuencia con pic 16f874
« Respuesta #29 en: 03 de Febrero de 2006, 05:06:00 »
Escrito originalmente por jorgeansuini
Hola:

Me parece que CCS es mas común para todo el mundo ,aunque de alguna manera tambien se podría "traducir a C18 o viseversa.-

Por otro lado,para graficar hay un programita que es free y anda muy bien:

http://www.selmaware.com/stampplotlite/litedownload.htm

solo hay que tirarle los datos en ascii y el los va dibujando y responde muy rápido.-

Seguimos en contacto
Jorge


Si es por citar uno que sea free, yo nombraría el SDCC : Small Device C Compiler.

Un unico compilador para varios microcontroladores.  No lo sé usar, nunca lo usé pero antes que el CSS prefiero aprender a usar el SDCC.

http://sdcc.sourceforge.net/
Saludos

- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)