TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: pietrodilaccua en 20 de Enero de 2006, 07:49:00
-
Hola amigos, necesito medir 50 hz de la red electrica , pero con al menos un decimal (50,3 por ej). para esto he generado una medida de periodo de la onda entrante: al primer cruce por zero positivo pongo en marcha un contador de 1mseg y lo detengo al segundo cruce por zero positivo. obtengo asi una medida del periodo (T) bastante exacta, pero como hago ahora para llegar a la frecuencia = 1/T..... agradecere si alguien puede ayudarme con esta operacion o con otra forma de lograrlo.
HA... solo se programar en ensamblador.
un saludo a todos pietrodilaccua
-
Hola pietrodilaccua, pera empezar si tu hacer la medida en mseg, te comento que midiendo el periodo de una onda de 50Hz en milisegundos nunca podrás conseguir el tan ansiado decimal, para que lo entiendas:
siendo el periodo de :
19 mseg = 1 / 0.019 seg = 52.6 Hz
20 mseg = 1 / 0.02 seg = 50 Hz
21 mesg = 1 / 0.021 seg = 47.6 Hz
De lo anterior se deduce que tendrás que usar para la medición del periodo una unidad de tiempo menor. Yo te recomendaría que uses una unidad de tiempo de 20 microsegundos, entonces te quedaría así :
19980 useg = 1 / 0.01998 seg = 50.05 Hz
20000 useg = 1 / 0.02 seg = 50 Hz
20020 useg = 1 / 0.02002 seg = 49.95 Hz
Fíjate que en el primer ejemplo yo e sumado y restado 1 mseg a 20 mseg (periodo de la frecuencia de 50 Hz) y la resolución que conseguimos es mayor a 1 Hz.
En el segundo ejemplo yo e vuelto a sumar y restar esta ves 20 useg a los 20 mseg del periodo de la red, y esta ves conseguimos una resolución de 0.05 Hz
Por lo tanto nunca podrás medir una frecuencia de 50 Hz a una resolución de 1 decimal con un reloj con periodo de 1 micro-segundo.
Luego de que reformes el reloj para la medición del periodo postea que unidad de medida usaste (20 useg o mas o meno) y después te paso la rutina en asembler para que te haga los cálculos.
Perdona si la explicación es muy poco amena, pero lo hice con la intención de que puedas seguir con el proyecto y no te estanques en este punto.
Espero tu respuesta.
Atte. CARLOS
-
hola charly,
tu explicacion es muy clara, y me parece bien la base de tiempo en 20 microseg para la medicion.
agradezco tu gentileza,
un saludo afectuoso pietrodilaccua
-
Consulta de metido:
Pero no puede usar el modulo de captura a 16bits y despreciar los bits de menor peso para obtener lo que busca.?
-
Hola pietrodilaccua, me alegro poder haberte ayudado, si tienes mas dudas solo consultalas.
dioskamisama, si se puede hacer lo que tu comentas pero como el colega pietrodilaccua desea medir la frecuencia con 1 decimal de error, el tiempo entre lectura y lectura se elevaría a 10 segundos, lo cual a la hora de usar el instrumento es algo incomodo.
Suerte
Atte. CARLOS
Pda. Las preguntas aunque sean tontas, por metido, etc. no dejan de ser preguntas, y si no las hacemos ¿como aprendemos?
-
Escrito originalmente por Chaly29
Hola pietrodilaccua, me alegro poder haberte ayudado, si tienes mas dudas solo consultalas.
dioskamisama, si se puede hacer lo que tu comentas pero como el colega pietrodilaccua desea medir la frecuencia con 1 decimal de error, el tiempo entre lectura y lectura se elevaría a 10 segundos, lo cual a la hora de usar el instrumento es algo incomodo.
Suerte
Atte. CARLOS
Pda. Las preguntas aunque sean tontas, por metido, etc. no dejan de ser preguntas, y si no las hacemos ¿como aprendemos?
Yo opino otra cosa. En vez de hacer mediciones de cada ciclo , hacer mediciones "contando" los ciclos y midiendo el tiempo final y luego ahí sacar una conclusión de la frecuencia.
No tiene sentido medir la frecuencia CICLO A CICLO, es inutil para un medidor de frecuencia.
La frecuencia de línea rara vez cambia, y si cambia no lo hace ciclo a ciclo. Creo que es mal utilizar al microcontrolador y constituye un mal diseño de entrada.
Para que se quieren 50 mediciones por segundo si el cerebro humano solo procesa 25 cuadros por segundo pero cuando es la hora de leer un texto a lo sumo interpreta 1 o 2?
Si lo que se pretende es hacer un medidor de frecuencia, yo contaria 1000 cruces por cero, mediría el tiempo con acumuladores y prescalers y recien ahi haria el calculo del tiempo.
Tener que medir con precision de 10useg es una locura. El micro solo debiera hacer practicamente eso y encima no le dejaría tiempo para otras cuestiones lo cual limita mucho todo.
Saludos
-
Hola colega maunix, bueno se a ti te parece una locura medir la frecuencia de la red con una base de tiempo de 10 o 20 useg. y prefieres hacerlo midiendo el tiempo que se demora en contar 1000 pulsos, explícame lo siguiente:
En el caso de tener que sincronizar un generador con la frecuencia de la red, o de tener que controlar la frecuencia de salida de un generador, ¿como lo harías tu siendo que tienes una demora en la lectura de 20 seg.? te llevaría toda una vida, los instrumentos de mediciones como lentos deben de tener una tasa de refresco de 1Hz.
Aparte una medición de 20 segundos no es una muy fiel ya que si la frecuencia aumenta y baja constantemente el instrumento te indicaría el promedio y no la real.
Estos son algunos de los varios motivos por el cual no se realiza de la manera que tu propones.
Por otro lado tu dices:"contando" los ciclos y midiendo el tiempo final acaso esto no es lo mismo que lo que yo exprese mas arriba MEDIR EL PERIODO DE LA SEÑAL pero más complicado.
Atte. CARLOS
-
Escrito originalmente por Chaly29
Hola colega maunix, bueno se a ti te parece una locura medir la frecuencia de la red con una base de tiempo de 10 o 20 useg. y prefieres hacerlo midiendo el tiempo que se demora en contar 1000 pulsos, explícame lo siguiente:
En el caso de tener que sincronizar un generador con la frecuencia de la red, o de tener que controlar la frecuencia de salida de un generador, ¿como lo harías tu siendo que tienes una demora en la lectura de 20 seg.? te llevaría toda una vida, los instrumentos de mediciones como lentos deben de tener una tasa de refresco de 1Hz.
Aparte una medición de 20 segundos no es una muy fiel ya que si la frecuencia aumenta y baja constantemente el instrumento te indicaría el promedio y no la real.
Estos son algunos de los varios motivos por el cual no se realiza de la manera que tu propones.
Por otro lado tu dices:"contando" los ciclos y midiendo el tiempo final acaso esto no es lo mismo que lo que yo exprese mas arriba MEDIR EL PERIODO DE LA SEÑAL pero más complicado.
Atte. CARLOS
Je lo bueno de los foros es cuando se intercambian opiniones.
Estamos hablando de un equipo que mida frecuencia de línea, nadie aclaró bien para que. El ejemplo de los 1000 ciclos fue solo un ejemplo, no necesariamente tiene que ser así pero tampoco considero que se deba hacer cada ciclo.
A ver, has comentado varias cosas para lo cual te paso mi opinion.
1) En el caso de tener que sincronizar un generador con la frecuencia de la red:
Nuevamente la frecuencia de RED es casi exacta al 50,0Hz . Esto es así ya que todos los sistemas que generan lo hacen controlando muy bien su frecuencia de salida para luego salir a generar. Suele haber castigos muy importantes para un proveedor de electricidad que no genere en 50,0Hz y es por esto que se preocupan por dicho valor.
Entonces nuevamente si me quiero sincronizar con un equipo de red, debo irme acercando lo suficiente como para lograr sincronizar los cruces por cero del sistema. Si estoy a más frecuencia deberé acercame con una menor frecuencia. En caso contrario deberá acercarse a mayor frecuencia. En este caso lo importante y fundamental es el cruce por cero.
Un motor presenta constantes que son mecánicas las cuales no reaccionan de inmediato como lo hace un microcontrolador, es por esto que no es buena idea controlar al ciclo una onda que en realidad varía muy lentamente en comparación con la del microcontrolador.
2) En caso de tener que controlar la frecuencia de salida de un generador
Nuevamente, un generador es un motor. Los motores no cambian su frecuencia ciclo a ciclo y además las constantes que los gobiernan son lentas. Lo que se busca es establecer un lazo de realimentación para dichas constantes.
La variable de control que suele ser la tensión del generador o en este caso sería una relacion de conversión de caja o bien la tensión de inducido, es el parámetro a controlar.
A uno no se le ocurre cambiar esta tensión o la relacion de caja ciclo a ciclo... sería una locura además de que no conduce a nada ya que las contantes de respuesta de un motor son mucho mas lentas que lo que puede hacer un microcontrolador.
No quiero entrar con aburridos conceptos de control pero es algo básico esto que estamos hablando.
Es por eso que medir ciclo a ciclo tanto para un aparato de medición como para sincronizar un generador no tiene mayor sentido.
Mi idea es la siguiente:
Si se mide cada 20 useg el micro estará practicamente haciendo eso todo el tiempo y además sin sentido. Si se mide cada ciclo y se cuentan 50 ciclos (para lograr la medicion de 1 Hz) y luego se toma ese tiempo y se hace el cálculo, nadie lo habrá notado y encima logramos la precisión que deseabamos sin necesidad de estar todo el tiempo midiendo fracciones milimétricas de segundo. Por otra parte siempre es mejor tomar una medida grande de tiempo y calcular sobre ella que medir cada ciclo en intervalos de 10useg por los temas de precisión de las operaciones binarias y de los timers.
Espero se me haya entendido.
Saludos Carlos
-
Hola maunix, no necesariamente el micro debe perder casi todo el tiempo en controlar ese periodo, lo puede hacer por medio del timer y una interrupcion..
Por otro lado , ya me gustaría ver un generador que este conectado a la red y genera mas o menos de 50 Hz, mas que multas tendrá un gran gasto en reparaciones 
Como mi deseo no es seguir deliberando sobre este tema, por mi lado lo corto acá y nada mas, veo que las opiniones son distintas y yo para dar la mía me e colocado en el lugar de la persona que realizo el post y viendo que esta ya estaba trabajando de esta forma propuse mi respuesta, tal es así que a él mismo le pareció buena idea.
Suerte, un saludo
Atte. CARLOS
-
Carlos, no fue mi intención agredir a nadie ni creo que esto del foro sea para competir a ver quien convence a quien de la solución que uno sugiere.
En los foros se aprende mucho sobre todo de la diversidad de pensamiento, precisamente porque cada uno tiene una forma diferente de resolver los problemas.
En este punto hemos discentido como en otros puntos hemos estado de acuerdo, acaso no es importante que todos pensemos algo diferente? No sería tan aburrido si fuera todo monotono?
Saludos
-
Hola:
Antes de que sigan peleando ,voy a agregar un par de comentarios (el tema de medir la frecuencia de linea es bastante conocido por mi) .-
Para medir bajas frecuencias los frecuencimetros "BUENOS" y no tan viejos aplicaban el metodo de medir durante 10 segundos (el tiempo de gate). -
Otro método era usar un PLL y multiplicar por 1000 para tener los ansiados decimales (esto solo lo vi en libros) .
El otro método era medir el período y sacar el cálculo correspondiente ,lo que actualmente es relativamente sencillo con los micros.-
Aparte ,actualmente ,gracias a los DSP se mide la frecuencia de linea en menos de 20 msegundos ,puede sonar extraño lo que digo ,que en menos de un ciclo tengamos la frecuencia ,pero justamente son reles de protecciones o IEDs que no solo miden frecuencia,sino tambien derivada y otras cosa ,todo esto para tratar de mantener la frecuencia en 50 ciclos. En caso de que baje a un valor menor de 49 y tanto (no conozco precisamente ese tanto ,pero lo puedo averiguar) se comienza a sacar carga de las estaciones transformadoras ,para mantener el sistema nacional en linea y evitar colapsos.En funcion de cuan menor sea esta frecuencia ,se saca mas carga .pero estas hablando de variaciones de quizas 0,30 ciclos ,osea 49,7 ciclos .Si no elimino el valor correspondiente de potencia que es un porcentaje dado por el ente nacional (en argentina CAMMESA) comienzo a pagar multa. Asi que casi diria que la frecuencia del sistema nacional la podemos redondear en 50 ciclos.-
Otro comentario: Cuando medimos frecuencia para sincronizar un generador a la red ,esta es uno de los parametros a tener en cuenta, existen 2 mas para darnos sincronismo y poder acoplar un generador a la línea ,que son la secuencia de fase y la tensión. Para sincronizar un generador (hablo de generadores hidráulicos relativamente grandes ) lo que se hace es buscar igualdad de tensiones con 2 voltimetros y ajustando la exitacion del generador ,igualdad de frecuencia con 2 frecuencimetros que hasta hace poco y todavia se usan,son de lengüeta .y sincronismo con un sincronoscopio.-
Para aclarar lo que es el sincronismo yo puedo tener los 2 generadores en 50 ciclos clavados, pero el paso por cero de cada ciclo no coicide ,entonces si los acoplo estaria haciendo lo que se conoce como falso paralelo y no me permitiria acoplar. La unica manera que existe de buscar el paralelo es variando la frecuencia de uno de ellos (ojo solo un poco) entonces se hacercan los pasos por cero y se sincronizan ,en ese momento se efectua el acoplamiento eléctrico y de hay en mas mayormente la frecuencia de la linea "lleva " a la de nuestro generador. Por supuesto el generador tambien ayuda con algun mecanismo para mantener la velocidad constante respecto a su carga (los que yo maneje durante un año tenian un sistema bastante ingenioso por fuerza centrifuga para habrir una válvula de aceite).-
Solo una pequeña contribución .-
Jorge
-
Hola jorgeansuini, gracias por los aportes, como ya había dicho en el post anterior no pensaba seguir discutiendo algo que no había motivo para discutir, como tú comentas las 2 opciones que dábamos son valederas, aparte de que agregas una tercera (ahora ya somos 3 discutiendo
).
Lo único que voy a comentar es que la opción de medir la frecuencia en menos de 1 ciclo no la conocía.
Comento que mi intención fue solo aconsejar a pietrodilaccua en base a un método que el ya disponía o ya tenia creado, si lo echo esta mal pido disculpas.
Saludos y suerte a todos.
Atte. CARLOS
Pda. de todas formas las malas ondas con maunix creo ya fueron superadas, ¡por lo menos de mi parte!
-
Escrito originalmente por Chaly29
Pda. de todas formas las malas ondas con maunix creo ya fueron superadas, ¡por lo menos de mi parte!
Jeje Carlos, estabas peleando solo! yo no me tome a mal nada de lo que tu dijiste. Creo que por ahi el lenguaje escrito carece de emotividad o el que lee interpreta la emotividad que le parece y entonces un texto normal suena agresivo o viceversa.
Para que te quedes tranquilo, si te quisiera agredir lo entenderías de primera, soy ingeniero! jajaja, los ingenieros no andamos con sutilizas no?
A lo que voy es que no será la última vez en que estemos en desacuerdo, pero no por eso hay que enojarse. En mi trabajo comparto con varios otros ingenieros opiniones todo el tiempo así que uno se acostumbra a discentir.
No siempre lo que uno propone es la mejor solución y en el conjunto de opiniones realmente se obtienen soluciones más óptimas que la que uno había pensado al principio.
Hola jorgeansuini, también te doy gracias por los aportes. El método de sincronizar generadores es similar a lo que yo expuse solo de buscar sincronizar el cruce por cero, que yo lo imaginé por solo sentido común y asociacion de ideas de otras aplicaciones en las que he estado involucrado. Esto lo menciono no para quitarte mérito sino que me pongo contento que estas cosas se hagan como a mi me parecía lógico que se hicieran 
Tus aportes técnicos con términos precisos de lo que se "usa" en el mercado me parece muy valioso y sería lindo que en Argentina no solo se pague multa cuando estén fuera de frecuencia sino cuando te dejan 4 horas sin luz!! jejeje
Saludos
-
Maunix:
Como estás?
Bueno,lo de las multas está perfecto ,pero eso depende del ente regulador de cada provincia. En el caso de mi provincia el ente es bastante estricto y se multa si se deja sin servicio mas de 3 minutos ,si señor ,aunque usted no lo crea es asi y despues se reintegra esa falta de servicio en la factura del cliente (tengo facturas que asi lo confirmar) ,pero este peuqueño tiempo tiene un inconveniente: en caso de apertura de interruptores ,los operadores tratan de volver a cerrar lo antes posible ,y esto te lleva a que a veces sea peor el remedio que la enfermedad ya que podes tener fallas grandes y reventar equipamiento. Y cuando se comanda a distancia es bastante complicado ,ya que hablamos de distancias de hasta 450kms. y muy buena cantidad de interruptores.-
Lo lamentable de estas exigencias es que son de la epoca de dolar 1 a 1 donde comprar un instrumento nuevo no era tan dificil (un IED sale 1500 dolares igual que un rele de protecciones y no hablemos del precio de una RTU).-
Por otro lado trate de explicar el tema eléctrico porque no se porque causa he visto en varios lugares que estan necesitados de un frecuencimetro de baja frecuencia con decimales, típico de los de sistemas eléctricos.-
Ahora el desafio:
Ya hemos hablado de métodos de medir frecuencia y el porque si rápido o lento, pero falta ver código y circuitos electrónicos ¿no les parece?.-
a ver quien empieza
Saludos
Jorge
-
Hola jorgeansuini, ¿Tiraste la piedra y escondiste la mano? o ¿También vas a presentar un proyecto?, seria lindo poner unos parámetros máximos y mínimos para cumplir, ej: costo final, complicación del desarrollo, tamaño del PCB, etc. No les parecería.
Nos vemos
Atte. CARLOS
-
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
-
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?
-
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 )
-
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.
-
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ú
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
-
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.-
-
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
-
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? 
Atte. CARLOS
-
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
-
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
-
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
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.
-
Hola maunix, as dejado en claro que de C no se nada
.
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
-
Escrito originalmente por Chaly29
Hola maunix, as dejado en claro que de C no se nada
.
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 
-
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
-
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
-
Me parece que vamos a terminar programando en .asm

Saludos
Atte. CARLOS