TODOPIC
Microcontroladores PIC => Almacén del Assembler => Mensaje iniciado por: pgvs25 en 27 de Julio de 2013, 00:27:46
-
Intento hacer un generador de PWM con frecuencia de 60Hz, ademas necesito que al existir un impulso en el INT0/RB0 se resetee la forma de onda, esto con el fin de poder sincronizarla con la red, debido a que el detector de cruce por cero lo tengo realizada para el flanco negativo tengo que iniciar la forma de onda desde cero hacia abajo en la interrupcion, pero hay algo que no me esta cuadrando ya que ni la PWM me da jeje, a ver si me puede alguien hechar una mano con que es lo que me esta faltando en el codigo... hace mucho q no hacia un programa y estoy un poco oxidado en el tema. El programa lo he hecho con salida en un pin que es el CCP1/RC2, pero si me pueden ayudar para que funcione en la salida complementaria pues lo agradeceria, caso contrario eso lo realizaria por hardware.
Espero y me puedan ayudar, ahi les dejo el codigo explicado lo mejor que he podido.
list p=18f4550
#include "p18f4550.inc"
;Símbolos
;Parámetros de demora
cont_val = 0x0b
;====================
org 0
goto inicio
org 0x18
goto INT_low ;rutina de atencion a IT de baja prioridad
;==================================================================================================
;Configuarción de hardware y condiciones iniciales de variables
;--------------------------------------------------------------------------------------------------
;PORTC
inicio bcf TRISC,2 ;salida del PWM
;==================================================================================================
;Configuración del periodo de PWM y del registro CCP1CON
movlw d'42' ;Aqui es un valor q saque de un programa aunq segun mi calculo deberia ser: d'51'
movwf PR2 ;Frecuencia de PWM = 6KHz
movlw 0x0F
movwf CCP1CON; Configura el modo PWM en "single output "
;==================================================================================================
;Configuración del TIMER 0
;--------------------------------------------------------------------------------------------------
;Timer0 es configurado como timer/counter de 8-bit; Prescale 1:8
movlw b'01000010'
movwf T0CON
;==================================================================================================
;Configuración del TIMER 2
;--------------------------------------------------------------------------------------------------
;Timer 2: Cargado con un pre-escaler de 16
movlw b'00000011'
movwf T2CON
;==================================================================================================
;Interrupciones
bcf RCON,7 ;se desabilitan las prioridades resgistro RCON
;Interrupciones
movlw b'01000000' ;Deshabilitadas interrupciones, Habilitan interrupciones externas (bit6) habilitadas individualmente
movwf INTCON
;Int_timer 0
bsf INTCON,TMR0IE ;Habiliada interrupcion del TMR0 por overflow
bcf INTCON,GIE ;espera por condiciones de arranque
bsf INTCON,INT0IE ;Habilita IT externa en PORTB0
bcf INTCON2,INTEDG0 ;Falling o activo a la bajada
;==========================================
;Condiciones iniciales
movlb 0 ;BSR=0 ubicación en el banco 0
clrf cont_val
clrf CCPR1L ;Ciclo Util = 0
;==========================================
;arranque
bsf T0CON,7 ;arranca timer 0
bsf T2CON,2 ;arranca timer 2
bsf INTCON,7 ;arrancan ITs
;==========================================
;Lazo principal
again goto again
;==========================================
;Interrupción
;-----------------------------------------------------------------------------
INT_low ;Pregunta por banderas de IT
btfss INTCON,TMR0IF ;¿int timer 0?
goto dos
call ini_tab
movlw d'64'
tabla cpfseq cont_val ; compara con las 64 muestas tomadas
goto mover
clrf cont_val
goto back
;Mueve el valor a CCPR1L
mover movf cont_val,w
mullw 2
movff PRODL,TBLPTRL ;apunta al valor de la tabla
TBLRD*+
movff TABLAT,CCPR1L ; mueve el valorde la tabla al CCPR1L
incf cont_val
back bcf INTCON,TMR0IF
bcf INTCON,INT0IF
retfie 1
dos btfss INTCON,INT0IF ;¿interrupcion externa en puerto Rb0?
goto back
movlw d'33' ;cargo valor 33 por el condensador que se demora medio ciclo en cargarse
movwf cont_val
goto tabla
;========= Inicia la TAbla o ACCESA============
ini_tab clrf TBLPTRL
movlw 6
movwf TBLPTRH
clrf TBLPTRU
return
;==============================================================
;Demoras
;--------------------------------------------------------------------------------------------------
;Tabla de valores de la onda!!!!
org 0x600
data 0x80,0x8C,0x98,0xA5,0xB0,0xBC,0xC6,0xD0,0xDA,0xE2,0xEA,0xF0,0xF5,0xFA,0xFD
data 0x0E,0xFF,0xFE,0xFD,0xFA,0xF5,0xF0,0xEA,0xE2,0xDA,0xD0,0xC6,0xBC,0xB0,0xA5,0x98
data 0x8C,0x80,0x73,0x67,0x5A,0x4F,0x43,0x39,0x2F,0x25,0x1D,0x15,0xF,0xA,0x5,0x2,0x1
data 0x0,0x1,0x2,0x5,0xA,0xF,0x15,0x1D,0x25,0x2F,0x39,0x43,0x4F,0x5A,0x67,0x73
;--------------------------------------------------------------------------------------------------
end
Saludos, Pedro.
-
Intento hacer un generador de PWM con frecuencia de 60Hz, ademas necesito que al existir un impulso en el INT0/RB0 se resetee la forma de onda, esto con el fin de poder sincronizarla con la red, debido a que el detector de cruce por cero lo tengo realizada para el flanco negativo tengo que iniciar la forma de onda desde cero hacia abajo en la interrupcion, pero hay algo que no me esta cuadrando ya que ni la PWM me da jeje, a ver si me puede alguien hechar una mano con que es lo que me esta faltando en el codigo... hace mucho q no hacia un programa y estoy un poco oxidado en el tema. El programa lo he hecho con salida en un pin que es el CCP1/RC2, pero si me pueden ayudar para que funcione en la salida complementaria pues lo agradeceria, caso contrario eso lo realizaria por hardware.
¿Que es un dimmer o algo parecido?, es decir ¿quieres recortar la onda de alterna?.
Creo que para lo que quieres con cualquier 16f te llegaria de sobra, incluso con un 12f y a lo mejor un 10f, para progranar en ensamblador creo que te irian mejor estas series que la 18f, aparte de que son mas baratos y ocupan menos espacio en la placa.
-
Intento hacer un generador de PWM con frecuencia de 60Hz, ademas necesito que al existir un impulso en el INT0/RB0 se resetee la forma de onda, esto con el fin de poder sincronizarla con la red, debido a que el detector de cruce por cero lo tengo realizada para el flanco negativo tengo que iniciar la forma de onda desde cero hacia abajo en la interrupcion, pero hay algo que no me esta cuadrando ya que ni la PWM me da jeje, a ver si me puede alguien hechar una mano con que es lo que me esta faltando en el codigo... hace mucho q no hacia un programa y estoy un poco oxidado en el tema. El programa lo he hecho con salida en un pin que es el CCP1/RC2, pero si me pueden ayudar para que funcione en la salida complementaria pues lo agradeceria, caso contrario eso lo realizaria por hardware.
¿Que es un dimmer o algo parecido?, es decir ¿quieres recortar la onda de alterna?.
Creo que para lo que quieres con cualquier 16f te llegaria de sobra, incluso con un 12f y a lo mejor un 10f, para progranar en ensamblador creo que te irian mejor estas series que la 18f, aparte de que son mas baratos y ocupan menos espacio en la placa.
En realidad quiero hacer un inversor... en realidad solamente tengo nociones del 18f4550 que fue el que aprendimos en las aulas, asi como tambien tocamos un poco del 16f871, tambien lo he intentado, en el 16f871, pero sin resultados, almenos este 18f4550 en la vida real me da solamente una parte de la onda, aunque a veces si y a veces no, a parecer tiene que ver algo con la configuracion... en el 16f871 me funciona la interrupcion por el puerto externo pero no logro hacer salir el pwm, si quieres te paso el codigo en 16f para que le heches un vistazo aunque es muy similar, solamente diferencia la configuracion y una que otra cosa por ahi... Ademas he puesto el ejemplo en 18f4550 ya que veo que ese pic lo manejan mas aca en el foro que el 16f.
Saludos, Pedro.
-
En realidad quiero hacer un inversor...
Entonces no tienes que sincronizar la onda, para hacer un inversor tienes que rectificar primero, y ya en DC la conviertes en alterna. ¿No?
-
En realidad quiero hacer un inversor...
Entonces no tienes que sincronizar la onda, para hacer un inversor tienes que rectificar primero, y ya en DC la conviertes en alterna. ¿No?
A ver si me explico un poco mejor.
Tengo una fuente de Corriente continua.... lo que necesito es esa fuente de corriente continua transformarla en fuente de corriente alterna (inversor), luego la parte de sincronizar se podria decir que es un segundo tema, para ese segundo tema me va a ayudar la parte de la interrupcion externa.
-
No entiendo lo que estas haciendo, pero bueno es que la serie 18f no la controlo mucho, lo que si veo es que efectivamente la salida PORTC,2 salida del PWM no varia.
Pon el que tienes para el 16f871, a ver si con ese me entero algo mas. Nunca hice esto para monofasica, pero te explico como creo que es:
Para generar el PWM de 6KHz cada 167uS tienes que poner a 1 el PORTC,2 y ponerlo a 0 cuando acaba su DUTTY correspondiente que sera diferente en cada PWM primero sera de 0 (este sera el paso por 0 de la onda alterna) no hay que detectarlo porque eres tu quien lo hace, el segundo PWM tendra un DUTTY del 10% es decir 16 o 17us (asi seria una onda de 10 niveles, que deben ser multiplos de 3, pero bueno...) el tercero del 20% y asi sucesivamente hasta llegar al 100%, entonces empezara a bajar, primero al 90%, despues al 80% ..........del 10% y de 0, que sera el cruce por 0 nuevamente y e haras lo mismo pero con sentido inverso de corriente para hacer la semionda negativa. Tendras que hacer los calculos para que con todas estas te salga una frecuencia de 60Hz de alterna. Bueno esta es la manera de hacerlo que yo se, no se si tu lo haces asi o de otra manera, que habra otras maneras de hacerlo, supongo.
No se que hard esta usando, supongo que un puente H, tendras que poner bobinas para que conviertan los PWMs en niveles de tension, si es para alimentar un motor las bobinas del motor ya te hacen esta funcion, pero si es para alimentar una vivienda...
-
Exactamente, la salida PORTC,2 que es la salida del PWM no varia cuando deberia variar....
A ver si puedo explicar un poco mejor porque talves por la tabla no me entiendas....
Utilizo una resolución en el PWM de 8 bits (256 niveles de tensión). Lo que intento hacer es que estos niveles (salida PWM) varíen en el tiempo para describir una señal seno.
Primero elijo que resolución en frecuencia deseo darle a la "salida seno", es decir cuantos niveles de tensión deseas tener en un ciclo de la senoide, esto lo hago cada 5,625 grados eléctricos (el ciclo completo es 2pi=360 grados) por lo cual tendre 64 niveles distintos.
Para realizar lo anterior debo tener una salida PWM (obvio) y un timer que es el que te actualizará el valor del duty cycle de la salida.
Entonces calculo el tiempo en el que el timer debe recalcular el duty cycle de la salida.
Lla frecuencia de la seno es 60Hz por lo tanto:
el período es ------>60 Hz = (1/60)seg = 16,67 ms
esto es lo que dura un período de la seno, como lo actualizamos cada 5,625 grados tendremos 64 niveles y cada uno durará:
Tiempo del timer ----> Tt = período / 64 = 16,67 / 64 = 260,468 Useg
Estos 260 Useg es cada cuanto debes recalcular el duty cycle del PWM.
Ahora bien, para calcular este duty cycle habría que calcular el seno de 5,625 grados, el de 11,25... hasta el de 360 grados y nuevamente el seno de 5,625.....y asi eternamente, esto es muy complejo de realizar con un microcontrolador de 8 bits. Lo que se hace es colocar los 64 resultados en una tabla, e irlos leyendo con la frecuencia que te da el timer que acabamos de calcular.
Luego los valores de la tabla serán:
para 0o = ((seno 0o)*127)+127 = 127
para 5,625o = ((seno 5,625o)*127)+127 = 139,44
para 11,25o = ((seno 11,25o)*127)+127 = 151,77
.
.
para 90o = ((seno 90o)*127)+127 = 254
.
.
para 180o = ((seno 270o)*127)+127 = 127
.
.
para 270o = ((seno 270o)*127)+127 = 0
.
.
para 360o = ((seno 360o)*127)+127 = 127
Estos valores son los que coloco en el PWM para ajustar el duty cycle, pero los transformo en hexadecimal
Entonces leo esta tabla e incremento el puntero de lectura (cont_val), al llegar al final debes comenzar nuevamente.
Aqui estoy algo confundido ya q no se si tengo q utilizar la bandera del Timer 2 o algo mas?? solamente ocupo la bandera del Timer 0.... la verdad que tambien estoy un poco oxidado en programacion y por eso queria ver si alguien me podia colaborar a ver en que me estoy equivocando o que me esta faltando.
Aqui el codigo en 16f871, a ver si ahi me pedes ayudar
list p=16F871
#include "p16f871.inc"
;Auxiliares
cont_val = 0x01
aux1 = 0X02
;====================
org 0x00
goto inicio
org 0x04
goto INT ;rutina de atencion a IT de baja prioridad
;==================================================================================================
;Configuarción de hardware y condiciones iniciales de variables
;--------------------------------------------------------------------------------------------------
inicio
;PORTC
movlw b'00100000' ;Pasa al Banco1
movwf STATUS
bcf TRISC,2 ;salida del PWM
;==================================================================================================
;Configuración del periodo de PWM y del registro CCP1CON
movlw 0x0F
movwf CCP1CON; Configura en modo PWM
movlw d'81'
movwf PR2 ;Frecuencia de PWM = ; PR2 = [(Fosc*Tpwm)/(Prescaler*4)]-1 = [(20E6*(260,468E-6))/(16*4)]-1= 81
;==================================================================================================
;Configuración del TIMER 0
;--------------------------------------------------------------------------------------------------
;TOverflow max apagado
movlw b'00000010' ;configura el prescaler 1:8, y la int por flanco de bajada (bit6)
movwf OPTION_REG
;==================================================================================================
;Configuración del TIMER 2
;--------------------------------------------------------------------------------------------------
;Timer 2: overflow max. apagado
movlw b'00000011' ; cargado con un pre-escaler de 16 y post-escaler de 1:1
movwf T2CON
bsf PIE1,TMR2IE
;==================================================================================================
;Interrupciones
bcf INTCON,GIE ;Deshabilitadas todas las interrupciones
bsf INTCON,PEIE ;Habilitadas de IT perifericas
bsf INTCON,INTE ;Habilita IT externa en PORTB0
;Int_timer 0
bsf INTCON,T0IE ;Habilita IT del TMR0
bsf INTCON,TMR0IE ;Interrupción de desbordamiento del Temporizador 0 habilitada
bcf OPTION_REG,INTEDG ;La interrupción externa en Rb0 se dispara por flanco de bajada.
;==================================================================================================
;Condiciones iniciales
movlw b'00000000' ;configura el prescaler 1:8, y la int por flanco de bajada (bit6)
movwf STATUS ;BSR=0 ubicación en el banco 0
;==========================================
;arranque
bsf T2CON,TMR2ON ;arranca timer 2
bsf INTCON,GIE ;arrancan ITs y TMR0
;==========================================
;Lazo principal
again goto again
;==========================================
;Interrupción
;-----------------------------------------------------------------------------
INT ;Pregunta por banderas de IT
btfss INTCON,INTF
goto a
goto int_ext
a btfss INTCON,T0IF ;¿int timer 0?
goto volver
call ini_tabla
movlw d'64'
movwf aux1
tab decfsz aux1,1
goto mover
clrf cont_val
goto volver
int_ext
bcf PORTC,2
bcf INTCON,INTF
retfie
mover incf cont_val,1
pageselw tabla
movf cont_val,w
call tabla
movwf CCPR1L
goto tab
volver bcf INTCON,T0IF
retfie
;========= Inicia la TAbla o ACCESA============
ini_tabla
movlw 0
clrf cont_val
return
;==============================================================
;Demoras
;--------------------------------------------------------------------------------------------------
;Tabla de valores de la onda!!!!
org 0x600
tabla
ADDWF PCL,1 ; W = offset
RETLW 0X7F ; Empieza la tabla
RETLW 0X8B ;
RETLW 0X97 ;
RETLW 0XA3 ;
RETLW 0XAF ;
RETLW 0XBA ;
RETLW 0XC5 ;
RETLW 0XCF ;
RETLW 0XD8 ;
RETLW 0XE1 ;
RETLW 0XE8 ;
RETLW 0XEF ;
RETLW 0XF4 ;
RETLW 0XF8 ;
RETLW 0XFB ;
RETLW 0XFD ;
RETLW 0XFE ;
RETLW 0XFD ;
RETLW 0XFB ;
RETLW 0XF8 ;
RETLW 0XF4 ;
RETLW 0XEF ;
RETLW 0XE8 ;
RETLW 0XE1 ;
RETLW 0XD8 ;
RETLW 0XCF ;
RETLW 0XC5 ;
RETLW 0XBA ;
RETLW 0XAF ;
RETLW 0XA3 ;
RETLW 0X97 ;
RETLW 0X8B ;
RETLW 0X7F ;
RETLW 0X72 ;
RETLW 0X66 ;
RETLW 0X5A ;
RETLW 0X4E ;
RETLW 0X43 ;
RETLW 0X38 ;
RETLW 0X2E ;
RETLW 0X25 ;
RETLW 0X1C ;
RETLW 0X15 ;
RETLW 0XE ;
RETLW 0X9 ;
RETLW 0X5 ;
RETLW 0X2 ;
RETLW 0X1 ;
RETLW 0X0 ;
RETLW 0X1 ;
RETLW 0X2 ;
RETLW 0X5 ;
RETLW 0X9 ;
RETLW 0XE ;
RETLW 0X15 ;
RETLW 0X1C ;
RETLW 0X25 ;
RETLW 0X2E ;
RETLW 0X38 ;
RETLW 0X43 ;
RETLW 0X4E ;
RETLW 0X5A ;
RETLW 0X66 ;
RETLW 0X72 ;
RETLW 0X7E ;
;--------------------------------------------------------------------------------------------------
end
Saludos, Pedro.
No entiendo lo que estas haciendo, pero bueno es que la serie 18f no la controlo mucho, lo que si veo es que efectivamente la salida PORTC,2 salida del PWM no varia.
Pon el que tienes para el 16f871, a ver si con ese me entero algo mas. Nunca hice esto para monofasica, pero te explico como creo que es:
Para generar el PWM de 6KHz cada 167uS tienes que poner a 1 el PORTC,2 y ponerlo a 0 cuando acaba su DUTTY correspondiente que sera diferente en cada PWM primero sera de 0 (este sera el paso por 0 de la onda alterna) no hay que detectarlo porque eres tu quien lo hace, el segundo PWM tendra un DUTTY del 10% es decir 16 o 17us (asi seria una onda de 10 niveles, que deben ser multiplos de 3, pero bueno...) el tercero del 20% y asi sucesivamente hasta llegar al 100%, entonces empezara a bajar, primero al 90%, despues al 80% ..........del 10% y de 0, que sera el cruce por 0 nuevamente y e haras lo mismo pero con sentido inverso de corriente para hacer la semionda negativa. Tendras que hacer los calculos para que con todas estas te salga una frecuencia de 60Hz de alterna. Bueno esta es la manera de hacerlo que yo se, no se si tu lo haces asi o de otra manera, que habra otras maneras de hacerlo, supongo.
No se que hard esta usando, supongo que un puente H, tendras que poner bobinas para que conviertan los PWMs en niveles de tension, si es para alimentar un motor las bobinas del motor ya te hacen esta funcion, pero si es para alimentar una vivienda...
-
Vale, correcto, vas a hacer una onda senoidal casi perfecta, joder 256 niveles ((:-)) ((:-)), tengo visto en algunos motores trifasicos senoides de 3 niveles y, a pesar de que muy mala, andan como si nada.
Bien como ecte PIC nunca lo programe te pregunto ¿Estos dos reg. estan bien ahi?
;Auxiliares
cont_val = 0x01
aux1 = 0X02
Te entra en interrupcion a los 5.8uS y ya no se sale de ahi, ejecuta el retfie pero en vez de volver aqui:
;Lazo principal
again goto again
Se va directamente al vector de interrupcion a pesar de que INTCON,GIE si se borra, TMR0 no llega a desbordarse (con el tiempo lo hara claro) y PORTC,2 esta siempre a 0, no se porque entra en interrupcion y lo peor no se porque nunca se sale de ella, ahora ando apurado mañana a ver si lo miro con mas detalle.
-
Funcionan para motores ya q no se necesita q la forma de onda sea muy buena... como comentaba al principio luego de que me de la onda sinusoidal voy a utilizar la interrupcion para poder sincronizar la onda a la red pero eso ya es otra historia... por ahora quiero que me salga la forma de onda....
Con respecto a tus preguntas de las Auxiliares.... pues se que tengo que declararlas, lo que no recuerdo es como o en que ubicacion tengo que hacerlo... realmente yo estuve apartado de los PICs como 5 años, y recien ahora estoy tomandolos nuevamente y es por eso que ando con muchas dudas y ando en busca a ver si alguien me puede quitar esas dudas y por sobre todo ayudar con este codigo...
El porque se entra en la interrupcion y no sale de ahi es seguramente por la declaracion de esas variables, seguramente estan incorrectas pero ya no recuerdo como hacerlo, y para colmo no tengo ni un ejemplo tengo de lo que habia hecho en el tiempo de estudiante ya que por problemas en mi computador tuve q formatearlo y jamas hice respaldo de eso.... Por eso mismo acudi al foro a ver si alguien me podia hechar una mano, ya con la parte que tengo del programas pues a ver si alguien puede ahi echarle mano y hecharlo a correr jejejeje
Saludos, Pedro.
Vale, correcto, vas a hacer una onda senoidal casi perfecta, joder 256 niveles ((:-)) ((:-)), tengo visto en algunos motores trifasicos senoides de 3 niveles y, a pesar de que muy mala, andan como si nada.
Bien como ecte PIC nunca lo programe te pregunto ¿Estos dos reg. estan bien ahi?
;Auxiliares
cont_val = 0x01
aux1 = 0X02
Te entra en interrupcion a los 5.8uS y ya no se sale de ahi, ejecuta el retfie pero en vez de volver aqui:
;Lazo principal
again goto again
Se va directamente al vector de interrupcion a pesar de que INTCON,GIE si se borra, TMR0 no llega a desbordarse (con el tiempo lo hara claro) y PORTC,2 esta siempre a 0, no se porque entra en interrupcion y lo peor no se porque nunca se sale de ella, ahora ando apurado mañana a ver si lo miro con mas detalle.
-
Funcionan para motores ya q no se necesita q la forma de onda sea muy buena... como comentaba al principio luego de que me de la onda sinusoidal voy a utilizar la interrupcion para poder sincronizar la onda a la red pero eso ya es otra historia... por ahora quiero que me salga la forma de onda....
Si, de acuerdo si es para almentacion de aparatos electronicos o electrodomesticos etc, cuanto mejor sea, pues mucho mejor, aunque creo que es "demasiado buena" :lol:, tambien creo que repites varios DUTTys por tanto en varios PWMs el nivel es el mismo ¿No?.
Los registros normalmente van aqui en toda le serie16f:
;Auxiliares
cont_val EQU 0x20
aux1 EQU 0X21
Digo normalmente porque queria bajar el datasheet del 16f871 pero no me aparece en las paginas de Microchip, ¿Es muy antiguo?.
De todas maneras ya le cambie esos registros y sigue estando en la interrupcion siempre, pero ahora va a buscar valores a la tabla y los guarda en CCPR1L??? esta cargando valores en CCPR1L pero nunca espera a que desborde ningun TIMER y nunca activa PORTC,2.
Mirate aqui unos ejemplos:
http://www.todopic.com.ar/foros/index.php?topic=24720.0
Y aqui un ejemplo del Módulo CCP, porque creo que el problema es que esta este modulo mal configurado.
http://www.todopic.com.ar/foros/index.php?topic=24720.msg204920#msg204920
-
no repito duttys, bueno mas bien los repito pero ya es en la parte de bajada de la onda con respecto a la de subida jejejejeje
ahora voy a cambiar los registros de los auxiliares que me comentas, como te escribi anteriormente ya no recuerdo mucho jejejeje
ah y ya revise asi que edito... veo que el General Purpose Register inicia en el 20h en el banco 0 asi que tienes razon... ahora q veo los bancos y creo q en la declaracion de algunas cosas se me paso el cambiar de banco, voy a probar a ver como me va... lo malo es que no recuerdo muy bien como simular en MPLAB, asi que para simular solamente utilizo el proteus, aunque se que en algunos casos no funciona pero tengo esperanza de que si me funcione en lo que estoy haciendo jejejejejeje
No se que tan antiguo sea, como te digo hace algunos años que no estoy vinculado a la electronica y recien estoy retomando, en todo caso te dejo un link de microchip en donde esta el datasheet del pic a ver si tu encuentras algo porque yo no encontre.... o sera q no lo logro ver...
http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en010233
ahora leo las paginas que me dejas para ver si encuentro algo... por ahi parece q lei q tengo q mandar a 1 el PORTC,2 y de ahi empezar... voy a ver si encuentro en esas paginas algo sobre eso.
Cualquier cosa sigo con el hilo e igualmente espero q si encuentras algo que me pueda ayudar pues que me lo indiques.
Saludos, Pedro.
Funcionan para motores ya q no se necesita q la forma de onda sea muy buena... como comentaba al principio luego de que me de la onda sinusoidal voy a utilizar la interrupcion para poder sincronizar la onda a la red pero eso ya es otra historia... por ahora quiero que me salga la forma de onda....
Si, de acuerdo si es para almentacion de aparatos electronicos o electrodomesticos etc, cuanto mejor sea, pues mucho mejor, aunque creo que es "demasiado buena" :lol:, tambien creo que repites varios DUTTys por tanto en varios PWMs el nivel es el mismo ¿No?.
Los registros normalmente van aqui en toda le serie16f:
;Auxiliares
cont_val EQU 0x20
aux1 EQU 0X21
Digo normalmente porque queria bajar el datasheet del 16f871 pero no me aparece en las paginas de Microchip, ¿Es muy antiguo?.
De todas maneras ya le cambie esos registros y sigue estando en la interrupcion siempre, pero ahora va a buscar valores a la tabla y los guarda en CCPR1L??? esta cargando valores en CCPR1L pero nunca espera a que desborde ningun TIMER y nunca activa PORTC,2.
Mirate aqui unos ejemplos:
http://www.todopic.com.ar/foros/index.php?topic=24720.0
Y aqui un ejemplo del Módulo CCP, porque creo que el problema es que esta este modulo mal configurado.
http://www.todopic.com.ar/foros/index.php?topic=24720.msg204920#msg204920
-
A ver... aqui esta el nuevo codigo con la declaracion de auxiliares en donde va, ademas con el cambio de bancos pero tengo q hacerlo asi con w, ya q al utilizar RP0(q ahora esta como comentario) me da unos errores al compilar en mplab...
A ver si puedes chequearlo para ver que te sale... yo ya simule en Proteus pero no obtuve el resultado positivo...
Te dejo el codigo
list p=16F871
#include "p16f871.inc"
;Auxiliares
cont_val EQU 0x20
aux1 EQU 0X21
;====================
org 0x00
goto inicio
org 0x04
goto INT ;rutina de atencion a IT de baja prioridad
;==================================================================================================
;Configuarción de hardware y condiciones iniciales de variables
;--------------------------------------------------------------------------------------------------
inicio
;PORTC
bsf STATUS,RP0 ;Pasa al Banco1
bcf TRISC,2 ;salida del PWM
;==================================================================================================
;Configuración del periodo de PWM y del registro CCP1CON
movlw b'00000000'
movwf STATUS ;Banco 0
; bcf STATUS,RPO ;Pasa al Banco 0
movlw 0x0F
movwf CCP1CON; Configura en modo PWM
movlw b'00100000'
movwf STATUS ;Banco 1
; bsf STATUS,RP0 ;Pasa al Banco1
movlw d'81'
movwf PR2 ;Frecuencia de PWM = 6KHz; PR2 = [(Fosc*Tpwm)/(Prescaler*4)]-1 = [(20E6*(1/6000))/(16*4)]-1= 51
;==================================================================================================
;Configuración del TIMER 0
;--------------------------------------------------------------------------------------------------
;TOverflow max apagado
movlw b'00000010' ;configura el prescaler 1:8, y la int por flanco de bajada (bit6)
movwf OPTION_REG
;==================================================================================================
;Configuración del TIMER 2
;--------------------------------------------------------------------------------------------------
;Timer 2: overflow max. apagado
movlw b'00000000'
movwf STATUS ;Banco 0
; bcf STATUS,RPO ;Pasa al Banco 0
movlw b'00000011' ; cargado con un pre-escaler de 16 y post-escaler de 1:1
movwf T2CON
movlw b'00100000'
movwf STATUS ;Banco 1
; bsf STATUS,RP0 ;Pasa al Banco1
bsf PIE1,TMR2IE
;==================================================================================================
;Interrupciones
bcf INTCON,GIE ;Deshabilitadas todas las interrupciones
bsf INTCON,PEIE ;Habilitadas de IT perifericas
bsf INTCON,INTE ;Habilita IT externa en PORTB0
;Int_timer 0
bsf INTCON,T0IE ;Habilita IT del TMR0
bsf INTCON,TMR0IE ;Interrupción de desbordamiento del Temporizador 0 habilitada
bcf OPTION_REG,INTEDG ;La interrupción externa en Rb0 se dispara por flanco de bajada.
;==================================================================================================
;Condiciones iniciales
movlw b'00000000'
movwf STATUS ;BSR=0 ubicación en el banco 0
;==========================================
;arranque
bsf T2CON,TMR2ON ;arranca timer 2
bsf INTCON,GIE ;arrancan ITs y TMR0
;==========================================
;Lazo principal
again goto again
;==========================================
;Interrupción
;-----------------------------------------------------------------------------
INT ;Pregunta por banderas de IT
btfss INTCON,INTF
goto a
goto int_ext
a btfss INTCON,T0IF ;¿int timer 0?
goto volver
call ini_tabla
movlw d'64'
movwf aux1
tab decfsz aux1,1
goto mover
clrf cont_val
goto volver
int_ext
bcf PORTC,2
bcf INTCON,INTF
retfie
mover incf cont_val,1
pageselw tabla
movf cont_val,w
call tabla
movwf CCPR1L
goto tab
volver bcf INTCON,T0IF
retfie
;========= Inicia la TAbla o ACCESA============
ini_tabla
movlw 0
clrf cont_val
return
;==============================================================
;Demoras
;--------------------------------------------------------------------------------------------------
;Tabla de valores de la onda!!!!
org 0x600
tabla
ADDWF PCL,1 ; W = offset
RETLW 0X7F ; Empieza la tabla
RETLW 0X8B ;
RETLW 0X97 ;
RETLW 0XA3 ;
RETLW 0XAF ;
RETLW 0XBA ;
RETLW 0XC5 ;
RETLW 0XCF ;
RETLW 0XD8 ;
RETLW 0XE1 ;
RETLW 0XE8 ;
RETLW 0XEF ;
RETLW 0XF4 ;
RETLW 0XF8 ;
RETLW 0XFB ;
RETLW 0XFD ;
RETLW 0XFE ;
RETLW 0XFD ;
RETLW 0XFB ;
RETLW 0XF8 ;
RETLW 0XF4 ;
RETLW 0XEF ;
RETLW 0XE8 ;
RETLW 0XE1 ;
RETLW 0XD8 ;
RETLW 0XCF ;
RETLW 0XC5 ;
RETLW 0XBA ;
RETLW 0XAF ;
RETLW 0XA3 ;
RETLW 0X97 ;
RETLW 0X8B ;
RETLW 0X7F ;
RETLW 0X72 ;
RETLW 0X66 ;
RETLW 0X5A ;
RETLW 0X4E ;
RETLW 0X43 ;
RETLW 0X38 ;
RETLW 0X2E ;
RETLW 0X25 ;
RETLW 0X1C ;
RETLW 0X15 ;
RETLW 0XE ;
RETLW 0X9 ;
RETLW 0X5 ;
RETLW 0X2 ;
RETLW 0X1 ;
RETLW 0X0 ;
RETLW 0X1 ;
RETLW 0X2 ;
RETLW 0X5 ;
RETLW 0X9 ;
RETLW 0XE ;
RETLW 0X15 ;
RETLW 0X1C ;
RETLW 0X25 ;
RETLW 0X2E ;
RETLW 0X38 ;
RETLW 0X43 ;
RETLW 0X4E ;
RETLW 0X5A ;
RETLW 0X66 ;
RETLW 0X72 ;
RETLW 0X7E ;
;--------------------------------------------------------------------------------------------------
end
Saludos, Pedro.
-
Bueno la interrupcion se produce por desborde de TMR0, hoy ya lo vi a la primera,debo tener un buen dia y estoy lucido :lol: pero ya no sale de esa interrupcion porque nunca llega a ejecutar esta instruccion:
mover incf cont_val,1
pageselw tabla
movf cont_val,w
call tabla
movwf CCPR1L
goto tab
volver bcf INTCON,T0IF
retfie
Ni el reffie que esta a continuacion.
Esta continuamente yendo a la tabla va cogiendo valores correlativamente y cargandolos en "movwf CCPR1L" ¿Que es CCPR1L?.
¿Estas usando TMR0 o TMR2 para contar los tiempos? Aunque no cuentas tiempos porque entra en interrupcion de TMR0 a los 412,6uS (a 20MHz) y ya no cuenta ningun tiempo mas???
Yo pensaba que en esa tabla guardabas los OFFSET de desborde del TMR para contar esos tiempos pero parece que no???
Por otro lado le estado vueltas a esto:
Entonces calculo el tiempo en el que el timer debe recalcular el duty cycle de la salida.
Lla frecuencia de la seno es 60Hz por lo tanto:
el período es ------>60 Hz = (1/60)seg = 16,67 ms
esto es lo que dura un período de la seno, como lo actualizamos cada 5,625 grados tendremos 64 niveles y cada uno durará:
Tiempo del timer ----> Tt = período / 64 = 16,67 / 64 = 260,468 Useg
Estos 260 Useg es cada cuanto debes recalcular el duty cycle del PWM.
En vez de actualizar cada 5,625 grados, como todos los PWMs de este tiempo van a tener el mismo DUTTY y por tanto el mismo nivel ¿Por que no haces un solo PWM de esa duracion y ese DUTTY?.
Creo que hay otra cosa que esta haciendo mal, tu calculas un ciclo 60 Hz = (1/60)seg = 16,67 ms pero esto no es asi, lo hay que calcular por semiciclos (8,33mS) ya que en cada semiciclo positivo tienes que hacer circular la corriente en una direccion y en el semiciclo negativo en direccion contraria, es decir por otros transistores activandolos con otra salida tambien con PWM ¿No???? ¿O estoy yo equivocado? que tampoco seria nada raro :lol: :lol:
-
Ahora que simule nuevamente en PROTEUS me doy cuenta que esta tomando a todo el PORTB como 1, no se si es solo el PROTEUS o en general, asi que se deberia preguntar por el flanco de bajada ya que ese es el que le estamos configurando para la interrupcion externa... creo que esta entrando directamente en la interrupcion externa y por eso nunca llega a la parte que tu me estas poniendo en el mensaje, no se si algo asi esta pasando realmente, lo pensaste o probaste asi??
Lo que me parece extraño es que vaya a la tabla y coja valores para cargarlo al CCPR1L ya que si entro en la interrupcion como es mi teoria anterior pues no deberia hacer este paso.... pues la respuesta de lo que es ese registro esta en las paginas web q me mandaste a leer pero mejor te copio la parte que te interesa jajajaja
-------------------------------------
Ciclo de Trabajo del PWM
El ciclo de Trabajo se especifica escribiendo un valor de 10 bits al registro CCPR1L (los 8 bits más significativos (msb)) y los dos bits menos significativos (lsb) a CCP1CON<5:4>.
Como se puede ver en la figura anterior, el valor que determina la duración de C.T. del PWM no es el cargado en CCPR1L, sino en CCPR1H, el cual sólo se actualiza en el momento en que TMR2 alcanza el valor de PR2 (es decir, cada vez que se completa un periodo). Por ello, aunque CCPR1L puede ser escrito en cualquier momento, el Ciclo de Trabajo solo se actualiza hasta que termina el periodo que está en transcurso.
No hay otra manera de escribir al registro CCPR1H, ya que este es un registro de sólo lectura.
----------------------------------------
Ahora si que me confundi jajajajaja... se supone que es el TMR2 el que cuenta el periodo, justamente por eso calculamos es PR2, pero no se porque estoy preguntando por el TMR0 jajajajajaja lo configuro el prescaler 1:8, y la int externa por flanco de bajada (bit6)... la interrupcin externa pues esa la utilizare luego, lo q no recuerdo es porque utilizo el tmr0, este es un programa que lo tenia un amigo en 18f4550 (no se si alguna ves lo probo), lo que yo hice es pasarle a la 16f871 con los mismos parametros con los que el habia programado. Ahora estoy preguntando al TMR2 ademas que movi algunas pequeñas configuraciones, como el preguntar por la interrupcion en el flanco de bajada ademas de limpiar el CCPR1L antes de empezar para empezar con un ciclo util de 0.
Lo que se pretende con la tabla es cambiar el ciclo de trabajo...
Con respecto a las salidas tambien pense igual que tu y por eso queria hacer con el pic18f4550 ya que ese tiene 2PWM ademas de algo q se llama un modulo ECCP o algo asi, es justamente para manejar puentes H, y se lo puede configurar en salida simple, medio puente o puente completo, no se si has leido algo al respecto... pero bueno por lo menos quiero que me salga la PWM aqui... a ver si por medio de hardware hago algo para manejar los transistores...
Ya con los cambios q realizo ahora ya me dio unos datos pero no se si me ayudas probando. Ahi te dejo el codigo:
list p=16F871
#include "p16f871.inc"
;Auxiliares
cont_val EQU 0x20
aux1 EQU 0X21
;====================
org 0x00
goto inicio
org 0x04
goto INT ;rutina de atencion a IT de baja prioridad
;==================================================================================================
;Configuarción de hardware y condiciones iniciales de variables
;--------------------------------------------------------------------------------------------------
inicio
;PORTC
bsf STATUS,RP0 ;Pasa al Banco1
bcf TRISC,2 ;salida del PWM
;==================================================================================================
;Configuración del periodo de PWM y del registro CCP1CON
movlw b'00000000'
movwf STATUS ;Banco 0
; bcf STATUS,RPO ;Pasa al Banco 0
movlw b'00111111'
movwf CCP1CON; Configura en modo PWM
movlw b'00100000'
movwf STATUS ;Banco 1
; bsf STATUS,RP0 ;Pasa al Banco1
movlw d'81'
movwf PR2 ;Frecuencia de PWM = 6KHz; PR2 = [(Fosc*Tpwm)/(Prescaler*4)]-1 = [(20E6*(1/6000))/(16*4)]-1= 51
;==================================================================================================
;Configuración del TIMER 0
;--------------------------------------------------------------------------------------------------
;TOverflow max apagado
movlw b'00000010' ;configura el prescaler 1:8, y la int por flanco de bajada (bit6)
movwf OPTION_REG
;==================================================================================================
;Configuración del TIMER 2
;--------------------------------------------------------------------------------------------------
;Timer 2: overflow max. apagado
movlw b'00000000'
movwf STATUS ;Banco 0
; bcf STATUS,RPO ;Pasa al Banco 0
movlw b'00000011' ; cargado con un pre-escaler de 16 y post-escaler de 1:1
movwf T2CON
movlw b'00100000'
movwf STATUS ;Banco 1
; bsf STATUS,RP0 ;Pasa al Banco1
bsf PIE1,TMR2IE ;Habilita la interrupción al comparar TMR2 a PR2
;==================================================================================================
;Interrupciones
bcf INTCON,GIE ;Deshabilitadas todas las interrupciones
bsf INTCON,PEIE ;Habilitadas de IT perifericas
bsf INTCON,INTE ;Habilita IT externa en PORTB0
;Int_timer 0
bsf INTCON,T0IE ;Habilita IT del TMR0
bsf INTCON,TMR0IE ;Interrupción de desbordamiento del Temporizador 0 habilitada
bcf OPTION_REG,INTEDG ;La interrupción externa en Rb0 se dispara por flanco de bajada.
;==================================================================================================
;Condiciones iniciales
movlw b'00000000'
movwf STATUS ;BSR=0 ubicación en el banco 0
clrf CCPR1L ;Ciclo Util = 0
;==========================================
;arranque
bsf T2CON,TMR2ON ;arranca timer 2
bsf INTCON,GIE ;arrancan ITs y TMR0
;==========================================
;Lazo principal
again goto again
;==========================================
;Interrupción
;-----------------------------------------------------------------------------
INT ;Pregunta por banderas de IT
btfsc INTCON,INTF
goto a
goto int_ext
a btfss PIR1,TMR2IF ;btfss INTCON,T0IF ;¿int timer 0?
goto volver
call ini_tabla
movlw d'64'
movwf aux1
tab decfsz aux1,1
goto mover
clrf cont_val
goto volver
int_ext
bcf PORTC,2
bcf INTCON,INTF
retfie
mover incf cont_val,1
pageselw tabla
movf cont_val,w
call tabla
movwf CCPR1L
goto tab
volver bcf PIR1,TMR2IF ; bcf INTCON,T0IF ;
retfie
;========= Inicia la TAbla o ACCESA============
ini_tabla
movlw 0
clrf cont_val
return
;==============================================================
;Demoras
;--------------------------------------------------------------------------------------------------
;Tabla de valores de la onda!!!!
org 0x600
tabla
ADDWF PCL,1 ; W = offset
RETLW 0X7F ; Empieza la tabla
RETLW 0X8B ;
RETLW 0X97 ;
RETLW 0XA3 ;
RETLW 0XAF ;
RETLW 0XBA ;
RETLW 0XC5 ;
RETLW 0XCF ;
RETLW 0XD8 ;
RETLW 0XE1 ;
RETLW 0XE8 ;
RETLW 0XEF ;
RETLW 0XF4 ;
RETLW 0XF8 ;
RETLW 0XFB ;
RETLW 0XFD ;
RETLW 0XFE ;
RETLW 0XFD ;
RETLW 0XFB ;
RETLW 0XF8 ;
RETLW 0XF4 ;
RETLW 0XEF ;
RETLW 0XE8 ;
RETLW 0XE1 ;
RETLW 0XD8 ;
RETLW 0XCF ;
RETLW 0XC5 ;
RETLW 0XBA ;
RETLW 0XAF ;
RETLW 0XA3 ;
RETLW 0X97 ;
RETLW 0X8B ;
RETLW 0X7F ;
RETLW 0X72 ;
RETLW 0X66 ;
RETLW 0X5A ;
RETLW 0X4E ;
RETLW 0X43 ;
RETLW 0X38 ;
RETLW 0X2E ;
RETLW 0X25 ;
RETLW 0X1C ;
RETLW 0X15 ;
RETLW 0XE ;
RETLW 0X9 ;
RETLW 0X5 ;
RETLW 0X2 ;
RETLW 0X1 ;
RETLW 0X0 ;
RETLW 0X1 ;
RETLW 0X2 ;
RETLW 0X5 ;
RETLW 0X9 ;
RETLW 0XE ;
RETLW 0X15 ;
RETLW 0X1C ;
RETLW 0X25 ;
RETLW 0X2E ;
RETLW 0X38 ;
RETLW 0X43 ;
RETLW 0X4E ;
RETLW 0X5A ;
RETLW 0X66 ;
RETLW 0X72 ;
RETLW 0X7E ;
;--------------------------------------------------------------------------------------------------
end
Saludos, Pedro
-
Ahora que simule nuevamente en PROTEUS me doy cuenta que esta tomando a todo el PORTB como 1, no se si es solo el PROTEUS o en general, asi que se deberia preguntar por el flanco de bajada ya que ese es el que le estamos configurando para la interrupcion externa... creo que esta entrando directamente en la interrupcion externa y por eso nunca llega a la parte que tu me estas poniendo en el mensaje, no se si algo asi esta pasando realmente, lo pensaste o probaste asi??
No, la unica interrupcion que veo que entra es TMR0 y como no borras ese flag no sale de ella. Para que entrara esa interrupcion tendria que haber cambio de estado y no lo hay.
Lo que me parece extraño es que vaya a la tabla y coja valores para cargarlo al CCPR1L ya que si entro en la interrupcion como es mi teoria anterior pues no deberia hacer este paso.... pues la respuesta de lo que es ese registro esta en las paginas web q me mandaste a leer pero mejor te copio la parte que te interesa jajajaja
Ahora va a la tabla al cabo de 1.0568mS y carga los valores en CCPR1L, que seguramente esta bien??? porque segun dice aqui, pero mirate en los ejemplos de Suki, seguro que tiene un ejemplo practico de aplicacion. Hace muy poco estuvimos aqui mismo peleando con esto, a ver si te lo busco.
Como se puede ver en la figura anterior, el valor que determina la duración de C.T. del PWM no es el cargado en CCPR1L, sino en CCPR1H, el cual sólo se actualiza en el momento en que TMR2 alcanza el valor de PR2 (es decir, cada vez que se completa un periodo).
Pero esta interrupcion nunca se activa, porque el CCPR1H no se actualiza esta siempre a 0,TMR2 debe estar en un preescaler y postscaler muy alto (imposible para generar 6KHz) en cambio TMR0 corre de la hostia :lol: pero como borras el flag no sale de interrupcion???.
Yo es que el modulo CCP no lo suelo usar, prefiero hacer los PWM a "mano" porque en trifasica tengo que generar 6 PWM y hay que irse a PIC de gama alta que los tengan.
Mirate bien como trabaja TMR2 y como se configura el modulo CCP, porque en esto es donde esta el principal problema, despues o mañana si tengo un rato te busco un hilo en el que hace poco estuvimos peleando con esto mismo, la verdad como lo uso tan poco no recuerdo como va.
-
Fijate aqui esta el hilo donde hicimos hace poco un PWM con el modulo CCP es en un 12F pero no debe cambiar mucho:
http://www.todopic.com.ar/foros/index.php?topic=40247.0
-
Fijate aqui esta el hilo donde hicimos hace poco un PWM con el modulo CCP es en un 12F pero no debe cambiar mucho:
http://www.todopic.com.ar/foros/index.php?topic=40247.0
ahora luego de descansar un poco del trabajo reviso... he estado un poco cargado en el trabajo asi q no he podido estar pendiente estos ultimos dias...
No, la unica interrupcion que veo que entra es TMR0 y como no borras ese flag no sale de ella. Para que entrara esa interrupcion tendria que haber cambio de estado y no lo hay.
cierto pero no se porque antes de que cambie el flanco de lectura me estaba entrando en la interrupcion a los 412,6uS como tu me lo diste viendo no se si para asegurar hay q declarar como alto el bit de recepcion antes del inicio del programa...
Ahora va a la tabla al cabo de 1.0568mS y carga los valores en CCPR1L, que seguramente esta bien??? porque segun dice aqui, pero mirate en los ejemplos de Suki, seguro que tiene un ejemplo practico de aplicacion. Hace muy poco estuvimos aqui mismo peleando con esto, a ver si te lo busco.
Tiene q cargar en la tabla al CCPR1L a los 260,468 Useg, para que luego de que haya cogido las 64 muestras en la tabla sean los 16,67ms de una frecuencia de 60Hz, asi que no esta tan bien.
Pero esta interrupcion nunca se activa, porque el CCPR1H no se actualiza esta siempre a 0,TMR2 debe estar en un preescaler y postscaler muy alto (imposible para generar 6KHz) en cambio TMR0 corre de la hostia :lol: pero como borras el flag no sale de interrupcion???.
TMR2 esta asigado un Preescaler 1:8 y el postscaler 1:1 segun lo que yo declaro ahi... talves lo estoy declarando mal...
Esta es la segunda ves que me nombras el generar 6Khz, para que 6Khz?? intentare hacer algo para que sea 6khz el TMR2 q segun veo ese debe ser la frecuencia de muestreo
Yo es que el modulo CCP no lo suelo usar, prefiero hacer los PWM a "mano" porque en trifasica tengo que generar 6 PWM y hay que irse a PIC de gama alta que los tengan.
Y como es que hacer los PWM a "mano"?? y entiendo para trifasica es cierto que necesitas 6 o 3ECCP
Mirate bien como trabaja TMR2 y como se configura el modulo CCP, porque en esto es donde esta el principal problema, despues o mañana si tengo un rato te busco un hilo en el que hace poco estuvimos peleando con esto mismo, la verdad como lo uso tan poco no recuerdo como va.
ahora revisare esto tambien... quiero descansar unas horas ya que por mi trabajo no he podido dormir nada... en unas horas me pongo a revisar.
Gracias por tu tiempo
Saludos, Pedro.
-
cierto pero no se porque antes de que cambie el flanco de lectura me estaba entrando en la interrupcion a los 412,6uS como tu me lo diste viendo no se si para asegurar hay q declarar como alto el bit de recepcion antes del inicio del programa...
La interrupcion que entra es TMR0, las dos ultimas pruebas que hice estoy seguro que es esta interrupcion la que entra y ya no sale de ella, por tanto no debe estar bien, ya que mientras esta en una interrupcion no puede atender a otra.
Esta es la segunda ves que me nombras el generar 6Khz, para que 6Khz?? intentare hacer algo para que sea 6khz el TMR2 q segun veo ese debe ser la frecuencia de muestreo
Pues porque me parecio leerlo en algun mensaje tuyo :lol: Los variadores industriales traen por defecto 4KHz de portadora y varian la frec resultante (senoidal) entre 0 y unos 300Hz, y se pueden poner para 8KHz, 12KHz y 16Khz y creo que tambien para 1KHz, asi que cualquiera de esta frec te vale, la que mejor te vaya.
Y como es que hacer los PWM a "mano"??
Muy facil te dejo un hilo donde se lo explicaba hace algun tiempo a una chica, este es muy basico se puede hacer mejor:
http://www.todopic.com.ar/foros/index.php?topic=33515.0
y entiendo para trifasica es cierto que necesitas 6 o 3ECCP
Para trifasica hay que generar 6 PWM, 3 simultaneos en cada momento, son 6 porque son dos por fase, uno para semiciclo positivo y otra para el negativo, igual que en monofasico hay que hacer dos uno para cada semiciclo, como ya te dije en un post anterior.
-
Con respecto a la primera cita estoy revisando el codigo a ver si encuentro algo... solamente que como te comente anteriormente ando un poco a full con mi trabajo...
con respecto a la segunda cita, la verdad no recuerdo, pero puede ser que por ahi lo haya puesto jejejeje ahora estoy configurando el TMR2 para 6kHz ya en poco tiempo te paso el codigo para que me ayudes viendo que esta pasando...
A la tercera cita, heche un vistazo rapido y lo que hace es jugar con demoras... mas luego leere mas detenidamente porque me interesa el tema pero ando un poco a full...
y con respecto a tu ultima cita....
totalmente de acuerdo en lo que me dices pero tambien te habia comentado del ECCP, es un modulo de salida de PWM que es complementario, es decir mientras estes en el un pin en salida alta en el otro pin tienes salida baja.. incluso se puede introducir un tiempo muerto entre el cambio del uno y el otro... para que lo veas mas grafico y de pronto te interesa saber mas pues puedes verlo en el datasheet del 18f4550 que tiene uno de esos modulos... aqui te dejo el link para el datasheet
http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en010300
El modulo ECCP se encuentra a partir de la pagina 153 hasta la 163 pero para que se te haga un poco mas facil por si no cuentas con mucho tiempo solamente puedes fijarte en las graficas del salida en la pagina 157 que se encuentan los modos de salida simple, de medio puente y de puente entero, asi como en la 158 y 159 con una pequeña explicacion...
Saludos, Pedro.
-
con respecto a la segunda cita, la verdad no recuerdo, pero puede ser que por ahi lo haya puesto jejejeje ahora estoy configurando el TMR2 para 6kHz ya en poco tiempo te paso el codigo para que me ayudes viendo que esta pasando...
Si vas a volver a recalcular, hazlo para los dos semiciclos, porque tarde o temprano tendras que hacerlo, si por ejemplo alimentas una lavadora, el motor no funcionara (tiene que haber cambio de polaridad) en una nevera creo que tampoco, casi todos los equipos que vengan para AC te daran problemas. Si trabajas a 6KHz tendras PWMs de 166,67uS y con 4KHz de 250uS, creo que es mas manejable 4KHz pero como te vaya mejor, entre 1 y 16KHz no hay problema.
Por otro lado una senoide de 48, 51, 54 niveles es una senoide muy muy buena, incluso una de 30 es ya muy buena (siempre multiplos de 3, para eliminar armonicos), eso si 30 de subida de 1/30 de variacion y oros 30 de bajada y esto en cada semiciclo (60 en cada semiciclo de 8,33mS), tendrias que meter 120 PWMs (minimo, si no quieres darle unos pocos PWMs en la V max. de la onda) en cada 16,67mS del ciclo completo, ahora si tu quieres hacerla de 256 niveles pues tambien vale, te quedara una senoide espectacular.
A la tercera cita, heche un vistazo rapido y lo que hace es jugar con demoras... mas luego leere mas detenidamente porque me interesa el tema pero ando un poco a full...
Si exacto, como ya te dije hay mejores maneras de hacerlas, bien con TIMER o con demoras y TIMER.
y con respecto a tu ultima cita....
totalmente de acuerdo en lo que me dices pero tambien te habia comentado del ECCP, es un modulo de salida de PWM que es complementario, es decir mientras estes en el un pin en salida alta en el otro pin tienes salida baja.. incluso se puede introducir un tiempo muerto entre el cambio del uno y el otro... para que lo veas mas grafico y de pronto te interesa saber mas pues puedes verlo en el datasheet del 18f4550 que tiene uno de esos modulos... aqui te dejo el link para el datasheet
http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en010300
El modulo ECCP se encuentra a partir de la pagina 153 hasta la 163 pero para que se te haga un poco mas facil por si no cuentas con mucho tiempo solamente puedes fijarte en las graficas del salida en la pagina 157 que se encuentan los modos de salida simple, de medio puente y de puente entero, asi como en la 158 y 159 con una pequeña explicacion...
Yo en un variador de frecuencia trifasico que hice hace algunos años y que no llegue a acabar, las hice con TMR0 y demoras, me quedo un poco largo el porgrama porque variaba entre 1Hz y 150Hz y para cada frec hacia una demora, el dia que lo retome lo mejorare :lol: :lol:
Ya he mirado esos modulos y van bien pero sacan 4 PWMs (complementarios 2 a 2), ademas despues de generar las distintas frecuencias hay que hacer muchas cosas ya que era para un coche electrico y hay que regular potencia, rampas de aceleracio y decelaracion, hacer frenadas regenerativas, leer el acelerador, sensores de temperatura (tanto del motor como del variador), protecciones de sobrecorriente y cortocircuito y algo mas que se me olvidara y dentro de la onda (que no tiene ninguna interrupcion) ya tenia calculados los momentos en que podia hacer todas estas lecturas.
Me estas metiendo ganas de ponerme con el variador otra vez :lol:, lo que pasa es que no tengo el coche para ponerla a funcionar :5] :lol:
-
Para trifasica hay que generar 6 PWM, 3 simultaneos en cada momento, son 6 porque son dos por fase, uno para semiciclo positivo y otra para el negativo, igual que en monofasico hay que hacer dos uno para cada semiciclo, como ya te dije en un post anterior.
Ahora que tengo un poco mas de tiempo estuve leyendo mas tus ayudas... aqui entonces me encuentro con que necesitare 2 modulos ccp (yo estoy haciendo monofasico nada mas) ahora bien el 16f871 tiene solamente un modulo ccp asi que no me serviria para mi proyecto.
Si vas a volver a recalcular, hazlo para los dos semiciclos, porque tarde o temprano tendras que hacerlo, si por ejemplo alimentas una lavadora, el motor no funcionara (tiene que haber cambio de polaridad) en una nevera creo que tampoco, casi todos los equipos que vengan para AC te daran problemas. Si trabajas a 6KHz tendras PWMs de 166,67uS y con 4KHz de 250uS, creo que es mas manejable 4KHz pero como te vaya mejor, entre 1 y 16KHz no hay problema.
Por otro lado una senoide de 48, 51, 54 niveles es una senoide muy muy buena, incluso una de 30 es ya muy buena (siempre multiplos de 3, para eliminar armonicos), eso si 30 de subida de 1/30 de variacion y oros 30 de bajada y esto en cada semiciclo (60 en cada semiciclo de 8,33mS), tendrias que meter 120 PWMs (minimo, si no quieres darle unos pocos PWMs en la V max. de la onda) en cada 16,67mS del ciclo completo, ahora si tu quieres hacerla de 256 niveles pues tambien vale, te quedara una senoide espectacular
Entiendo pero me confundides un poco con lo de los semiciclos, al parecer mas bien tendria que hacerlos con un pic q tenga 2 modulos ccp o no??
ahora con la opcion que me dijiste de "manual", pienso que podria utilizar cualquier pic, verdad?? es solamente cuestion de darle los tiempos al timer y asignar la salida o me equivoco??
La verdad es que no necesariamente tengo que utilizar el modulo ccp, solamente tiene q funcionar pero pues si hay la oportunidad y se aprende pues mejor pero creo que eso lo dejare para cuando tenga un poco mas de tiempo...
La tabla que estaba haciendo tiene 64 valores y si los pones en un exel y lo graficas (en decimal claro esta) te da un ciclo completo.
voy a intentar hacerlo con demoras en el mismo pic ya que creo que tu me podrias ayudar ya que como dije enteriormente este pic no tiene 2 modulos ccp. el otro pic que tenia a la mano y si tiene 2 modulos ccp es el 18f4550 pero creo que ahi se te hace un poco dificil ayudarme asi que prefiero hacerlo por ahora con demoras y mas adelante a ver si lo hago con pwm.
Muchas gracias por tu ayuda y apenas tenga el codigo lo cargo por aqui a ver si me hechas una mano.
Saludos, Pedro.
-
Nuevamente por molestar....
Amigo Tapi8,
Ya tengo en PWM... a ver si le hechas un vistazo y me indicas como podria mejorarlo... lo hice basandome en el hilo y el programa que me recomendaste donde le indicabas a la chica....
Ahora lo que tengo que hacer es sincronizarla con la red... a ver si me hechas una mano con eso... en mi pais es 60Hz, es por eso que cada ciclo dura aproximadamente 16,66ms...
Lo que yo pensaba era cortar la forma de onda en el momento que se encuentre, para de esta manera igualar a la red, es decir activar una interrupcion externa en el pic, y mediante ella hacer que la forma de onda se resetee y me mande al inicio de la onda, esto debido a que hay que sincronizarla mediante un detector de cruce por cero... no se si se te ocurre una mejor manera... a ver si me la haces saber.... ademas no se si exista algun problema al resetear de dicha forma la sinusoide, si sabes algo por favor me lo indicas....
Y bueno ahi te dejo el codigo que lo tengo hasta ahora, intentare seguirlo trabajando a fin de mejorarlo pero ya veremos que se puede hacer...
Saludos, Pedro.
-
Ya tengo en PWM... a ver si le hechas un vistazo y me indicas como podria mejorarlo... lo hice basandome en el hilo y el programa que me recomendaste donde le indicabas a la chica....
Bueno ahora por lo menos se activa y se desactiva la salida ya hace PWM, ya es algo :lol:. Unas preguntas importantes:
¿Este PIC va a estar dedicado a hacer esto solamente?
¿A que frec. tienes el PIC trabajando?
¿De cuantos niveles esta haciendo la onda?
¿A que frec. de portadora estas trabajando?
Ahora lo que tengo que hacer es sincronizarla con la red... a ver si me hechas una mano con eso... en mi pais es 60Hz, es por eso que cada ciclo dura aproximadamente 16,66ms...
Para sincronizarla con la red hay que detectar el cruce por 0 de la red, el que vas a generar tu no necsitas detectarlo, porque lo generas tu y por tanto sabes cuando cruza, que es cuando generas un PWM sin DUTTY cada 8,33mS.
Detectar el cruce por 0 la mejor manera es con un optoacoplador NPN, tambien se puede hacer con un simple resistencia pero queda el PIC mas expuesto al ruido y esto puede afectarle mucho...¿Esto no va a funcionar cuando se va la corriente??? ¿O tambien funcionara cuando haya corriente?
Lo que yo pensaba era cortar la forma de onda en el momento que se encuentre, para de esta manera igualar a la red, es decir activar una interrupcion externa en el pic, y mediante ella hacer que la forma de onda se resetee y me mande al inicio de la onda,
Si exactamente conectas un opto o una R a un pin del PORTB y te porvocara dos interrupciones una en flanco ascendente, esta sera la valida que se activara unos uS antes del cruce por 0, y otra en el flanco descendente, esta no la tendras en cuenta, diferenciaras una de la otra porque el pin donde esta estara a 1 en la primera, la que vale y en la otra que no vale estara a 0. Como la que vas a tomar como valida es unos uS antes, reatardas esos uS y empiezas a generar y ya estara sincronizada ¿No?
Y bueno ahi te dejo el codigo que lo tengo hasta ahora, intentare seguirlo trabajando a fin de mejorarlo pero ya veremos que se puede hacer...
Le echare un ojo, pero ando un poco liado estos dias, vale, en cuando tenga un rato te lo miro, no me olvido.
-
Bueno ahora por lo menos se activa y se desactiva la salida ya hace PWM, ya es algo :lol:. Unas preguntas importantes:
¿Este PIC va a estar dedicado a hacer esto solamente?
¿A que frec. tienes el PIC trabajando?
¿De cuantos niveles esta haciendo la onda?
¿A que frec. de portadora estas trabajando?
Si, el PIC va a estar dedicado a hacer esto nada mas, si acepto recomendaciones.
La frecuencia del cristal es a 20MHZ
Son 30 por cada cuarto de onda o sea son 120 niveles que conforman la onda (60 con el semiciclo positivo de 8,33ms con la una salida y los otros 60 con la otra salida que seria el semiciclo negativo)
No tengo muy clara la frecuencia de la portadora, hice calculos segun lo que necesitaba para el numero de niveles para de esa manera manejar las demoras y los tiempos de encendido y apagado, a ver si me puedes explicar mejor esto.
Detectar el cruce por 0 la mejor manera es con un optoacoplador NPN, tambien se puede hacer con un simple resistencia pero queda el PIC mas expuesto al ruido y esto puede afectarle mucho...¿Esto no va a funcionar cuando se va la corriente??? ¿O tambien funcionara cuando haya corriente?
Sip... lo habia pensado de esa manera... tengo armado uno pero aun me falta afinarle un poco mas....
Esto si va a funcionar cuando no hay corriente y tambien cuando hay corriente, porque la pregunta??
Si exactamente conectas un opto o una R a un pin del PORTB y te porvocara dos interrupciones una en flanco ascendente, esta sera la valida que se activara unos uS antes del cruce por 0, y otra en el flanco descendente, esta no la tendras en cuenta, diferenciaras una de la otra porque el pin donde esta estara a 1 en la primera, la que vale y en la otra que no vale estara a 0. Como la que vas a tomar como valida es unos uS antes, reatardas esos uS y empiezas a generar y ya estara sincronizada ¿No?
porque dices que la interrupción se activara unos uS antes?? la idea es hacer que sea lo mas instantaneo posible....
Si la idea es que cuando detecta el cruce por cero empieza a generar el pic y ya este sincronizada...
Le echare un ojo, pero ando un poco liado estos dias, vale, en cuando tenga un rato te lo miro, no me olvido.
Muchas gracias y a ver si me puedes hechar una mano con las dudas que ahora se me generaron...
Saludos, Pedro.
-
Si, el PIC va a estar dedicado a hacer esto nada mas, si acepto recomendaciones.
Bien mejor, asi podemos programar sin preocupaciones, por ejemplo podemos abusar de las demoras por bucle sin precupaciones.
La frecuencia del cristal es a 20MHZ
Bien, era para saber como tenia que ponerla en la simulacion, nos ira bien una frec. "rapida"
Son 30 por cada cuarto de onda o sea son 120 niveles que conforman la onda (60 con el semiciclo positivo de 8,33ms con la una salida y los otros 60 con la otra salida que seria el semiciclo negativo)
Bueno asi saldria:
8,33*1000/60=138,83uS El periodo de cada PWM, por tanto la portadora nos que daria en 7,2KHz ¿No? Repasalo tu que yo soy muy peligroso con la calculadora :lol: :lol: podemos meterle unos PWMs de relleno para ajustarla, si se quiere.
porque dices que la interrupción se activara unos uS antes?? la idea es hacer que sea lo mas instantaneo posible....
Si la idea es que cuando detecta el cruce por cero empieza a generar el pic y ya este sincronizada...
Bien esto depende de como se conecte el opto, a mi me gusta mucho usar el PS2505 (opto especial para cruce por 0) y lo estaba pensando de esta manera, aqui una nota de aplicacion:
http://imageshack.us/photo/my-images/255/cruceporcerofu1.jpg/
De todas maneras se puede usar un opto cualquiera, solo hay que tener en cuenta que los optos normales durante el semiciclo - no conducen y por tanto durante ese tiempo dan 1logico=5V (colocandolo como en el esquema de arriba) creo que nos va mejor asi, nos dara un 1 cuando el semiciclo + sea casi 0 (un poco antes, pero despues por software ya lo ponemos exacto) provocara una interrupcion por flanco ascendente, seguira dando un 1 durante el semiciclo - y cuando empiece el semiciclo + otra vez pasara a 0 provocando interrupcion por flanco descendente, a esta no le haremos caso, ya que nuestro inverter ya estara funcionando desde el flanco anterior.
¿La corriente de la red en tu zona es buena? Si no fuera buena iriamos leyendo cruces por 0 y sincronizandola, podemos hacerlo cada ciclo, cada 16,67mS
Esto si va a funcionar cuando no hay corriente y tambien cuando hay corriente, porque la pregunta??
¿Se llevaran bien una onda senoidal y una cuasisenoidal juntas? :lol: Bueno espero que si se hagan buenas amigas :lol: :lol:
-
Bien mejor, asi podemos programar sin preocupaciones, por ejemplo podemos abusar de las demoras por bucle sin precupaciones.
Ok, pues asi lo podemos hacer...
Bueno asi saldria:
8,33*1000/60=138,83uS El periodo de cada PWM, por tanto la portadora nos que daria en 7,2KHz ¿No? Repasalo tu que yo soy muy peligroso con la calculadora :lol: :lol: podemos meterle unos PWMs de relleno para ajustarla, si se quiere.
Correcto, segun mis calculos son esos los numeros que me salen tambien a menos que yo tambien sea medio peligroso con la calculadora jajajajajajajaja
Bien esto depende de como se conecte el opto, a mi me gusta mucho usar el PS2505 (opto especial para cruce por 0) y lo estaba pensando de esta manera, aqui una nota de aplicacion:
http://imageshack.us/photo/my-images/255/cruceporcerofu1.jpg/
De todas maneras se puede usar un opto cualquiera, solo hay que tener en cuenta que los optos normales durante el semiciclo - no conducen y por tanto durante ese tiempo dan 1logico=5V (colocandolo como en el esquema de arriba) creo que nos va mejor asi, nos dara un 1 cuando el semiciclo + sea casi 0 (un poco antes, pero despues por software ya lo ponemos exacto) provocara una interrupcion por flanco ascendente, seguira dando un 1 durante el semiciclo - y cuando empiece el semiciclo + otra vez pasara a 0 provocando interrupcion por flanco descendente, a esta no le haremos caso, ya que nuestro inverter ya estara funcionando desde el flanco anterior.
¿La corriente de la red en tu zona es buena? Si no fuera buena iriamos leyendo cruces por 0 y sincronizandola, podemos hacerlo cada ciclo, cada 16,67mS
pues la verdad lo veo bastante mejor a tu esquema... yo tenia otro pero me detecta siempre el cruce por cero, ya sea positivo o negativo, iba a hacerle algunos ajustes en las resistencias y el condensador pero creo que mejor me quedo con tu esquema y de paso asi tambien me puedes ayudar con la demora.... el circuito que pensaba hacer es el siguiente:
http://prntscr.com/1o7vm7
Pero creo que me quedo con el que tu me has dado... Espero y aca en Ecuador existe ese opto.
No es tan buena, incluso tenemos interconexion con colombia para intentar mejorar la forma de onda asi que desde un principio pensaba en sincronizarla a cada ciclo... ahora mismo estoy teniendo un problema al resetear la forma de onda... no se si meterle toda la forma de onda dentro de la interrupcion o mandar a resetear el pic... en un poco de tiempo mas te mando un codigo que estoy haciendolo para que me ayudes viendo que pasa ya q hasta ahora me esta dando error en la simulacion y me dice que no esta simulando en tiempo real en Proteus.
¿Se llevaran bien una onda senoidal y una cuasisenoidal juntas? :lol: Bueno espero que si se hagan buenas amigas :lol: :lol:
Pues la verdad hay inversores con no tan buena resolucion que se conectan a la red pero no se si aca en mi pais exista eso...
En todo caso como mi inversor es de poca potencia pues deberia acoplarse a la onda con mayor potencia sin problema alguno y seguirla.
Ahora no se si de pronto vale la pena hacer mi señal senoidal con mayor resolucion para mejorar un poco mas aun la forma de onda... tu que dices??
Saludos, Pedro.
-
Correcto, segun mis calculos son esos los numeros que me salen tambien a menos que yo tambien sea medio peligroso con la calculadora jajajajajajajaja
Bien, malo sera que nos equivoquemos los dos :lol: Entonces si es de 30 niveles haremos una demora 1/30 de 138, es decir de 4,6uS, el primer PWM sera el cruce por 0 por tanto sera un PWM sin dutty=0V, el segundo tendra un dutty de 1*4,6uS=4,6uS, el tercero de 2*4,6=9,2, el cuarto de 3*4,6=13,8uS y asi sucesivamente hasta llegar a un dutty de 30*4,6=138 es decir del 100% esto sera la cresta de la onda y empezara a decrecer, la 31 que sera la primera de la bajada de la onda sera de 29*4,6=133,4uS y asi sucesivamente hasta llegar a 1*4,6=4,6 esta sera la ultima del semiciclo positivo, ya que la siguiente que sera de dutty 0 sera la primera del semiciclo negativo, el semiciclo negativo sera exactamente igual pero sobre otro pin del PIC.
Preguntandole a alguien que sabe mas que yo sobre lo de tener dos ondas al mismo tiempo, me dijo que tenian que tener el mismo voltaje, entonces me vino una duda ¿En Ecuador teneis 120V de tension eficaz en la red, verdad? esto quiere decir que teneis una onda desde 0V hasta 170V (120*1,41=169,2V, 1,41 es la raiz de 2) te digo esto porque para generar una onda de 120V a partir de una CC esta CC tiene que ser de 170V, ya que no podemos darle mas V que la que tenemos en continua...
pues la verdad lo veo bastante mejor a tu esquema... yo tenia otro pero me detecta siempre el cruce por cero, ya sea positivo o negativo, iba a hacerle algunos ajustes en las resistencias y el condensador pero creo que mejor me quedo con tu esquema y de paso asi tambien me puedes ayudar con la demora.... el circuito que pensaba hacer es el siguiente
Yo siempre vi asi los detectores de cruce por 0, pero si el tuyo funciona bien usa el tuyo, en dimmers para lamparas incluso con una resistencia solamente, aqui el problema de hacerlo con una R es el ruido ya que eso alimentara un hogar donde habra motores (lavadora, nevera, etc) y ese ruido descontrolara el PIC.
Pero creo que me quedo con el que tu me has dado... Espero y aca en Ecuador existe ese opto.
Con ese opto que tienes en el esquema te vale, lo unico que pasa con ese opto es que en semiciclo - el diodo esta en inversa y no conduce por tanto no polariza el transistor y tenemos un nivel alto 5V durante ese tiempo, pero en cuanto empieza el semiciclo + y la onda alcanza un valor suficiente (unos pocos uS) el diodo polariza el NPN tira los 5V a masa y tenemos 0V=0 logico lo que nos dara un flanco descendente que provocara una interrupcion que no tendremos en cuenta, al caer la V en el semiciclo + llegara un momento, unos uS antes del cruce por 0 real, la V sera insuficiente para encender el LED el NPN dejara de conducir y tendremos 5V en el pin del PIC que nos provocara una interrupcion por flanco ascendente, "esta interrupcion es la que nos servira de referencia para empezar a generar nuestra onda", fijate que esto te explico es conctandolo como en el esquema que te pongo mas arriba, como esta en tu esquema, tambien funciona pero nos da las señales a la inversa, ¿no se si me explico?
Pero creo que me quedo con el que tu me has dado... Espero y aca en Ecuador existe ese opto.
No es tan buena, incluso tenemos interconexion con colombia para intentar mejorar la forma de onda asi que desde un principio pensaba en sincronizarla a cada ciclo... ahora mismo estoy teniendo un problema al resetear la forma de onda... no se si meterle toda la forma de onda dentro de la interrupcion o mandar a resetear el pic... en un poco de tiempo mas te mando un codigo que estoy haciendolo para que me ayudes viendo que pasa ya q hasta ahora me esta dando error en la simulacion y me dice que no esta simulando en tiempo real en Proteus.
No te fies mucho de Proteus en la parte analogica y menos en AC.
Si la corriente no es muy buena, sobre todo en frec. la sincronizaremos en cada ciclo, no hay problema, esperemos :lol:
-
Bien, malo sera que nos equivoquemos los dos :lol: Entonces si es de 30 niveles haremos una demora 1/30 de 138, es decir de 4,6uS, el primer PWM sera el cruce por 0 por tanto sera un PWM sin dutty=0V, el segundo tendra un dutty de 1*4,6uS=4,6uS, el tercero de 2*4,6=9,2, el cuarto de 3*4,6=13,8uS y asi sucesivamente hasta llegar a un dutty de 30*4,6=138 es decir del 100% esto sera la cresta de la onda y empezara a decrecer, la 31 que sera la primera de la bajada de la onda sera de 29*4,6=133,4uS y asi sucesivamente hasta llegar a 1*4,6=4,6 esta sera la ultima del semiciclo positivo, ya que la siguiente que sera de dutty 0 sera la primera del semiciclo negativo, el semiciclo negativo sera exactamente igual pero sobre otro pin del PIC.
Preguntandole a alguien que sabe mas que yo sobre lo de tener dos ondas al mismo tiempo, me dijo que tenian que tener el mismo voltaje, entonces me vino una duda ¿En Ecuador teneis 120V de tension eficaz en la red, verdad? esto quiere decir que teneis una onda desde 0V hasta 170V (120*1,41=169,2V, 1,41 es la raiz de 2) te digo esto porque para generar una onda de 120V a partir de una CC esta CC tiene que ser de 170V, ya que no podemos darle mas V que la que tenemos en continua...
sip.... aunq yo no estaba tomando en cuenta los cm (ciclos de maquina) de cada instruccion hasta llegar al bsf o al bcf, la verdad ajuste la demora al calculo y ajuste el tiempo con una demora poniendo a 1 en la parte alta de la onda... ahora voy a calcular ya bien intentando dejar a todos con los 23 cm (cada ciclo de maquina es 0,2us)
ahora hice una pequeña tabla de los calculos de ciclos de maquinas que toma cada instruccion, te la adjunto aunq no te servira mas que para verla ya que voy a ver la manera de ajustarla para que sean justamente 23 ciclos de maquina entre los pwm... Pero lo por ajustado es en el caso 31 pwm... incluso sin la demora q hice extra esta pesimamente mal... ya te daras cuenta al ver el archivo... voy a ver que puedo hacer con respecto a eso y pues ajustar los ciclos.....
Para el calculo en el archivo lo inclui a la intruccion bsf o bcf....
Si son 120 eficaces (no tan exactos tampoco)... La verdad pensaba generar la onda, convertirla en alterna y luego meterle a un transformador para elevar el voltaje, no funcionaria asi??
Yo siempre vi asi los detectores de cruce por 0, pero si el tuyo funciona bien usa el tuyo, en dimmers para lamparas incluso con una resistencia solamente, aqui el problema de hacerlo con una R es el ruido ya que eso alimentara un hogar donde habra motores (lavadora, nevera, etc) y ese ruido descontrolara el PIC.
Entiendo y me sigo quedando con tu opto ya que ahora vi las caracteristicas en el datasheet y esta diseñado justamente para input AC... el que yo utilizo al parecer esta dedicado a DC y en bajos niveles de voltaje, ahora no me encuentro en ciudad pero apenas salga (en 6 dias) buscare si existe en mi ciudad el opto que me das en tu diagrama o almenos un equivalente.
Con ese opto que tienes en el esquema te vale, lo unico que pasa con ese opto es que en semiciclo - el diodo esta en inversa y no conduce por tanto no polariza el transistor y tenemos un nivel alto 5V durante ese tiempo, pero en cuanto empieza el semiciclo + y la onda alcanza un valor suficiente (unos pocos uS) el diodo polariza el NPN tira los 5V a masa y tenemos 0V=0 logico lo que nos dara un flanco descendente que provocara una interrupcion que no tendremos en cuenta, al caer la V en el semiciclo + llegara un momento, unos uS antes del cruce por 0 real, la V sera insuficiente para encender el LED el NPN dejara de conducir y tendremos 5V en el pin del PIC que nos provocara una interrupcion por flanco ascendente, "esta interrupcion es la que nos servira de referencia para empezar a generar nuestra onda", fijate que esto te explico es conctandolo como en el esquema que te pongo mas arriba, como esta en tu esquema, tambien funciona pero nos da las señales a la inversa, ¿no se si me explico?
si.... te explicas bastante bien.... solamente tendriamos que saber cuantos us son los que se deberia dar la interrupcion para caer justamente en el cero.... segun el datasheet
High-speed switching (tr = 3 us TYP., tf = 5 us TYP.)
El de bajada es de 5ms, pero esta probado a VCC = 10 V, IC = 2 mA, RL = 100 ohm, no se si con la frecuencia de la red y las resistencias varie... tu talves has hecho alguna prueba a ver si este valor se mantiene??
No te fies mucho de Proteus en la parte analogica y menos en AC.
Si la corriente no es muy buena, sobre todo en frec. la sincronizaremos en cada ciclo, no hay problema, esperemos :lol
Ok, entonces ya veremos que es lo que pasa... por ahora me dedicare a ajustar mis ciclos de trabajo jejejejejeje en cuanto tenga el codigo lo cuelgo por aca.
Pues yo tambien espero que no haya ningun problema al sincronizarla en cada ciclo jejejeje... solamente que ahi si me tienes que indicar como hacerlo ya que tendriamos que entrar en la interrupcion y salir de ella para que este nuevamente disponible y no tengo idea de como hacerlo ya que cuando entras en la interrupcion y sales de ella pues vuelve al lugar en donde estabas antes en el programa y como te dije esto va a funcionar tanto conectado como desconectado de la red.
Saludos, Pedro.
-
sip.... aunq yo no estaba tomando en cuenta los cm (ciclos de maquina) de cada instruccion hasta llegar al bsf o al bcf, la verdad ajuste la demora al calculo y ajuste el tiempo con una demora poniendo a 1 en la parte alta de la onda... ahora voy a calcular ya bien intentando dejar a todos con los 23 cm (cada ciclo de maquina es 0,2us)
ahora hice una pequeña tabla de los calculos de ciclos de maquinas que toma cada instruccion, te la adjunto aunq no te servira mas que para verla ya que voy a ver la manera de ajustarla para que sean justamente 23 ciclos de maquina entre los pwm... Pero lo por ajustado es en el caso 31 pwm... incluso sin la demora q hice extra esta pesimamente mal... ya te daras cuenta al ver el archivo... voy a ver que puedo hacer con respecto a eso y pues ajustar los ciclos.....
Para el calculo en el archivo lo inclui a la intruccion bsf o bcf....
He estado pensando y creo que la mejor manera de hacerlo es sin interrupcion, ya que como tu dices una vez que entramos en interrupcion despues nos sigue donde estaba, tendriamos que encender un FLAG despues chequearlo y nos daria mas problemas.
Hacerlo sin interrupcion es facil, se pone TMR0 a contar los 138uS del ciclo completo del PWM y el tiempo del dutty se cuenta por demoras, quedaria asi mas o menos, es solo la idea no lo depure ni nada:
POSITIVO_0 ;este es el primer PWM que no tiene dutty, es el paso por 0
nop ;estos nop son de relleno, despues pondremos mas o menos
nop
movlw .85 ;valoe del offset del TMR0 para 136,80uS
mowf TMR0 ;aqui empieza a contar
btfss INTCON,T0IF ;chequeamos si desbordo
goto $-1 ;todavia no pasaron los 138uS, esperamos
POSITIVO_1 ;este sera el primer PWM con dutty
bsf PORTC,2 ;lo activamos (pon el que tu quieras)
movlw .85 ;valoe del offset del TMR0 para 136,80uS
mowf TMR0 ;aqui empieza a contar
call DEMORA_1 ;llamamos demora
bcf PORTC,2 ;acabo tiempo dutty, apagamos
btfss INTCON,T0IF ;chequeamos si desbordo
goto $-1 ;todavia no pasaron los 138uS, esperamos
POSITIVO_2 ;este sera el segundo PWM con dutty
bsf PORTC,2 ;lo activamos (pon el que tu quieras)
movlw .85 ;valoe del offset del TMR0 para 136,80uS
mowf TMR0 ;aqui empieza a contar
call DEMORA_1 ;llamamos demora
call DEMORA_2 ;tambien llamamos demora completa
bcf PORTC,2 ;acabo tiempo dutty, apagamos
btfss INTCON,T0IF ;chequeamos si desbordo
goto $-1 ;todavia no pasaron los 138uS, esperamos
POSITIVO_3 ;este sera el tercer PWM con dutty
bsf PORTC,2 ;lo activamos (pon el que tu quieras)
movlw .85 ;valoe del offset del TMR0 para 136,80uS
mowf TMR0 ;aqui empieza a contar
call DEMORA_1 ;llamamos demora
call DEMORA_2 ;tambien llamamos demora completa
call DEMORA_2 ;otra demora completa
bcf PORTC,2 ;acabo tiempo dutty, apagamos
btfss INTCON,T0IF ;chequeamos si desbordo
goto $-1 ;todavia no pasaron los 138uS, esperamos
DEMORA_1 ;demora de 4,1uS, descontamos los tiempos de las instrucciones precedentes
movlw .4 ; 1 set numero de repeticion
movwf PDel0 ; 1 |
PLoop0 clrwdt ; 1 clear watchdog
decfsz PDel0, 1 ; 1 + (1) es el tiempo 0 ?
goto PLoop0 ; 2 no, loop
return ; 2+2 Fin.
DEMORA_2 ;esta si tendra 4,6uS ya que no hay que descontar instrucciones
movlw .4 ; 1 set numero de repeticion
movwf PDel0 ; 1 |
PLoop0 clrwdt ; 1 clear watchdog
decfsz PDel0, 1 ; 1 + (1) es el tiempo 0 ?
goto PLoop0 ; 2 no, loop
return ; 2+2 Fin.
Como ves es bastante sencillo, solo hay que ir añadiendo llamadas a demoras, y el timer nos cuenta el tiempo total asi tendremos tiempo de chequear el pin donde este el opto y detectar el cruce por 0, seguramente habra que ajustar mas los tiempos pero eso yo siempre lo hago una vez que el programa esta hecho.
si.... te explicas bastante bien.... solamente tendriamos que saber cuantos us son los que se deberia dar la interrupcion para caer justamente en el cero.... segun el datasheet
High-speed switching (tr = 3 us TYP., tf = 5 us TYP.)
Si pero esos tiempos son los de commutacion del opto, pero no tienen nada que ver, ya que lo que hay que saber es cuando la V de la onda no es suficiente para encender el LED del opto, y no es lo mismo con 230V que con 120V, igual que no llevan la misma R, en el esquema que yo te pongo es para 220V por tanto en tu pais con 120V esa R sera difarente y este tiempo variara ¿No tienes un osciloscopio? con el osciloscopio se pone un canal en alterna y otra en la salida y se ve perfecto, sino ya buscaremos otra manera de hacerlo, o a ver si algun ecuatiorano por el foro que te haga esa prueba.
Si son 120 eficaces (no tan exactos tampoco)... La verdad pensaba generar la onda, convertirla en alterna y luego meterle a un transformador para elevar el voltaje, no funcionaria asi??
Si, correcto, asi funcionara sin problemas, ademas el primario del trafo hara de filtro para convertir los PWMs en niveles de tension, o eso espero :lol: :lol:
-
He estado pensando y creo que la mejor manera de hacerlo es sin interrupcion, ya que como tu dices una vez que entramos en interrupcion despues nos sigue donde estaba, tendriamos que encender un FLAG despues chequearlo y nos daria mas problemas.
Hacerlo sin interrupcion es facil, se pone TMR0 a contar los 138uS del ciclo completo del PWM y el tiempo del dutty se cuenta por demoras, quedaria asi mas o menos, es solo la idea no lo depure ni nada:
Como ves es bastante sencillo, solo hay que ir añadiendo llamadas a demoras, y el timer nos cuenta el tiempo total asi tendremos tiempo de chequear el pin donde este el opto y detectar el cruce por 0, seguramente habra que ajustar mas los tiempos pero eso yo siempre lo hago una vez que el programa esta hecho.
Pues te comento que se me vino muchas ideas a la cabeza.... ahora el problema creo que es el hecho de hacerlo sin interrupcion....
El hecho de hacerlo contar al TMR0 se puede hacer tambien con interrupcion de esa forma, bueno eso creo yo...
En cuanto a testear el pin del opto pues no se, eso es lo que mas me da vueltas la cabeza ya que podria darse el caso de que justamente el cruce por cero de la onda testeada se de cuando estemos en una demora... eso nos daria lugar a que el tiempo que supuestamente contabilizamos para el cruce por cero y empezar ahi nuestra forma de onda pues no sea tan cierto y no iniciemos bien nuestra forma de onda.
Ahora lo que se me viene a la mente es aun hacerlo con interrupcion externa pero dentro de la interrupcion nuevamente formar una onda senoidal, ahi el problema es que ya no podriamos registrar nuevamente la interrupcion, pero se me ocurre salir de la interrupcion para el ultimo ciclo (ciclo que es cero toda la portadora), pero ahi el problema seria que al salir de la interrupcion podria caer en cualquier lugar de la forma de onda cuando debería de ser cero.... Dejame un poco aclararme la mente y ver como mismo se podria hacer jejejejejejeje.... creo q eso de activar un flag podria servir y preguntar por ese flag justo antes de mandar a uno cualquier bit de salida...... luego de eso limpiarlo, como solo seria un ciclo que se necesitara de eso...
Por ahora creo que trabajare con tu codigo pero manteniendo la opcion de la interrupcion externa.... queria simplificar un poco el codigo y hacerlo mas corto pero de la forma que estaba haciendolo ocupo mucho mas tiempo en hacerlo y por ahora lo mejor es que funcione ya que necesito hacerlo.... luego podre estar mejorando el codigo con mas calma....
Ahora lo que me esta preocupando un poco es el espacio en el PIC ya que al hacerlo de esta forma voy a ocupar muchisima memoria...... espero tener suficiente... la verdad no habia hecho nunca codigos muy largos y de por si el formar la forma de onda como lo voy a hacer es largo, no se diga el hacer 2 formas de onda.
Si pero esos tiempos son los de commutacion del opto, pero no tienen nada que ver, ya que lo que hay que saber es cuando la V de la onda no es suficiente para encender el LED del opto, y no es lo mismo con 230V que con 120V, igual que no llevan la misma R, en el esquema que yo te pongo es para 220V por tanto en tu pais con 120V esa R sera difarente y este tiempo variara ¿No tienes un osciloscopio? con el osciloscopio se pone un canal en alterna y otra en la salida y se ve perfecto, sino ya buscaremos otra manera de hacerlo, o a ver si algun ecuatiorano por el foro que te haga esa prueba.
No tengo un osciloscopio de laboratorio... tengo un "mini osciloscopio DS203", podria ver ahi la forma de onda pero no se si me responda o se me queme al meterle continua en otra entrada... tiene 4 entradas dos ac/dc y 2 dc.... voy a intentar averiguar si me serviria.... ademas eso lo tengo en la ciudad y aun faltan algunos dias para salir alla...
Si, correcto, asi funcionara sin problemas, ademas el primario del trafo hara de filtro para convertir los PWMs en niveles de tension, o eso espero :lol: :lol:
Pues tambien lo espero... esperaba poder trabajar con 12Vdc sobre los transistores y eso transformalo a los 120Vca
Saludos, Pedro
-
No tendremos problema por chequear el pin del opto, ya que lo chequeariamos en los pWMs con poco dutty o ninguno, es decir tendriamos casi todo el tiempo para chequearlo, en el PWM del paso por 0 cargariamos el TMR0 y despues todo el tiempo chequeariamos el INTCON,T0IF y el opto si se pusiera a 1 mientras chequeamos el INTCON,T0IF lo veriamos con 400nS de retraso, con interrupcion tardariamos mas en detectarlo, entra que salta a posicion 0x04 despues a la interrupcion, guardamos los reg. y chequeamos el flag pasan muchos mas ciclos maquina que haciendolo directamente.
El programa se puede acortar, habria que mirarlo, este PIC solo tiene 2K de memoria de programa pero aun asi creo que llegara, en ensamblador los programas ocupan poco. El variador trifasico que hice, esta sin acabar pero la parte que ocupa memoria esta lista y rebase en poco los 2K, aunque este lleva mas niveles, el otro lleva mas temporizaciones ya que para cada frec lleva la suya.
El TMR0 puede funcionar por interrupcion pero en este programa una vez ejecutada la demora o demoras, solo hay que hacer eso chequear el INTCON,T0IF, si tuvieramos que atender a otras cosas entonces si valdria la pena hacerlo por interrupcion.
No tengo un osciloscopio de laboratorio... tengo un "mini osciloscopio DS203", podria ver ahi la forma de onda pero no se si me responda o se me queme al meterle continua en otra entrada... tiene 4 entradas dos ac/dc y 2 dc.... voy a intentar averiguar si me serviria.... ademas eso lo tengo en la ciudad y aun faltan algunos dias para salir alla...
La verdad que no conozco ese modelo, no te puedo decir.
Pues tambien lo espero... esperaba poder trabajar con 12Vdc sobre los transistores y eso transformalo a los 120Vca
¿Ya sabes que transistores le vas a poner? ten en cuenta que I en el primario va a ser 10 o 11 veces mayor que la que tengas en el secundario.
-
No tendremos problema por chequear el pin del opto, ya que lo chequeariamos en los pWMs con poco dutty o ninguno, es decir tendriamos casi todo el tiempo para chequearlo, en el PWM del paso por 0 cargariamos el TMR0 y despues todo el tiempo chequeariamos el INTCON,T0IF y el opto si se pusiera a 1 mientras chequeamos el INTCON,T0IF lo veriamos con 400nS de retraso, con interrupcion tardariamos mas en detectarlo, entra que salta a posicion 0x04 despues a la interrupcion, guardamos los reg. y chequeamos el flag pasan muchos mas ciclos maquina que haciendolo directamente.
El programa se puede acortar, habria que mirarlo, este PIC solo tiene 2K de memoria de programa pero aun asi creo que llegara, en ensamblador los programas ocupan poco. El variador trifasico que hice, esta sin acabar pero la parte que ocupa memoria esta lista y rebase en poco los 2K, aunque este lleva mas niveles, el otro lleva mas temporizaciones ya que para cada frec lleva la suya.
El TMR0 puede funcionar por interrupcion pero en este programa una vez ejecutada la demora o demoras, solo hay que hacer eso chequear el INTCON,T0IF, si tuvieramos que atender a otras cosas entonces si valdria la pena hacerlo por interrupcion.
Me dices que lo veriamos con 2 ciclos de retraso, no se como lo hariamos si estamos en ese bucle que se hace entre el chequeo del INCONT,T0IF al ser un bucle no sale sino hasta que se cumple..... aun no entiendo tu idea para testear el pin del opto.. sera que estoy muy confundido o que no te entiendo?? te entiendo que con interrupcion hay que guardar los registros y todo en general pero pensaba no guardarlos por efecto de que podria una senoidal dentro de la IT.... bueno pero primero quiero que me expliques como es ese chequeo del pin de opto ya que en verdad estoy hecho un lio con eso jejejejejejeje
Exacto la memoria de programa es poca y como te digo nunca he hecho programas a largos asi que no se como se calcula la memoria de programa jajajajajajajaja, ya voy a terminar a ver que me indiques como ver la memoria de programa o que me lo des viendo...
entiendo... como el pic esta dedicado a esto nada mas pues mejor lo hacemos sin interrupcion pero como te digo se me hizo problema el chequear el pin del opto y realmente no te entiendo en donde hacerlo.
La verdad que no conozco ese modelo, no te puedo decir.
La direccion del manual seria esta pero esta en ingles
http://www.kc-kwan.com/supports/manual_PC_Oscilloscope_DSO203.pdf
¿Ya sabes que transistores le vas a poner? ten en cuenta que I en el primario va a ser 10 o 11 veces mayor que la que tengas en el secundario.
Pensaba utilizar el IRFZ48N que hay disponible en mi ciudad... pero si tienes una mejor opcion pues hasmela saber...
Saludos, Pedro.
-
Chequear el pin es muy sencillo, por ejemplo:
POSITIVO_0 ;este es el primer PWM que no tiene dutty, es el paso por 0
nop ;estos nop son de relleno, despues pondremos mas o menos
nop
movlw .85 ;valoe del offset del TMR0 para 136,80uS
mowf TMR0 ;aqui empieza a contar
btfsc PORTB,2 ;puedes ponerlo donde quieras
goto CRUCE_0 ;ya esta a 1, aqui haremos lo que corresponda
btfss INTCON,T0IF ;chequeamos si desbordo
goto $-3 ;todavia no pasaron los 138uS, seguimos chequeando pin de cruce por 0.
POSITIVO_1 ;este sera el primer PWM con dutty
bsf PORTC,2 ;lo activamos (pon el que tu quieras)
movlw .85 ;valoe del offset del TMR0 para 136,80uS
mowf TMR0 ;aqui empieza a contar
call DEMORA_1 ;llamamos demora
bcf PORTC,2 ;acabo tiempo dutty, apagamos
btfsc PORTB,2 ;puedes ponerlo donde quieras
goto CRUCE_0 ;ya esta a 1, aqui haremos lo que corresponda
btfss INTCON,T0IF ;chequeamos si desbordo
goto $-1 ;todavia no pasaron los 138uS, esperamos
Como ves lo vamos a estar chequeando constantemente, excepto cuando estemos en las demoras, en los PWMs que creamos que puede haber cruce por 0 o en todos si queremos.
En el MPLAB cuando cargas un programa en view, la ultima opcion "memory ussage gauge" te dice cuanta usaste y cuanta te queda.
Pensaba utilizar el IRFZ48N que hay disponible en mi ciudad... pero si tienes una mejor opcion pues hasmela saber...
No, con tal de que aguenten, mañana miro el data sheet.
-
Chequear el pin es muy sencillo, por ejemplo:
POSITIVO_0 ;este es el primer PWM que no tiene dutty, es el paso por 0
nop ;estos nop son de relleno, despues pondremos mas o menos
nop
movlw .85 ;valoe del offset del TMR0 para 136,80uS
mowf TMR0 ;aqui empieza a contar
btfsc PORTB,2 ;puedes ponerlo donde quieras
goto CRUCE_0 ;ya esta a 1, aqui haremos lo que corresponda
btfss INTCON,T0IF ;chequeamos si desbordo
goto $-3 ;todavia no pasaron los 138uS, seguimos chequeando pin de cruce por 0.
POSITIVO_1 ;este sera el primer PWM con dutty
bsf PORTC,2 ;lo activamos (pon el que tu quieras)
movlw .85 ;valoe del offset del TMR0 para 136,80uS
mowf TMR0 ;aqui empieza a contar
call DEMORA_1 ;llamamos demora
bcf PORTC,2 ;acabo tiempo dutty, apagamos
btfsc PORTB,2 ;puedes ponerlo donde quieras
goto CRUCE_0 ;ya esta a 1, aqui haremos lo que corresponda
btfss INTCON,T0IF ;chequeamos si desbordo
goto $-1 ;todavia no pasaron los 138uS, esperamos
Como ves lo vamos a estar chequeando constantemente, excepto cuando estemos en las demoras, en los PWMs que creamos que puede haber cruce por 0 o en todos si queremos.
En el MPLAB cuando cargas un programa en view, la ultima opcion "memory ussage gauge" te dice cuanta usaste y cuanta te queda.
El testeo del bit del opto no hay como ponerlo donde sea ya que estamos poniendo un bucle que ingresa ahi.... Hasme un favor, con que configuracion le pusiste el TIMER 0, yo lo puse en modo contador y con preescaler 1:4, parece ser que asi lo pensaste.
En cuanto a la memoria de programa ya se verla, muchas gracias por la indicacion, solamente como lo planteabamos seguro nos ibamos pasando... asi que opte por hacer una demora de 7 ciclos (escogi esta ya que ahi es cuando se cumple que hay q darle un cm mas en la demora), asi que con este pequeño cambio ya me dio la memoria de programa jejejejejeje....
No, con tal de que aguenten, mañana miro el data sheet.
Ahi le hechas un vistazo y me avisas...
De paso te dejo el programa de como esta hasta ahora... aun hay q ajustar los tiempos y demas pero como tu dijiste eso lo podemos hacer al ultimo.
Saludos, Pedro
-
El testeo del bit del opto no hay como ponerlo donde sea ya que estamos poniendo un bucle que ingresa ahi....
Si efectivamente va ahi donde esta :lol: con lo de ponerlo donde quieras me referia al pin del PIC que yo puse PORTB,2 y puedes ponerlo en el pin que quieras :D :D
Hasme un favor, con que configuracion le pusiste el TIMER 0, yo lo puse en modo contador y con preescaler 1:4, parece ser que asi lo pensaste.
NO, tiene que ser en modo temporizador , contador es para contar pulsos externos en el pin PORTA,4.
Si se me olvido decirtelo, perdon, esta en preescaler de 4, ya que en preescaler de 2 que seria mas preciso y mejor solo da hasta 102,40uS y no llega, si fuera necesario usariamos TMR1 que es de 16bits y mas preciso, pero un poco mas complejo de usar, creo que nos servira el TMR0.
En cuanto a la memoria de programa ya se verla, muchas gracias por la indicacion, solamente como lo planteabamos seguro nos ibamos pasando... asi que opte por hacer una demora de 7 ciclos (escogi esta ya que ahi es cuando se cumple que hay q darle un cm mas en la demora), asi que con este pequeño cambio ya me dio la memoria de programa jejejejejeje....
No entiendo lo de la demora de 7 ciclos, ¿se te pasaba de memoria de programa? ¿Has mirado que tiempos salen? Aqui lo importante son los tiempos que tienen que ir muy justos, todo lo justos que se pueda, aunque nos podemos permitir algunas desviaciones.
Ahi le hechas un vistazo y me avisas...
Si va muy sobrado en V, en I depende de que potencia quieras en la salida. Haciendo un calculo asi por encima, como aguantan 64A a 25 grados y 45A a 100, vamos a coger 25A y con disipadores, aunque esto depende de muchos factores (temperatura ambiente, ventilacion, tiempo de trabajo...) y nos daria:
Wprimario=V*I=8,5*25=212W ;le quitamos las perdidas en el trafo, pongamos rendimiento 90%
212*0,9=191,5W potencia total; Isecundario=W/V= 191,5/120=1,6A en el secundario,
Es decir en la instalacion de alterna tendras 190W y 1,6A a 120V, ¿Es suficiente?
De paso te dejo el programa de como esta hasta ahora... aun hay q ajustar los tiempos y demas pero como tu dijiste eso lo podemos hacer al ultimo.
El programa lo mirare algo mas tarde, dame un poco de tiempo :lol:
-
Le he echado un ojo asi por encima al programa, es cierto si que quedo un poco largo :lol: :lol: pero la precision es acojonante, los tiempos dan casi perfectos, el semiciclo positivo se queda en 8.330600mS (copiado del MPLAB) pasado a millonesimas 8330,6uS, ¿Le has hecho algo para ajustar esto? porque vaya exactitud ¿No?, esto lo hace la primera vez por la configuracion incial, despues en cada ciclo ya real sale 8.328800Ms que esta muy bien, pero la mejoraremos, solo hay que mirar los uS que nos faltan y aumentarselos al TMR0 en el PWM del 100% (cresta de la onda)
La negativa 8.329000, la onda entera sale 16.657800 que debe ser 16,67mS, bueno ajustaremos para que salga perfecta, pero para el primer intento esta bastante bien ¿No?.
Mañana te explicare unas cosillas que nos faltan.
-
Si efectivamente va ahi donde esta :lol: con lo de ponerlo donde quieras me referia al pin del PIC que yo puse PORTB,2 y puedes ponerlo en el pin que quieras :D :D
ah ya... entiendo... y pues asi lo hice jejejejejeje
NO, tiene que ser en modo temporizador , contador es para contar pulsos externos en el pin PORTA,4.
Si se me olvido decirtelo, perdon, esta en preescaler de 4, ya que en preescaler de 2 que seria mas preciso y mejor solo da hasta 102,40uS y no llega, si fuera necesario usariamos TMR1 que es de 16bits y mas preciso, pero un poco mas complejo de usar, creo que nos servira el TMR0.
Soy un animal... te dije modo contador, cuando incluso en la configuracion lo hice en modo temporizador jajajajajajaja
Por ahora creo que la presicion es buena... veamos como nos sigue yendo
No entiendo lo de la demora de 7 ciclos, ¿se te pasaba de memoria de programa? ¿Has mirado que tiempos salen? Aqui lo importante son los tiempos que tienen que ir muy justos, todo lo justos que se pueda, aunque nos podemos permitir algunas desviaciones.
sip... aun iba en el cuarto del programa, es decir solamente el ciclo asendente de la parte positiva y ya tenia 721 de memoria ocupada, si eso multiplicaba por 4 pues ya me iba pasando de la memoria del pic jajajajajaja
Ahora bien paso a explicarte la demora_7
en realidad no son mas q 7 demora_1 a la que le sumo un ciclo de maquina... ahora te explico porque:
En la demora uno damos 4.6us de demora cuando en realidad la demora real es de 4,62962962962963e-6
En 7 demoas de 4.6us tenemos 32.2us cuando la verdadera demora debería ser 3,240740740740741e-5
Entonces al darle un ciclo de maquina mas en la demora_7 tenemos 32.4us que es aun mas ajustado al valor real
Si va muy sobrado en V, en I depende de que potencia quieras en la salida. Haciendo un calculo asi por encima, como aguantan 64A a 25 grados y 45A a 100, vamos a coger 25A y con disipadores, aunque esto depende de muchos factores (temperatura ambiente, ventilacion, tiempo de trabajo...) y nos daria:
Wprimario=V*I=8,5*25=212W ;le quitamos las perdidas en el trafo, pongamos rendimiento 90%
212*0,9=191,5W potencia total; Isecundario=W/V= 191,5/120=1,6A en el secundario,
Es decir en la instalacion de alterna tendras 190W y 1,6A a 120V, ¿Es suficiente?
En realidad queria proponer una salida de 300W, en mas mi propuesta es esa, y si hay como alcanzarla pues mejor pero si no hay como alcanzarla pues no pasa nada, con los 190W ya es bastante bueno.
El programa lo mirare algo mas tarde, dame un poco de tiempo :lol:
Jajajajaja.... no te preocupes... aunq ya me fije que ya lo habias visto jejejejeejejeje
______________________________________________
Ahora te respondo a tu otro mensaje:
Le he echado un ojo asi por encima al programa, es cierto si que quedo un poco largo Laughing Laughing pero la precision es acojonante, los tiempos dan casi perfectos, el semiciclo positivo se queda en 8.330600mS (copiado del MPLAB) pasado a millonesimas 8330,6uS, ¿Le has hecho algo para ajustar esto? porque vaya exactitud ¿No?, esto lo hace la primera vez por la configuracion incial, despues en cada ciclo ya real sale 8.328800Ms que esta muy bien, pero la mejoraremos, solo hay que mirar los uS que nos faltan y aumentarselos al TMR0 en el PWM del 100% (cresta de la onda)
La negativa 8.329000, la onda entera sale 16.657800 que debe ser 16,67mS, bueno ajustaremos para que salga perfecta, pero para el primer intento esta bastante bien ¿No?.
Mañana te explicare unas cosillas que nos faltan.
Lo unico que hice para ajustar los tiempos es el tiempo que te comente en demora_7, es mas creo que aun me falta ajustar un ciclo de maquina en todas las demoras que suman las 6 demora_1 y tambien esta la demora, ya que ahi tambien serian 7 demoras, por lo cual tambien hace falta ajustar un poco.... y creo que habria primero que ajustar lo que te digo para luego si ajustar todo lo que falte en la cresta de la onda (PWM del 100%)
Y pues si... para haber sido el primer intento esta bastante bien y mas aun sabiendo que luego ibamos a ir ajustando mas y mas la onda.... a ver si hoy por la noche me doy un tiempo y avanzo a hacer los cambios que te digo y ahi si para que le saques los tiempos de la onda e ir ajustandolo lo mas que se pueda....
Y mientras me explicas lo que nos falta pues ire intentando aplicarme en introducir ese ciclo de maquina que te digo que nos falta.... es solo cuestion de poner un "nop" pero hay que ver donde se lo pone...
Saludos, Pedro.
-
Aqui te dejo el codigo ya sin errores supuestamente (incluyendo los nop q te dije)... ahora si ya creo que seria de sacarles los tiempos y ajustarlos jejejeje.... Por cierto encontre unos errores en el conteo de las demoras pero ya lo arregle tambien jejejeje
A ver si me ayudas viendo los tiempos.... Tambien a ver si me ayudas indicando como saber los tiempos en mplab?? si es muy complicado ya me ayudaras mas adelante con mas paciencia....
Saludos, Pedro.
-
Ahora bien paso a explicarte la demora_7
en realidad no son mas q 7 demora_1 a la que le sumo un ciclo de maquina... ahora te explico porque:
En la demora uno damos 4.6us de demora cuando en realidad la demora real es de 4,62962962962963e-6
En 7 demoas de 4.6us tenemos 32.2us cuando la verdadera demora debería ser 3,240740740740741e-5
Entonces al darle un ciclo de maquina mas en la demora_7 tenemos 32.4us que es aun mas ajustado al valor real
Bien ahora ya lo entiendo, bien hecho.
En realidad queria proponer una salida de 300W, en mas mi propuesta es esa, y si hay como alcanzarla pues mejor pero si no hay como alcanzarla pues no pasa nada, con los 190W ya es bastante bueno.
Bueno solo habria que poner mosfet mas potentes, hay mosfets potentes para 100A por 1€ e incluso menos, estes dias mirando para un proyecto mio encontre estes que ademas son de GATE logica, se ceban con la salida del PIC directamente cuando van entre el motor y masa:
http://www.digikey.es/product-search/en?pv606=19&pv608=2670&pv608=1931&pv608=1929&FV=fff40015%2Cfff8007d%2C97c001d%2C97c001e%2C97c001f%2C97c0020%2C97c0022%2C97c0023%2C97c0024%2C97c0025%2C97c0056%2C98000ab%2C980011f%2C98005a2%2C98005e0%2C9800789%2C980078b%2C98008b1%2C9800a6e%2C9800aef%2C9800b20%2Cefc0005%2Cefc0007%2Cefc0008%2Cefc0009%2Cefc000a%2Cefc000b%2Cefc000c%2Cefc000d%2Cefc000e%2Cefc000f%2Cefc0012&mnonly=0&newproducts=0&ColumnSort=0&page=1&quantity=0&ptm=0&fid=0&pageSize=25
Hablando sobre los mosfet y el puente H te queria comentar que nosotros estamos generando 2PWMs pero tenemos que actuar sobre 4 mosfet, bien tranquilo no es mucho problema, hay una forma que es asi:
Mira un puente H con solo dos alidas del PIC, pero con mosfet creo que no es tan sencillo???.
http://robots-argentina.com.ar/MotorCC_PuenteH.htm
Hay otra manera que es hacer conducir a los transistores superiores (mosfet, BJT, incluso reles, lo que se quiera) durante todo el semiciclo 8,33mS (cada semiciclo el que corresponda) y el PWM se hace solo sobre el transistor inferior, funciona exactamente igual que haciendo PWM sobre los dos, ya que funcionan como interruptores, en el programa es muy sencillo de cambiar. ¿Te acuerdas de esos "nop" que puse en el primer PWM? uno de ellos lo sustituyes por "bsf PORTC,X" y hay que ponerlo a 0 al final del semiciclo, para en el siguiente activar el otro superior y hacer los PWMs del otro semiciclo.
Los mosfet superiores ya sabes que hay que cebarlos con un driver para darles la V del + mas 10 o 15V, hay drvers integrados como el IR2110, tambien se pueden hacer con unos NPN que creo que salen mas baratos. Tu veras que te sale mas economico y que tienes mas accesible.???
A ver si me ayudas viendo los tiempos.... Tambien a ver si me ayudas indicando como saber los tiempos en mplab?? si es muy complicado ya me ayudaras mas adelante con mas paciencia....
Es muy sencillo, abres el stopwatch desde el menu dbugger, pones breakpoints desde donde hasta donde quieres contar (haciendo doble click en la linea de codigo, fuera en la parte gris) pones a 0 en el stopwatch le das a la flecha verde de la izquierda y te ejecuta el codigo entre los breakpoints y te da el tiempo exacto que consume ese trozo de codigo, todo esto con el MPLAB SIM abierto (se abre en el menu debugger). En las "call" pones stopwatch a 0 le das a "step over" te ejecuta la demora y te dice el tiempo tarda la ejecucion.
Yo ayer para mirar los semiciclos completos puse un breakpoint aqui:
NEGATIVO_0 ;este es el primer PWM que no tiene dutty, es el paso por 0
nop ;estos nop son de relleno, despues pondremos mas o menos
En el nop y otro aqui:
goto POSITIVO_0 ;Empezamos nuevamente la onda
Con cada click me ejecuta un semiciclo entero y en el stopwatch me aparece el tiempo total.
Veo que en el programa de ayer (el de hoy aun no lo mire, estoy muy vago :lol: :lol:) veo que le das 100% en el 29 y el 30??? No importa, incluso esta bien que en la cresta haya mas de 1 PWM, solo lo digo por si fue un despiste.
Mirare el programa de hoy, saludos.
-
Bueno solo habria que poner mosfet mas potentes, hay mosfets potentes para 100A por 1€ e incluso menos, estes dias mirando para un proyecto mio encontre estes que ademas son de GATE logica, se ceban con la salida del PIC directamente cuando van entre el motor y masa:
http://www.digikey.es/product-search/en?pv606=19&pv608=2670&pv608=1931&pv608=1929&FV=fff40015%2Cfff8007d%2C97c001d%2C97c001e%2C97c001f%2C97c0020%2C97c0022%2C97c0023%2C97c0024%2C97c0025%2C97c0056%2C98000ab%2C980011f%2C98005a2%2C98005e0%2C9800789%2C980078b%2C98008b1%2C9800a6e%2C9800aef%2C9800b20%2Cefc0005%2Cefc0007%2Cefc0008%2Cefc0009%2Cefc000a%2Cefc000b%2Cefc000c%2Cefc000d%2Cefc000e%2Cefc000f%2Cefc0012&mnonly=0&newproducts=0&ColumnSort=0&page=1&quantity=0&ptm=0&fid=0&pageSize=25
Hablando sobre los mosfet y el puente H te queria comentar que nosotros estamos generando 2PWMs pero tenemos que actuar sobre 4 mosfet, bien tranquilo no es mucho problema, hay una forma que es asi:
Mira un puente H con solo dos alidas del PIC, pero con mosfet creo que no es tan sencillo???.
http://robots-argentina.com.ar/MotorCC_PuenteH.htm
Hay otra manera que es hacer conducir a los transistores superiores (mosfet, BJT, incluso reles, lo que se quiera) durante todo el semiciclo 8,33mS (cada semiciclo el que corresponda) y el PWM se hace solo sobre el transistor inferior, funciona exactamente igual que haciendo PWM sobre los dos, ya que funcionan como interruptores, en el programa es muy sencillo de cambiar. ¿Te acuerdas de esos "nop" que puse en el primer PWM? uno de ellos lo sustituyes por "bsf PORTC,X" y hay que ponerlo a 0 al final del semiciclo, para en el siguiente activar el otro superior y hacer los PWMs del otro semiciclo.
Los mosfet superiores ya sabes que hay que cebarlos con un driver para darles la V del + mas 10 o 15V, hay drvers integrados como el IR2110, tambien se pueden hacer con unos NPN que creo que salen mas baratos. Tu veras que te sale mas economico y que tienes mas accesible.???
Pues me parece que alguna ves vi que si existian aca en mi pais el IR2110 pero no estoy seguro.... Hoy ya estoy en la ciudad asi que me dare una vuelta a ver si puedo encontrar almacen abierto primero y si lo encuentro pues a preguntar sobre los elementos jejejejejejeje
Ahora ya he acomodado el programa con el cambio que me dices, el hecho de poner el bsf al inicio y el bcf al final de cada simiciclo de 8,33ms
Es muy sencillo, abres el stopwatch desde el menu dbugger, pones breakpoints desde donde hasta donde quieres contar (haciendo doble click en la linea de codigo, fuera en la parte gris) pones a 0 en el stopwatch le das a la flecha verde de la izquierda y te ejecuta el codigo entre los breakpoints y te da el tiempo exacto que consume ese trozo de codigo, todo esto con el MPLAB SIM abierto (se abre en el menu debugger). En las "call" pones stopwatch a 0 le das a "step over" te ejecuta la demora y te dice el tiempo tarda la ejecucion.
Yo ayer para mirar los semiciclos completos puse un breakpoint aqui:
NEGATIVO_0 ;este es el primer PWM que no tiene dutty, es el paso por 0
nop ;estos nop son de relleno, despues pondremos mas o menos
En el nop y otro aqui:
goto POSITIVO_0 ;Empezamos nuevamente la onda
Con cada click me ejecuta un semiciclo entero y en el stopwatch me aparece el tiempo total.
Veo que en el programa de ayer (el de hoy aun no lo mire, estoy muy vago :lol: :lol:) veo que le das 100% en el 29 y el 30??? No importa, incluso esta bien que en la cresta haya mas de 1 PWM, solo lo digo por si fue un despiste.
Mirare el programa de hoy, saludos.
Pues ahora ya aprendi jejejejeje, he hecho algunos cambios ya que no se porque pero en cada ciclo de la portadora (PWM) me daba diferente tiempo, asi que fui ajustando a lo que queria.... sabiendo que el tiempo de cada PWM es de 138,8888us, o sea que el el tercer PWM le di 139us, al igual que en el quinto....
Luego de terminar de hacer todos los ajustes me toco ajustarla aun un poco mas dando 2 "nop" en la cresta de la onda (es decir uno en el Positivo_29 y uno en el Positivo_30 al igual que en el Negativo_29 y Negativo_30), quedo bastante ajustado pero aun faltaria ajustar 0,2us (un ciclo) pero ya no quedarian las ondas totalmente identicas asi que no sabria en cual darle, si en el semiciclo negativo o en el positivo...
Ah y por supuesto que no fue despiste... es mas el Positivo_29, Positivo_30, asi como el Negativo_29 y el Negativo_30 son todos PWM de 100%, asi como tambien el el Positivo_0, Positivo_59, asi como el Negativo_0 y el Negativo_59 son todos PWM de 0%, Por ahi lei en algun lado que habia que hacer ese tiempo al cruzar por cero y hacer el cambio de sebado de los transistores...
Te dejo ya la ultima version que tengo hasta este momento.... con todos los cambios que me has dicho y con los cambios que tambien te comento que le he hecho, y como te dije aun me faltaria un ciclo de maquina por ajustar pero no sabria en donde ponerlo jejejejejeje Lo malo es que casi me he acabado toda la memoria del programa.... lo bueno es que como solamente esta dedicado a esto pues no necesito mas memoria de programa jejejejeje
Espero que le heches un vistazo y me comentes que mas se puede hacer y pues hasta mientras espero poder encontrar los elementos electronicos.
PD: Para hacer los calculos le he puesto los breack point aqui...
POSITIVO_0 ;este es el primer PWM que no tiene dutty, es el paso por 0
nop ;estos nop son de relleno, despues pondremos mas o menos
NEGATIVO_0 ;este es el primer PWM que no tiene dutty, es el paso por 0
nop ;estos nop son de relleno, despues pondremos mas o menos
Los he puesto en los nop.... y obviamente puse ahi puesto que ahi es cuando se empieza realmente el ciclo.
Saludos, Pedro.
-
En este ultimo he medido el desfase de tiempo en 1seg y es de 164uS, no es mucho pero habria que afinarlo mas.
Tambie veo que estamos al limite de memoria :lol: Me encanta exprimir los PICs al maximo :D :D cuando hay varios "nop" cada dos nop se pueden sustituir por un "goto $+1" hace lo mismo pero consume dos ciclos. En la cresta que le estas dando 2 ciclos iguales puedes suprimir uno y repetirlo...
El IR2110 suele haberlo, pero creo que n es barato, en comparacion con los mosfet que cuestan 1€ o menos.
-
En este ultimo he medido el desfase de tiempo en 1seg y es de 164uS, no es mucho pero habria que afinarlo mas.
Tambie veo que estamos al limite de memoria :lol: Me encanta exprimir los PICs al maximo :D :D cuando hay varios "nop" cada dos nop se pueden sustituir por un "goto $+1" hace lo mismo pero consume dos ciclos. En la cresta que le estas dando 2 ciclos iguales puedes suprimir uno y repetirlo...
Ahora ya lo ajuste un poco mas... si fuese necesario creo que si habria como ajustarle un poco mas aun aunq ahi tendria que utilizar algun auxiliar pero creo que asi como esta ya esta bastante bien ajustado....
Ya estan hechos los cambios de los Nop por los goto $+1.... ahora ya estamos un poquito mas holgados en memoria jajajajaja
Con lo que respecta a la cresta de la onda estan 8 instrucciones, para suprimirlo y hacerlo repetir creo que no vale la pena ya que para repetirlo, tendriamos que poner el valor en w, cargar en una variable auxiliar, decrementar con salto de cero a la auxiliar, si es cero mandarle a la siguiente pwm, sino pues continuar, y aparte al ultimo del ciclo habria que mandar a repetir, asi que serian 5 o 6 instrucciones asi que mejor creo que lo dejo asi como esta... no puedo hacer que el TMR0 cargue hasta el valor de 2 ciclos ya que no da la resolucion.... asi pues creo que la mejor opcion es dejarle como esta y de paso pues tambien sigue testeando si cruza o no por cero la senoidal de la red jejejejejejejeje
Los mosfet superiores ya sabes que hay que cebarlos con un driver para darles la V del + mas 10 o 15V, hay drvers integrados como el IR2110, tambien se pueden hacer con unos NPN que creo que salen mas baratos. Tu veras que te sale mas economico y que tienes mas accesible.???
El IR2110 suele haberlo, pero creo que n es barato, en comparacion con los mosfet que cuestan 1€ o menos.
Entonces sugieres que los cebe con transistores?? si es asi cuales sugieres?? aca los npn mas comunes son el 2n3904 de proposito general pero tambien hay el 2n2222 o el 2n2222a, y si tienes otro en mente pues es cuestion de ir a preguntar si en los almacenes lo tienen... el dia sabado no encontre ya almacenes electronicos abiertos pero en unas horas ya abriran....
Saludos, Pedro.
-
Ahora ya lo ajuste un poco mas... si fuese necesario creo que si habria como ajustarle un poco mas aun aunq ahi tendria que utilizar algun auxiliar pero creo que asi como esta ya esta bastante bien ajustado....
Si va bastante ajustado, he mirado la desviacion en 1seg y es solo de 4uS, cuando vaya sincronizado con la red ya se va a ir sincronizando en cada ciclo (ojala la de la red sea tan buena :lol:) y cuando trabaje solo ningun aparato notara esa deferencia.
Ya estan hechos los cambios de los Nop por los goto $+1.... ahora ya estamos un poquito mas holgados en memoria jajajajaja
Pues si se han ganado unos 100BYTES, estaba en casi 2000 y ahora esta por debajo de 1900 (1895), posiblemente los necesitemos mas adelante.
Con lo que respecta a la cresta de la onda estan 8 instrucciones, para suprimirlo y hacerlo repetir creo que no vale la pena ya que para repetirlo, tendriamos que poner el valor en w, cargar en una variable auxiliar, decrementar con salto de cero a la auxiliar, si es cero mandarle a la siguiente pwm, sino pues continuar, y aparte al ultimo del ciclo habria que mandar a repetir, asi que serian 5 o 6 instrucciones asi que mejor creo que lo dejo asi como esta... no puedo hacer que el TMR0 cargue hasta el valor de 2 ciclos ya que no da la resolucion.... asi pues creo que la mejor opcion es dejarle como esta y de paso pues tambien sigue testeando si cruza o no por cero la senoidal de la red jejejejejejejeje
Si, si te da problemas dejalo asi, ya que no se ganaba mucho, si fuera un gran avance valdria la pena, pero se gana muy poco.
Entonces sugieres que los cebe con transistores?? si es asi cuales sugieres?? aca los npn mas comunes son el 2n3904 de proposito general pero tambien hay el 2n2222 o el 2n2222a, y si tienes otro en mente pues es cuestion de ir a preguntar si en los almacenes lo tienen... el dia sabado no encontre ya almacenes electronicos abiertos pero en unas horas ya abriran....
Pues aqui ya no se que decirte, hace poco aqui en el foro hablando de un puente H pusieron un esquema de un driver para mosfet discreto, aqui:
http://www.todopic.com.ar/foros/index.php?topic=40945.msg341563#msg341563
En el segundo post, pero desaparecio misteriosamente y en la pag de Neoteo de donde fue sacado, ayer estaba mal la pagina y no fui capaz de verlo (ya habia visto ese driver en esa pagina hace tiempo para control de motores DC) pregunta el precio del IR2110 y haber como es de caro, es posible que para 12V haya alguno mas barato ya que el IR2110 vale hasta 400V.
-
Si va bastante ajustado, he mirado la desviacion en 1seg y es solo de 4uS, cuando vaya sincronizado con la red ya se va a ir sincronizando en cada ciclo (ojala la de la red sea tan buena :lol:) y cuando trabaje solo ningun aparato notara esa deferencia.
jajajaja pues creo que no es tan buena la de la red pero la ventaja es que le estamos testeando el cruce por cero a cada momento y cada ciclo lo vamos a ir sincronizando....
De paso te comento que en mi ciudad no encontre el PS2505-1 ni ningun ps2505, asi que busque opciones y encontre un H11AA1, te dejo el datasheet
http://pdf.datasheetcatalog.com/datasheet/QT/H11AA3.pdf
aun no he hecho las pruebas ya que he estado un poco ocupado pero creo que tiene la misma funcionalidad del ps2505 por lo que he leido en el datasheet, ademas tendria que hacer la prueba con un osciloscopio de laboratorio y no tendre acceso a uno sino hasta dentro de unos 10 dias ya que nuevamente me ire de la ciudad mañana a primera hora....
Te comento que el mosfet que he encontrado en mi ciudad es STP140NF75 y aqui te dejo su datasheet, me salieron un poquito caros pero creo que valen la pena.
http://pdf.datasheetcatalog.com/datasheet/stmicroelectronics/9231.pdf
En cuanto al driver tuve mala suerte y no encontre el IR2110, y pues se me paso preguntar por si tenian algun otro driver, creo que igualmente en unos 10 dias tendre que preguntar, si puedo conseguire a alguien que me de preguntado entre estos dias que estare fuera de la ciudad....
Pues si se han ganado unos 100BYTES, estaba en casi 2000 y ahora esta por debajo de 1900 (1895), posiblemente los necesitemos mas adelante.
Sip en eso si se gano bastante espacio en la memoria, gracias por indicarmelo que se me lo habia pasado por alto, a lo que me referia a que con los cambios de la cresta no se gana mucho....
Si, si te da problemas dejalo asi, ya que no se ganaba mucho, si fuera un gran avance valdria la pena, pero se gana muy poco.
exacto, por lo mismo opte por dejarlo asi... mas bien lo que hice es eliminar una instruccion que estaba duplicada, que seria el bsf al puerto de salida en el Positivo 30, y en el Negativo 30, ya que en los 29, ya los seteamos y nunca les damos en bcf jejejeje es algo que se me olvido escribirte pero que si lo hice....
Pues aqui ya no se que decirte, hace poco aqui en el foro hablando de un puente H pusieron un esquema de un driver para mosfet discreto, aqui:
http://www.todopic.com.ar/foros/index.php?topic=40945.msg341563#msg341563
En el segundo post, pero desaparecio misteriosamente y en la pag de Neoteo de donde fue sacado, ayer estaba mal la pagina y no fui capaz de verlo (ya habia visto ese driver en esa pagina hace tiempo para control de motores DC) pregunta el precio del IR2110 y haber como es de caro, es posible que para 12V haya alguno mas barato ya que el IR2110 vale hasta 400V.
Pues no se porque amigo pero no pudo ver tampoco las imagenes, ni la pagina a la que manda (o sea de Neoteo) desde el link que me mandaste... segun lei el amigo de ese hilo lo arreglo con un driver.... la verdad no he trabajando con mosfet nunca, pero pues es bueno experimentar o aprender algo nuevo... por ahi me recomendaron que mas bien ponga varios 2n3055 (que hay disponibles en mi ciudad pero no se el precio) en paralelo hasta que cumpla con la potencia que quiera entregar... Ahora mismo ya compre los mosfet que te comente que me costaron un poquitin caros pero si no puedo utilizarlos y me toca comprar los 2n3055 pues ya veremos creo que con las pruebas....
*********************************************************
Ahora te comento un problema muy grande que tengo... ya el programa se supone que esta funcionando, le quemo en el pic con el mplab y el pickit3, incluso me verifica que si le quemo en el pic, pero le conecto en un protoboard y no me funciona (al parecer no me funciona verificado con mi osciloscopio que te comente), cuando veo los pines de alimentacion si me da la alimentacion correcta (5V y GND) para VDD y VSS respectivamente, en las entradas del crystal me da un nivel mas o menos estable de voltaje, en la una pata mas grande que en la otra (no me he puesto a medir cuanto voltaje me da y no se si ahi sea el problema... pero en las salidas no me da absolutamente nada... Verifico en el PORTC las salidas 0,1,2 y 3 pero en ninguna me da absulutamente nada... verifico directamente todo en el pic, no lo estoy haciendo en el protoboard asi que pienso que no es falla del protoboard ya que la alimentacion llega al pic y en las patas de salida del pic no sale nada... esto me esta preocupando pero no se si la falla es de pronto el pic, o mas bien puede ser mi instrumento de medicion...
Bueno es lo que por ahora te puedo comentar con respecto a lo que estoy haciendo, si en algo me puedes ayudar o se te ocurre en que puedo estar herrando pues me lo haces saber...
Saluds, Pedro.
-
Creo que encontre la falla de porque pareciera que no funciona... esq le tenia al PIC sin conectar las patas (incluida la Portb,0) que es la pata de testeo para el cruce por cero, estaba que le metia cabeza pensando pero creo que es eso ya que esa pata debe estar a cero, lo malo es que no puedo probar mi teoria hasta que salga a mi ciudad ya que ahi tengo el pic y demas.... pero creo que ahi vamos a tener un poco de problemas ya como testeamos en cada momento la pata del pic pues puede darse el caso que esta en cero y se forme un bucle mientras esta testeando la pata... creo que hay q poner algo para q cuando se detecte el cruce por cero ya la siguiente onda no la detecte almenos mientras este en positivo la pata del pic... la verdad aun no he podido probar la forma de onda que da el ps2505 (en mi caso h11aa1) al paso por cero, no se si mantiene en 0 por un tiempo (y cuanto) el pulso o solamente es un impulso.... Si tienes idea de como es pues hasmelo saber para de esa manera seguir adecuando el codigo del PIC mientras me encuentro lejos de mi ciudad...
Saludos, Pedro.
-
De paso te comento que en mi ciudad no encontre el PS2505-1 ni ningun ps2505, asi que busque opciones y encontre un H11AA1, te dejo el datasheet
http://pdf.datasheetcatalog.com/datasheet/QT/H11AA3.pdf
aun no he hecho las pruebas ya que he estado un poco ocupado pero creo que tiene la misma funcionalidad del ps2505 por lo que he leido en el datasheet, ademas tendria que hacer la prueba con un osciloscopio de laboratorio y no tendre acceso a uno sino hasta dentro de unos 10 dias ya que nuevamente me ire de la ciudad mañana a primera hora....
Si parece exactamente igual, no debe haber problemas.
Te comento que el mosfet que he encontrado en mi ciudad es STP140NF75 y aqui te dejo su datasheet, me salieron un poquito caros pero creo que valen la pena.
http://pdf.datasheetcatalog.com/datasheet/stmicroelectronics/9231.pdf
En cuanto al driver tuve mala suerte y no encontre el IR2110, y pues se me paso preguntar por si tenian algun otro driver, creo que igualmente en unos 10 dias tendre que preguntar, si puedo conseguire a alguien que me de preguntado entre estos dias que estare fuera de la ciudad....
Con estos conseguiras los 300W que querias, ¿A cuanto te los han cobrado? En la pagina de Digikey mas o menos iguales estaban entre 0.7€ (1$) y 1,2€ (1,5$), pero bueno en las tiendas fisicas siempre cobran un poco mas, aqui en España en mi ciudad tambien pasa, ademas en mi ciudad que es pequeña solo hay un comercio que venda este material.
exacto, por lo mismo opte por dejarlo asi... mas bien lo que hice es eliminar una instruccion que estaba duplicada, que seria el bsf al puerto de salida en el Positivo 30, y en el Negativo 30, ya que en los 29, ya los seteamos y nunca les damos en bcf jejejeje es algo que se me olvido escribirte pero que si lo hice....
Si ya he visto que lo has hecho asi, te lo iba a decir y se me olvido, pero despues ya vi que lo estabas haciendo bien.
Pues no se porque amigo pero no pudo ver tampoco las imagenes, ni la pagina a la que manda (o sea de Neoteo) desde el link que me mandaste... segun lei el amigo de ese hilo lo arreglo con un driver.... la verdad no he trabajando con mosfet nunca, pero pues es bueno experimentar o aprender algo nuevo... por ahi me recomendaron que mas bien ponga varios 2n3055 (que hay disponibles en mi ciudad pero no se el precio) en paralelo hasta que cumpla con la potencia que quiera entregar... Ahora mismo ya compre los mosfet que te comente que me costaron un poquitin caros pero si no puedo utilizarlos y me toca comprar los 2n3055 pues ya veremos creo que con las pruebas....
Si es algo extraño, aunque pasa con bastantes circuitos aqui en el foro, al cabo de un tiempo desaparecen y queda una X marcando que hubo un circuito o una imagen pero no se pueden ver. En la web de Neoteo si logre entrar pero hay tantas paginas que no lo encontre y se me acabo la paciencia :lol: fue una pena porque muchas veces los copio para tenerlos, pero con este no me di cuenta de hacerlo :5]
Ahora te comento un problema muy grande que tengo... ya el programa se supone que esta funcionando, le quemo en el pic con el mplab y el pickit3, incluso me verifica que si le quemo en el pic, pero le conecto en un protoboard y no me funciona (al parecer no me funciona verificado con mi osciloscopio que te comente), cuando veo los pines de alimentacion si me da la alimentacion correcta (5V y GND) para VDD y VSS respectivamente, en las entradas del crystal me da un nivel mas o menos estable de voltaje, en la una pata mas grande que en la otra (no me he puesto a medir cuanto voltaje me da y no se si ahi sea el problema... pero en las salidas no me da absolutamente nada... Verifico en el PORTC las salidas 0,1,2 y 3 pero en ninguna me da absulutamente nada... verifico directamente todo en el pic, no lo estoy haciendo en el protoboard asi que pienso que no es falla del protoboard ya que la alimentacion llega al pic y en las patas de salida del pic no sale nada... esto me esta preocupando pero no se si la falla es de pronto el pic, o mas bien puede ser mi instrumento de medicion...
Lo mejor en estos casos que se desconfia de que el PIC este dañado, es grabarle un programa sencillo (encende y apagar un LED) y si con eso tambien falla pues...Otra cosa que a veces da problemas son los FUSES, que alguno este mal configurado.
Creo que encontre la falla de porque pareciera que no funciona... esq le tenia al PIC sin conectar las patas (incluida la Portb,0) que es la pata de testeo para el cruce por cero, estaba que le metia cabeza pensando pero creo que es eso ya que esa pata debe estar a cero, lo malo es que no puedo probar mi teoria hasta que salga a mi ciudad ya que ahi tengo el pic y demas.... pero creo que ahi vamos a tener un poco de problemas ya como testeamos en cada momento la pata del pic pues puede darse el caso que esta en cero y se forme un bucle mientras esta testeando la pata... creo que hay q poner algo para q cuando se detecte el cruce por cero ya la siguiente onda no la detecte almenos mientras este en positivo la pata del pic... la verdad aun no he podido probar la forma de onda que da el ps2505 (en mi caso h11aa1) al paso por cero, no se si mantiene en 0 por un tiempo (y cuanto) el pulso o solamente es un impulso.... Si tienes idea de como es pues hasmelo saber para de esa manera seguir adecuando el codigo del PIC mientras me encuentro lejos de mi ciudad...
Si nos va a dar 0 casi todo el semiciclo y unos uS antes del cruce por 0 se pondra a 1 y permanecera en 1 unos uS despues, pero cuando detectemos el flanco que se nos pone a 1 por primera vez, tendremos que poner un "FLAG" por sofware que pondremos a 1 mientras este FLAG este a 1 sabremos que no tenemos que hacerle caso al pin del opto, cuando se vuelva a poner a 0 pondremos ese FLAG a 0 y ya le volveremos a hacer caso. En un reg de RAM se le llama FLAGS y se coge un bit por ejemplo el bit 0, si se quiere se puede definir ese bit:
#DEFINE FLAG FLAGS,0
Cuando se chequea el pin si hay un 1 se chequea el FLAG "btfsc FLAG" si hay 0 es la primera vez hay cruce por 0 lo ponemos a 1 las siguientes veces como estara a 1 no hacemos caso, cuando se ponga a 0 el pin pondremos el FLAG a 0 asi la proxima vez como estara a 0 sabremos que es el cruce por 0.
No me di cuenta de decirte antes lo de definir las salidas y entradas, es muy util para hacer el programa mas entendible y tiene una utilidad muy buena, si tienes que cambiar pines no tienes que estar cambiandolos en el todo el programa, solo cambias en el #DEFINE y ya esta, por ejemplo si este programa lo tuvieras que pasar a un 12f que a los pines se les llama GPIO en vez de PORTC:
#DEFINE PWM_1 PORTC,2
Harias:
#DEFINE PWM_1 GPIO,2
Despues en el programa haces:
bsf PWM_1
Y ya no lo tienes que cambiar en los 60 PWMs donde va a estar PORTC,2 ¿Entiendes?, no te digo que lo hagas ahora porque te va a dar mucho trabajo, pero en los proximos programas acostumbrate a hacerlo asi, te sera mas comodo y mas entendible.
-
Si parece exactamente igual, no debe haber problemas.
Esperemos y sea asi... ya cuando salga para mi ciudad lo probare...
Con estos conseguiras los 300W que querias, ¿A cuanto te los han cobrado? En la pagina de Digikey mas o menos iguales estaban entre 0.7€ (1$) y 1,2€ (1,5$), pero bueno en las tiendas fisicas siempre cobran un poco mas, aqui en España en mi ciudad tambien pasa, ademas en mi ciudad que es pequeña solo hay un comercio que venda este material.
Pues aca fueron un poco caros... me costaron casi 5 dolares cada uno... he comprado 4...
En mi ciudad hay 3 tiendas medianas y unas 2 pequeñas mas pero solamente en el un local pude conseguir mosfet con esas caracteristicas o similares....
Ademas me nace una duda... me parece que para el tema del puente H, tenemos tambien que utilizar canal P en los mosfet, pero no conseguir de esas caracteristicas ni siquiera similares.... he comprado 4 como te dije pero aun con la duda si me serviran o no...
Alguien me recomendo IGBT pero esos si que nunca los he visto siquiera como son jajajajajajaja
Si ya he visto que lo has hecho asi, te lo iba a decir y se me olvido, pero despues ya vi que lo estabas haciendo bien.
Jejejeje esque cuando estoy lejos de mi ciudad y si dispongo de algo de tiempo le meto mano al programa a ver que mas se puede hacer jejejejejeje
Si es algo extraño, aunque pasa con bastantes circuitos aqui en el foro, al cabo de un tiempo desaparecen y queda una X marcando que hubo un circuito o una imagen pero no se pueden ver. En la web de Neoteo si logre entrar pero hay tantas paginas que no lo encontre y se me acabo la paciencia :lol: fue una pena porque muchas veces los copio para tenerlos, pero con este no me di cuenta de hacerlo :5]
jejejeje ni modo... tocara ver como nos habilitamos entonces jejejeje.....
Lo mejor en estos casos que se desconfia de que el PIC este dañado, es grabarle un programa sencillo (encende y apagar un LED) y si con eso tambien falla pues...Otra cosa que a veces da problemas son los FUSES, que alguno este mal configurado.
entiendo... cuando regrese por mi ciudad tambien probare el pic de esta manera jejejejejejeje
Y espero qeu los FUSES no esten mal configurados (segun yo si estan bien)
Si nos va a dar 0 casi todo el semiciclo y unos uS antes del cruce por 0 se pondra a 1 y permanecera en 1 unos uS despues, pero cuando detectemos el flanco que se nos pone a 1 por primera vez, tendremos que poner un "FLAG" por sofware que pondremos a 1 mientras este FLAG este a 1 sabremos que no tenemos que hacerle caso al pin del opto, cuando se vuelva a poner a 0 pondremos ese FLAG a 0 y ya le volveremos a hacer caso. En un reg de RAM se le llama FLAGS y se coge un bit por ejemplo el bit 0, si se quiere se puede definir ese bit:
#DEFINE FLAG FLAGS,0
Cuando se chequea el pin si hay un 1 se chequea el FLAG "btfsc FLAG" si hay 0 es la primera vez hay cruce por 0 lo ponemos a 1 las siguientes veces como estara a 1 no hacemos caso, cuando se ponga a 0 el pin pondremos el FLAG a 0 asi la proxima vez como estara a 0 sabremos que es el cruce por 0.
No me di cuenta de decirte antes lo de definir las salidas y entradas, es muy util para hacer el programa mas entendible y tiene una utilidad muy buena, si tienes que cambiar pines no tienes que estar cambiandolos en el todo el programa, solo cambias en el #DEFINE y ya esta, por ejemplo si este programa lo tuvieras que pasar a un 12f que a los pines se les llama GPIO en vez de PORTC:
#DEFINE PWM_1 PORTC,2
Harias:
#DEFINE PWM_1 GPIO,2
Despues en el programa haces:
bsf PWM_1
Y ya no lo tienes que cambiar en los 60 PWMs donde va a estar PORTC,2 ¿Entiendes?, no te digo que lo hagas ahora porque te va a dar mucho trabajo, pero en los proximos programas acostumbrate a hacerlo asi, te sera mas comodo y mas entendible.
Entiendo... voy a intentar hacerlo a ver como me va.... lo de los flag nunca habia utilizado pero como siempre digo, nunca es tarde para aprender....
en cuanto a los #define si consigo un poco mas de tiempo tambien lo implemente sino pues quedara asi hasta encontrar un poco mas de tiempo....
Y pues luego de adaptar lo del flag revisare si tengo que ajustar o no el tiempo nuevamente jejejejejeje por suerte ya me indicaste como hacerlo jajajajajaja
Saludos, Pedro.
-
Pues aca fueron un poco caros... me costaron casi 5 dolares cada uno... he comprado 4...
Si, lo que se dice baratos baratos, no fueron :lol:, pero bueno en las tiendas es habitual que les metan estos margenes, hay que pagar el local, sueldos de empleados, gastos de seguros sociales etc. ¿No podeis comprar por internet, digikey, farnel etc? aunque si es poco material con los gastos de envio...
Ademas me nace una duda... me parece que para el tema del puente H, tenemos tambien que utilizar canal P en los mosfet, pero no conseguir de esas caracteristicas ni siquiera similares.... he comprado 4 como te dije pero aun con la duda si me serviran o no...
Los mosfet de canal P son mas dificiles de encontrar, hay menos variedad y son mas caros. Si se ponen mosfet P en la parte superior no se necesita driver, el driver se pone para cebar los superiores de tipo N a la V de alimentacion +10 o 15V (segun mosfet) y que hagan la misma funcion que los tipo P.
Alguien me recomendo IGBT pero esos si que nunca los he visto siquiera como son jajajajajajaja
Los IGBTs hacen la misma funcion que los mosfet pero son para V mas altas, suelen ser para 600V y 1200V algunos incluso mas. Trabajan casi igual que los mosfet e incluso valen los mismos drivers.
jejejeje ni modo... tocara ver como nos habilitamos entonces jejejeje.....
Si, a ver como hacemos, ya lo conseguiremos...
Entiendo... voy a intentar hacerlo a ver como me va.... lo de los flag nunca habia utilizado pero como siempre digo, nunca es tarde para aprender....
Es algo que se usa bastante, para distinguir entre partes de programa en que las condiciones coinciden pero hay que hacer cosas distintas.
en cuanto a los #define si consigo un poco mas de tiempo tambien lo implemente sino pues quedara asi hasta encontrar un poco mas de tiempo....
Yo te aconsejaria que ahora que lo tienes hecho no te pongas a modificarlo, el programa va a funcionar igual, no vas a conseguir ninguna mejora. Si algun amigo te encarga que le hagas uno y le pones un 12f (que mas o menos llegaria y es mas pequeño y mas barato) te tocara cambiar los 120 PWMs uno a uno, o para un 16f de 18 pines igual ya que no tiene PORTC
-
Si, lo que se dice baratos baratos, no fueron :lol:, pero bueno en las tiendas es habitual que les metan estos margenes, hay que pagar el local, sueldos de empleados, gastos de seguros sociales etc. ¿No podeis comprar por internet, digikey, farnel etc? aunque si es poco material con los gastos de envio...
Aja... por todo eso y sobre todo por las importaciones (en caso de que las traigan del exterior) pues son mas caros...
Y como tu mismo dices pues es muy poco material como para los gastos de envio y a la final creo que hasta posiblemente me salen costando mas debido a los impuestos que se pagan de ingreso al pais.... ademas que aca en Aduanas es un problemon y demora mucho en llegar... entonces son muchos factores por lo cual no se compra por internet... Solamente se lo hace siesque realmente no hay disponible en el Pais y se necesita...
Los mosfet de canal P son mas dificiles de encontrar, hay menos variedad y son mas caros. Si se ponen mosfet P en la parte superior no se necesita driver, el driver se pone para cebar los superiores de tipo N a la V de alimentacion +10 o 15V (segun mosfet) y que hagan la misma funcion que los tipo P.
Mmmmm entiendo, pero para poner un mosfet de canal P en la parte superior deberia de tener por lo menos las mismas caracteristicas de corriente (que es lo que mas necesitamos) verdad??, porque me parece que me dijeron que hay unos de 75A en canal P, pero no recuerdo exactamente, ahi no se si sera o no suficiente para lo que necesito, tu que opinas?? te pregunto porque si asi evitamos el diver pues seria mejor ya que como te indique no encontre el IR2110, y pues se me paso preguntar por otro driver...
Los IGBTs hacen la misma funcion que los mosfet pero son para V mas altas, suelen ser para 600V y 1200V algunos incluso mas. Trabajan casi igual que los mosfet e incluso valen los mismos drivers.
Entiendo... a nosotros no nos serviran de mucho ya que manejariamos mas corriente que voltaje...
Si, a ver como hacemos, ya lo conseguiremos...
Tenemos que...
ahora estaba cambiando en algo el programa pero me nacio una duda.... no se si tienes alguna imagen de como se veria la salida del opto ya que como no la he visto me esta creando muchas dudas jejejejeje, ya quiero salir para mi ciudad a ver como es la forma de onda ya que pienso que talves asi podre saber en donde mismo meter la programacion para la flag....
Es algo que se usa bastante, para distinguir entre partes de programa en que las condiciones coinciden pero hay que hacer cosas distintas.
Ah ok... gracias
Yo te aconsejaria que ahora que lo tienes hecho no te pongas a modificarlo, el programa va a funcionar igual, no vas a conseguir ninguna mejora. Si algun amigo te encarga que le hagas uno y le pones un 12f (que mas o menos llegaria y es mas pequeño y mas barato) te tocara cambiar los 120 PWMs uno a uno, o para un 16f de 18 pines igual ya que no tiene PORTC
Ok, pero igual si tengo tiempo lo hare como quien practico jejejejeje...
De paso te comento que estoy pensando en hacer una Demora_2 y una Demora_3 que serian 2 y 3 Demora_1... a ver si de algo me sirve y consigo ganar algo de espacio ya que veo que lo voy a necesitar.
Saludos, Pedro.
-
Mmmmm entiendo, pero para poner un mosfet de canal P en la parte superior deberia de tener por lo menos las mismas caracteristicas de corriente (que es lo que mas necesitamos) verdad??, porque me parece que me dijeron que hay unos de 75A en canal P, pero no recuerdo exactamente, ahi no se si sera o no suficiente para lo que necesito, tu que opinas?? te pregunto porque si asi evitamos el diver pues seria mejor ya que como te indique no encontre el IR2110, y pues se me paso preguntar por otro driver...
Si, los P se usan muy poco porque son mas caros y hay menos variedad, ahorran el driver eso si, 75A bueno para 250W mas o menos valdrian??? Es raro que no encuentres el driver IR2110, casi todos los montajes con mosfet lo llevan, supongo que habra alguno similar.
Entiendo... a nosotros no nos serviran de mucho ya que manejariamos mas corriente que voltaje...
Aqui no sirven de nada, ya que aqui con un mosfet de 20V ya valdria, lo importante es la intensidad, estos se usan con baterias de 400V(coches electricos) o variadores industriales que trabajan con trifasica de 400V.
La señal que da el opto te la puse aqui:
http://imageshack.us/photo/my-images/255/cruceporcerofu1.jpg/
Lo que hay que saber es cuantos uS de ancho tiene ese pulso, para saber donde nos coincide ese flaco ascendente si en POSITIVO_55 (o 54 o 53) y asi saber a donde lo tenemos que mandar cuando este fuera de su sitio.
-
El primer cruce por 0 no debe de estar nunca fuera del rango POSITIVO_55 y NEGATIVO_4 ambos inclusive, y el segundo entre NEGATIVO_55 y POSITIVO_4, bueno esto en teoria :lol: me refiero al cruce por 0 cuando la corriente sea buena, si es mala tampoco se debe desviar mucho de estos margenes, con esto quiero decir que se podria chequear entre POSITIVO_50 y NEGATIVO_9 el primero y entre NEGATIVO_50 y POSITIVO_9, si esta fuera de estos rangos lo mejor es matar a los ingenieros de la red electrica de tu pais :D :D Sabiendo donde cruza exactamente cuando es buena, se pone ahi una etiqueta que podria ser "CRUCE_0_1" como ya lo mandas en el programa y la onda empezaria a generar en ese punto y estaria en sincronismo con la de red.
Lo del FLAG he hecho esto asi muy rapido (ando un poco liado esta temporada) seguramente es mejorable, posiblemente haciendo una rutina con el chequeo del FLAG y llamando esa rutina cada vez que el pin de un 1 se ahorre programa:
btfsc PORTB,0 ;chequeamos si cruzo por cero la senoidal de la red
goto $+4 ;ya cruzo por cero
btfss INTCON,T0IF ;chequeamos si desbordo
goto $-3 ;todavia no pasaron los 138,8uS, esp
goto $+5 ;para que continue ejecutando siguiente PWM ya que TMR0 desbordo
btfsc FLAG ;miramos si FLAG esta a 0
goto $-4 ;esta a 1, no hacemos caso
bsf FLAG ;esta a 0, lo ponemos a 1
goto CRUCE_0_1 ;y mandamos programa a punto de sincronismo
Si se mete el chequeo del FLAG antes del desborde del TMRO creo que no nos fastidia el tiempo del PWM. Por cierto si el TMR0 lo cargas antes de hacer bsf PORTC,X creo que tambien ahorras en poner los "nop" y los "goto" ¿Entiendes?.
De paso te comento que estoy pensando en hacer una Demora_2 y una Demora_3 que serian 2 y 3
Tambien puede que sirva.
-
El primer cruce por 0 no debe de estar nunca fuera del rango POSITIVO_55 y NEGATIVO_4 ambos inclusive, y el segundo entre NEGATIVO_55 y POSITIVO_4, bueno esto en teoria :lol: me refiero al cruce por 0 cuando la corriente sea buena, si es mala tampoco se debe desviar mucho de estos margenes, con esto quiero decir que se podria chequear entre POSITIVO_50 y NEGATIVO_9 el primero y entre NEGATIVO_50 y POSITIVO_9, si esta fuera de estos rangos lo mejor es matar a los ingenieros de la red electrica de tu pais :D :D Sabiendo donde cruza exactamente cuando es buena, se pone ahi una etiqueta que podria ser "CRUCE_0_1" como ya lo mandas en el programa y la onda empezaria a generar en ese punto y estaria en sincronismo con la de red.
Lo del FLAG he hecho esto asi muy rapido (ando un poco liado esta temporada) seguramente es mejorable, posiblemente haciendo una rutina con el chequeo del FLAG y llamando esa rutina cada vez que el pin de un 1 se ahorre programa:
btfsc PORTB,0 ;chequeamos si cruzo por cero la senoidal de la red
goto $+4 ;ya cruzo por cero
btfss INTCON,T0IF ;chequeamos si desbordo
goto $-3 ;todavia no pasaron los 138,8uS, esp
goto $+5 ;para que continue ejecutando siguiente PWM ya que TMR0 desbordo
btfsc FLAG ;miramos si FLAG esta a 0
goto $-4 ;esta a 1, no hacemos caso
bsf FLAG ;esta a 0, lo ponemos a 1
goto CRUCE_0_1 ;y mandamos programa a punto de sincronismo
Si se mete el chequeo del FLAG antes del desborde del TMRO creo que no nos fastidia el tiempo del PWM. Por cierto si el TMR0 lo cargas antes de hacer bsf PORTC,X creo que tambien ahorras en poner los "nop" y los "goto" ¿Entiendes?.
La verdad lo estaba haciendo de otra manera pero me estaba fastidiando los tiempo asi que tenia que volverlos a recalcular, asi q demoraba aun mas.... lo de la rutina lo intente pero de la forma que lo estaba haciendo fastidiaba aun mas el tiempo asi que tenia que ajustar aun mas por lo tanto ocupar mas intrucciones, intentare hacer lo que me dices y de esa forma ver como me va... te dejo el como lo estaba haciendo solo para que lo veas... pero como te digo me estaba tomando mucho tiempo...
POSITIVO_0 ;este es el primer PWM que no tiene dutty, es el paso por 0
bsf PWM_1_AUX ;pin para positivo del Puente H
bcf INTCON,T0IF
movlw .86 ;valor del offset del TMR0 para 136,0uS; Temporización = Ciclo de instrucción*(256-TMR0)*Divisor de Frecuencia
movwf TMR0 ;aqui empieza a contar
goto $+1
goto $+1
nop
btfsc CRUCE_CERO ;chequeamos si cruzo por cero la senoidal de la red
btfsc FLAG ;chequeamos si la bandera esta en alto
goto $+3
bsf FLAG
goto CRUCE_0 ;ya cruzo por cero
btfss INTCON,T0IF ;chequeamos si desbordo
goto $-6 ;todavia no pasaron los 138,8uS, esperamos
ahora se supone que esta configuracion del testeo del cruce por cero, me da a ambos cruces por cero, es decir de negativo a positivo y de positivo a negativo??
Porque si es asi pues creo que esto tambien debemos considerar en el programa.... justamente esa duda es la que tenia y por eso te pedia una imagen de como es la onda que sale del opto, al ser de esa forma no podriamos diferenciar cual es el cruce por cero de positivo a negativo y cual es de negativo a positivo... y eso seria otro problema mas a afrontar.... si vi la imagen que pusiste en jpg antes pero ahi justamente no indica mi duda... y como te dije propuse 300W pero si no hay como pues me tendre que conformar con lo que pueda... pero si intentare sacar los 300W, vere si hay otro driver o si consigo los otros transistores... cualquiera de las dos opciones....
Ah de la subrutina empece a hacerlo asi pero desisti porque tendria que llamar a la subrutina y poner otra bandera para salir de ahi... testear esa bandera al salir y de ahi si poner un goto ya que si hago un goto dentro de un call pues me va a desbordar la pila en cualquier momento y como nosotros testeamos muchisimas veces pues seguramente eso sera muy muy rapido... con todo ya pensare como hacer eso sin problema....
PD.: Algo que me olvidaba es preguntarte si mejor cambio el nombre del hilo ya que ya no es ese el problema o el hilo, ahora mas bien seria algo como "Problema con INVERSOR CC/CA de 60Hz" o simplemente "INVERSOR CC/CA de 60Hz"...
Otra cosa que me estoy dando cuenta es que si movemos el bsf tenemos que calcular el tiempo del PWM en alto, pero si siempre lo ponemos pegado a las demoras, pues ya no haria falta la demora "DEMORA", con la "DEMORA_1" sera suficiente... ademas de que los nop o goto servirian para ajustar tanto el tiempo del TMR0 asi como los tiempos del bcf jejejejeje... ire aplicando todo esto en el programa a ver como me va... voy a demorar bastantito pero creo que vale la pena...
Saludos, Pedro.
-
La verdad lo estaba haciendo de otra manera pero me estaba fastidiando los tiempo asi que tenia que volverlos a recalcular, asi q demoraba aun mas.... lo de la rutina lo intente pero de la forma que lo estaba haciendo fastidiaba aun mas el tiempo asi que tenia que ajustar aun mas por lo tanto ocupar mas intrucciones, intentare hacer lo que me dices y de esa forma ver como me va... te dejo el como lo estaba haciendo solo para que lo veas... pero como te digo me estaba tomando mucho tiempo...
Tal y como lo tienes tu no te debe influir en el tiempo, miralo en el simulador y veras que te da los 138uS igual, sino variamos el OFFSET del TMR0, ya que esta dentro del tiempo del TMR0, igualmente si lo cargas asi:
bcf INTCON,T0IF
movlw .86 ;valor del offset del TMR0 para 136,0uS; Temporización = Ciclo de instrucción*(256-TMR0)*Divisor de Frecuencia
movwf TMR0 ;aqui empieza a contar, antes del "bsf PWM_1_AUX"
bsf PWM_1_AUX
En los siguientes ponlo antes del PWM asi consigues que el TMR empiece a contar antes.
ahora se supone que esta configuracion del testeo del cruce por cero, me da a ambos cruces por cero, es decir de negativo a positivo y de positivo a negativo??
No es necesario, con que lo sincronicemos cada ciclo completo es suficiente, yo en el mensaje anterior te queria explicar donde deben estar mas o menos los cruces, pero no quise decir que los tuvieras que chequear, posiblemente me explique mal, cosa bastante normal en mi :lol: :lol: creo que lo mejor es chequear el cruce de - a +.
Porque si es asi pues creo que esto tambien debemos considerar en el programa.... justamente esa duda es la que tenia y por eso te pedia una imagen de como es la onda que sale del opto, al ser de esa forma no podriamos diferenciar cual es el cruce por cero de positivo a negativo y cual es de negativo a positivo... y eso seria otro problema mas a afrontar....
Si, llevo una semana dandole vueltas a esto y preguntandole a gente que sabe mas que yo, pero nadie me sabe dar una respuesta convincente. Creo que la unica manera es chequeando la direccion de la corriente, esto habria que hacerlo con optos normales, ya que solo conducen en una direccion, cuando los dos conducen quiere decir que la tensiones son del mismo signo + o - nos da igual el caso es que sean del mismo signo, porque si son de sigo contrario se restarian, si de la red tenemos 300W y le metemos 300W del inverter de signo contrario tenemos 0W???
Ah de la subrutina empece a hacerlo asi pero desisti porque tendria que llamar a la subrutina y poner otra bandera para salir de ahi... testear esa bandera al salir y de ahi si poner un goto ya que si hago un goto dentro de un call pues me va a desbordar la pila en cualquier momento y como nosotros testeamos muchisimas veces pues seguramente eso sera muy muy rapido... con todo ya pensare como hacer eso sin problema....
Otra manera es hacerlo como tu decias al principio, con interrupcion, nos evitaria estar chequeando el pin, pero en la interrupcion solo activariamos el FLAG y despues lo tendriamos que chequear en el programa??? No se si vamos a ganar mucho.
Ah de la subrutina empece a hacerlo asi pero desisti porque tendria que llamar a la subrutina y poner otra bandera para salir de ahi... testear esa bandera al salir y de ahi si poner un goto ya que si hago un goto dentro de un call pues me va a desbordar la pila en cualquier momento y como nosotros testeamos muchisimas veces pues seguramente eso sera muy muy rapido... con todo ya pensare como hacer eso sin problema....
Si, si te sales de la subrutina sin ejecutar el return, la octaba vez que lo hagas se te desbordara el stack y se te perdera el programa.
PD.: Algo que me olvidaba es preguntarte si mejor cambio el nombre del hilo ya que ya no es ese el problema o el hilo, ahora mas bien seria algo como "Problema con INVERSOR CC/CA de 60Hz" o simplemente "INVERSOR CC/CA de 60Hz"...
Pues si quieres hazlo, no se si puedes hacerlo tu o tiene que hacerlo un moderador, pero vamos no creo que haya problema.
Otra cosa que me estoy dando cuenta es que si movemos el bsf tenemos que calcular el tiempo del PWM en alto, pero si siempre lo ponemos pegado a las demoras, pues ya no haria falta la demora "DEMORA", con la "DEMORA_1" sera suficiente... ademas de que los nop o goto servirian para ajustar tanto el tiempo del TMR0 asi como los tiempos del bcf jejejejeje... ire aplicando todo esto en el programa a ver como me va... voy a demorar bastantito pero creo que vale la pena...
Lo de las dos demoras era porque en una descontabamos los tiempos de activacion para que saliera mas exacto el tiempo en alto, son solo 400nS de diferencia no seria problema, pero tampoco vas a ganar mucho ya que se escribe una sola vez y ocupa 6 Bytes.
-
Tal y como lo tienes tu no te debe influir en el tiempo, miralo en el simulador y veras que te da los 138uS igual, sino variamos el OFFSET del TMR0, ya que esta dentro del tiempo del TMR0, igualmente si lo cargas asi:
bcf INTCON,T0IF
movlw .86 ;valor del offset del TMR0 para 136,0uS; Temporización = Ciclo de instrucción*(256-TMR0)*Divisor de Frecuencia
movwf TMR0 ;aqui empieza a contar, antes del "bsf PWM_1_AUX"
bsf PWM_1_AUX
En los siguientes ponlo antes del PWM asi consigues que el TMR empiece a contar antes.
Mejor lo hice como tu me indicabas jejejejejeje ya he realizado el codigo, lo que aun me falta es lo que comentaba de la Demora_2 y Demora_3 pero creo que lo voy a dejar por ahora ahi ya que me quede aun con bastante espacio jajajajajaja si consigo algo de tiempo extra lo hago... ya vas a darte cuenta del espacio que he ahorrado jajajajaja...
ahora se supone que esta configuracion del testeo del cruce por cero, me da a ambos cruces por cero, es decir de negativo a positivo y de positivo a negativo??
No es necesario, con que lo sincronicemos cada ciclo completo es suficiente, yo en el mensaje anterior te queria explicar donde deben estar mas o menos los cruces, pero no quise decir que los tuvieras que chequear, posiblemente me explique mal, cosa bastante normal en mi :lol: :lol: creo que lo mejor es chequear el cruce de - a +.
Lo que preguntaba es si me da 1 (5V) a la salida siempre que hay cruce por cero ya sea de positivo a negativo y viceversa... y segun lo que me dices pues parece que es asi...
Yo se que la sincronizada creo que suficiente seria cada ciclo completo, lo q no sabia es si daba un 1 cada cruce por cero el opto, y segun veo si es asi y tu me lo confirmas con lo siguiente...
Si, llevo una semana dandole vueltas a esto y preguntandole a gente que sabe mas que yo, pero nadie me sabe dar una respuesta convincente. Creo que la unica manera es chequeando la direccion de la corriente, esto habria que hacerlo con optos normales, ya que solo conducen en una direccion, cuando los dos conducen quiere decir que la tensiones son del mismo signo + o - nos da igual el caso es que sean del mismo signo, porque si son de sigo contrario se restarian, si de la red tenemos 300W y le metemos 300W del inverter de signo contrario tenemos 0W???
asi que creo que es mejor utilizar un opto normal... he simulado y mira como sale la onda
http://prntscr.com/1sa6tg
asi que pienso que asi como esta la cosa y si es real esta imagen (ya probare cuando salga) es mejor testear en el cruce por cero de positivo a negativo ya que ahi es cuando te dara el 1 logico... ademas de que ahi es cuando empieza a conducir antes del cruce por cero.... en el cruce por cero de negativo a positivo llega a la tension del diodo y es un 0 logico... pero no se si me dara antes o despues del cruce por cero la señal, segun pareciera en la imagen que te pongo antes pues da despues del cruce por cero...
Otra manera es hacerlo como tu decias al principio, con interrupcion, nos evitaria estar chequeando el pin, pero en la interrupcion solo activariamos el FLAG y despues lo tendriamos que chequear en el programa??? No se si vamos a ganar mucho.
Creo que eso ya esta solucionado siesque miras el programa te daras cuenta...
Si, si te sales de la subrutina sin ejecutar el return, la octaba vez que lo hagas se te desbordara el stack y se te perdera el programa.
Exacto, por lo mismo utilice una bandera o flag.... mira el programa
Pues si quieres hazlo, no se si puedes hacerlo tu o tiene que hacerlo un moderador, pero vamos no creo que haya problema.
Ya lo cambie... espero y no haya problema por el cambio
Lo de las dos demoras era porque en una descontabamos los tiempos de activacion para que saliera mas exacto el tiempo en alto, son solo 400nS de diferencia no seria problema, pero tampoco vas a ganar mucho ya que se escribe una sola vez y ocupa 6 Bytes.
Si pero incluso eso hacia que me confunda... te comento que en los programas anteriores habiamos estado ignorando el PWM con 29 ciclos positivos y 1 negativo (nunca lo haciamos), ahora mismo ya solucione eso, pero he hecho que en la cresta de la onda PWM de 100% sea de un solo ciclo y igualmente he dividido el PWM de 0% en dos que a la final por tiempo viene a ser uno solo... aqui tengo una duda... Es necesario que en el cambio de signo de la onda enseguida que se desactive el un transistor se active el otro? es decir una instruccion luego de la otra?? ahora mismo estoy dando un tiempo de 69,4us entre lo que se desactiva el un transistor y lo que se activa el otro pero si hay que hacerlo uno tras otro pues es cuestion de acomodar el codigo, es mas por ahi lei que para los mosfet es mejor dejar un tiempo en el cambio de sentido del puente H, pero no se si es correcto dejar tanto tiempo.... tu sabes algo al respecto talves??
Ah algo que me olvidaba de comentarte, aca la frecuencia es 60Hz, a partir de 59,86Hz y hasta 60,14Hz es normal aunque normalmente oscila entre 59,95 y 60Hz, por debajo de 59,85Hz y por encima 60,15Hz ya es considerado un evento de frecuenca, es decir es algo que se debe evitar y eso lo hace el organismo de control de generacion en mi pais... Asi que pienso yo que no hay que hacerles aun nada a los ingenieros en mi pais jajajajajaja... en tiempos seria como
59,85Hz 0,0167084377610693 segundos
60Hz 0,0166666666666667 segundos
60,15Hz 0,0166251039068994 segundos
asi que si mis calculos no me fallan tendriamos un margen de 41,56275976718188 usegundos para cada lado en total seria 8,312551953436376 usegundos de variacion
es decir que el calculo para que se sincronice seria de hacerlo en el mismo ciclo en donde caiga el cruce por cero o uno antes o despues ya que mas que eso no creo que tendria sentido... ahora hay que ver cuando es que nos da ese cruce por cero el opto...
Corrigeme si estoy equivocado ya que yo tambien soy peligroso con la calculadora jejejejejeje
PD.: Te dejo el codigo para que lo chequees
Saludos, Pedro.
-
Mejor lo hice como tu me indicabas jejejejejeje ya he realizado el codigo, lo que aun me falta es lo que comentaba de la Demora_2 y Demora_3 pero creo que lo voy a dejar por ahora ahi ya que me quede aun con bastante espacio jajajajajaja si consigo algo de tiempo extra lo hago... ya vas a darte cuenta del espacio que he ahorrado jajajajaja...
Si ya esta en 1703 Bytes, si señor, te estas haciendo un experto en exprimir PICs :lol: :lol:
asi que creo que es mejor utilizar un opto normal... he simulado y mira como sale la onda
http://prntscr.com/1sa6tg
asi que pienso que asi como esta la cosa y si es real esta imagen (ya probare cuando salga) es mejor testear en el cruce por cero de positivo a negativo ya que ahi es cuando te dara el 1 logico... ademas de que ahi es cuando empieza a conducir antes del cruce por cero.... en el cruce por cero de negativo a positivo llega a la tension del diodo y es un 0 logico... pero no se si me dara antes o despues del cruce por cero la señal, segun pareciera en la imagen que te pongo antes pues da despues del cruce por cero...
Si asi es como sale la onda con un opto normal, como lo tienes ahi nos marca los semiciclos negativos (fijate que en semiciclo - da un 1) si la salida en vez de sacarla del colector la sacas del emisor (la que va a masa) marcara los semiciclos +, eso es como mejor vaya en cada aplicacion, fijate que un poco despues de que empieza el semi + da un 0 (0V) y unos uS antes de que termine semi + se pone a 1 (5V), no se si nos conviene mas uno u otro, de todas maneras solo es cambiar una conexion.
Es necesario que en el cambio de signo de la onda enseguida que se desactive el un transistor se active el otro? es decir una instruccion luego de la otra?? ahora mismo estoy dando un tiempo de 69,4us entre lo que se desactiva el un transistor y lo que se activa el otro pero si hay que hacerlo uno tras otro pues es cuestion de acomodar el codigo, es mas por ahi lei que para los mosfet es mejor dejar un tiempo en el cambio de sentido del puente H, pero no se si es correcto dejar tanto tiempo.... tu sabes algo al respecto talves??
Es totalmente imprescindible dejar un tiempo entre la desactivacion de uno y la activacion de otro si no haces un corto, el tiempo es mejor un PWM completo aunque no obligatorio, si miras el data del mosfet veras que conmutan en nS, les lleva mas tiempo cortar conduccion que ponerse en conduccion, un valor tipico Ton=20nS Toff=100nS, como nuestro PIC a 20MHz tarda 200nS cada instruccion casi no necesitamos dejar tiempo, pero es mejor asegurarse antes de poner uno a conducir, que el otro esta apagado, pero como ves puedes hacerlo como quieras, te llegaria incluso:
bcf PORTC,0
nop
nop
bsf PORTC,1
Ah algo que me olvidaba de comentarte, aca la frecuencia es 60Hz, a partir de 59,86Hz y hasta 60,14Hz es normal aunque normalmente oscila entre 59,95 y 60Hz, por debajo de 59,85Hz y por encima 60,15Hz ya es considerado un evento de frecuenca, es decir es algo que se debe evitar y eso lo hace el organismo de control de generacion en mi pais... Asi que pienso yo que no hay que hacerles aun nada a los ingenieros en mi pais jajajajajaja... en tiempos seria como
59,85Hz 0,0167084377610693 segundos
60Hz 0,0166666666666667 segundos
60,15Hz 0,0166251039068994 segundos
asi que si mis calculos no me fallan tendriamos un margen de 41,56275976718188 usegundos para cada lado en total seria 8,312551953436376 usegundos de variacion
Bueno si cumplen con estos tiempos los dejaremos vivir :D :D Realmente cuando vuelcas tension a la red te exigen que la frec y la V cumplan unas condiciones, el problema es que despues los consumidores, sobre todo industriales, con las cargas inductivas (motores, electrovalvulas, contactores) deterioran esas ondas, y lo que llega a cada hogar es una incognita, aunque no siempre.
El programa asi en principio parece que va bien, los tiempos van bien, ¿Has mirado todas los PWMs? :lol: ya se que es un poco coñazo :lol: El fin de semana lo mirare con mas calma.
¿Que tal andas de matematicas? :lol: Encontre esta pagina donde trae al final un par de ejercicios resueltos para calcular la V instantanea de una senoide, te digo esto porque nosotros la estamos haciendo aumentando y bajando V de una forma bastante lineal (que creo que es una buena onda) pero las senoides como se generan con generadores electromecanicos van dando las tensiones segun la proximidad del rotor a los estatores en cada momento (son trifasicos) si tienes curiosidad por saber como son de verdad pues aqui te dejo esta pagina que lo explica de forma bastante sencilla:
http://e-ducativa.catedu.es/44700165/aula/archivos/repositorio//2750/2961/html/111_valores_de_una_onda_senoidal.html
Saludos.
-
Si ya esta en 1703 Bytes, si señor, te estas haciendo un experto en exprimir PICs :lol: :lol:
Gracias... :-) ahora le mejore un poco mas... ahi te dejare el codigo para que lo chequees....
Si asi es como sale la onda con un opto normal, como lo tienes ahi nos marca los semiciclos negativos (fijate que en semiciclo - da un 1) si la salida en vez de sacarla del colector la sacas del emisor (la que va a masa) marcara los semiciclos +, eso es como mejor vaya en cada aplicacion, fijate que un poco despues de que empieza el semi + da un 0 (0V) y unos uS antes de que termine semi + se pone a 1 (5V), no se si nos conviene mas uno u otro, de todas maneras solo es cambiar una conexion.
Entiendo.... sip... solo es cambiar una conexion y en el programa direccionarlo a otro lado, esto es todo.... y realmente no se cual cojer, creo que lo mas comun es coger el cambio de - a +, asi que creo que asi lo hare jejejeje, solamente que no se si darle demora para que sea en el cruce por cero que impiece mi onda o siemplemente mandarle a el ciclo que toque... creo que eso va a depender del tiempo que me de el opto antes del cruce por cero ya que si no hay como ajustarle para que se de exacto en el un ciclo pues tocara empezar mi onda en 0 obviamente dando la demora...
Es totalmente imprescindible dejar un tiempo entre la desactivacion de uno y la activacion de otro si no haces un corto, el tiempo es mejor un PWM completo aunque no obligatorio, si miras el data del mosfet veras que conmutan en nS, les lleva mas tiempo cortar conduccion que ponerse en conduccion, un valor tipico Ton=20nS Toff=100nS, como nuestro PIC a 20MHz tarda 200nS cada instruccion casi no necesitamos dejar tiempo, pero es mejor asegurarse antes de poner uno a conducir, que el otro esta apagado, pero como ves puedes hacerlo como quieras, te llegaria incluso:
bcf PORTC,0
nop
nop
bsf PORTC,1
Asi tal como esta, esta en 69,4us, es decir la mitad de un PWM ente la desactivacion del uno y la activacion del otro.... Creo que asi esta bastante seguro.... ahora si te parece mejor pues le doy solamente 2 nop asi como me dejaste el pequeño codigo...
Bueno si cumplen con estos tiempos los dejaremos vivir :D :D Realmente cuando vuelcas tension a la red te exigen que la frec y la V cumplan unas condiciones, el problema es que despues los consumidores, sobre todo industriales, con las cargas inductivas (motores, electrovalvulas, contactores) deterioran esas ondas, y lo que llega a cada hogar es una incognita, aunque no siempre.
El programa asi en principio parece que va bien, los tiempos van bien, ¿Has mirado todas los PWMs? :lol: ya se que es un poco coñazo :lol: El fin de semana lo mirare con mas calma.
¿Que tal andas de matematicas? :lol: Encontre esta pagina donde trae al final un par de ejercicios resueltos para calcular la V instantanea de una senoide, te digo esto porque nosotros la estamos haciendo aumentando y bajando V de una forma bastante lineal (que creo que es una buena onda) pero las senoides como se generan con generadores electromecanicos van dando las tensiones segun la proximidad del rotor a los estatores en cada momento (son trifasicos) si tienes curiosidad por saber como son de verdad pues aqui te dejo esta pagina que lo explica de forma bastante sencilla:
http://e-ducativa.catedu.es/44700165/aula/archivos/repositorio//2750/2961/html/111_valores_de_una_onda_senoidal.html
Saludos.
como te digo esos son los limites en mi pais para que se considere evento de frecuencia... o sea que muy rara ves se llega a esos limites.... pero bueno... eso de las cargas sobre todo en las fabricas es cierto pero tambien hay correctores como bancos de condensadores que se me ocurren en este momento.... en fin, creo que no se tendra mucho problema con el codigo que estamos haciendo...
Antes de optimizar vi una por una aunq no me habia dado cuenta que faltaba el PWM_29, ahora en estas dos ultimas versiones no la vi uno por uno, solamente vi que se cumpla el tiempo asignado a cada PWM, no al positio y al negativo... por cierto para verificar los tiempos lo he hecho de bsf a bsf que se le da al PWM....
Espero el fin de semana darme un tiempito para revisar el link, aunque ahora le heche un vistazo rapido.... por ahora me dedicare el resto de la noche a mi esposa y a mi hija (aun es peque) que tambien tengo que prestarles atencion...
Por cierto hice tambien los cambios que me dijiste de definirle al inicio los puertos con otro nombre para cuando si se presenta cambiar a otro pic pues sea mas sencillo jejejejejejeje
y al utilizar el opto normal habira que poner a cero la bandera de chequeo de cruce por cero en el semiciclo contrario al que decidimos testear... es decir si decidimos testear en el semiciclo -, en el semiciclo + debemos mandar a cero la bandera, y viceversa.... creo que eso lo podemos hacer en cualquier momento en el semiciclo contrario ya que ahi tendriamos 0 en el opto, por lo cual ya no habria riesgo de que quede en un bucle infinito y no haga nada el pic jejejejeje... ya una ves que me decida cual mismo testear coloco tambien a cero la bandera jejejejeje, por ahora creo que asi estara bien...
Ah otra cosa, es que ahora como va a estar tambien testeando el cero y la bandera, pues no se si haya algun cambio en el tiempo de cada ciclo de PWM, habria que revisar eso tambien supongo... Pero creo que eso lo hare durante el transcurso del fin de semana...
Sin mas que decir pues te dejo lo que seria hasta el momento la ultima version jejejejeje
Saludos, Pedro.
-
Ayer te mire los IR2110 en Digi key, bueno tan caros no son, echales un vistazo:
http://www.digikey.es/product-search/en?k=IR2110&mnonly=0&newproducts=0&ColumnSort=0&page=1&quantity=0&ptm=0&fid=0&pageSize=25
Tambien he visto este esquema de un inverter que me llamo bastante la atencion, te lo adjunto abajo, o eso creo, como ves no lleva puente H, solo dos mosfet, con un IR2110, asi tambien ves como va conectado.
-
Gracias... ahora le mejore un poco mas... ahi te dejare el codigo para que lo chequees....
1368 BYTES :shock: como lo has hecho ((:-)) si sigues asi nos llegara un PIC de 1K :lol:
solamente que no se si darle demora para que sea en el cruce por cero que impiece mi onda o siemplemente mandarle a el ciclo que toque...
Una vez sepamos donde se produce lo mejor es enviarlo a ese punto y listo, creo que es mas sencillo chequear el cruce de + a -, pero bueno ya veremos...
Asi tal como esta, esta en 69,4us, es decir la mitad de un PWM ente la desactivacion del uno y la activacion del otro.... Creo que asi esta bastante seguro.... ahora si te parece mejor pues le doy solamente 2 nop asi como me dejaste el pequeño codigo...
Asi esta bien, si quieres ponerle menos aumentaras un poco la V eficaz, pero no mucho.
por ahora me dedicare el resto de la noche a mi esposa y a mi hija (aun es peque) que tambien tengo que prestarles atencion...
Yo ahi lo tengo mas facil, no tengo hijos y a la esposa me la atienden los vecinos :D :D :D
Ah otra cosa, es que ahora como va a estar tambien testeando el cero y la bandera, pues no se si haya algun cambio en el tiempo de cada ciclo de PWM, habria que revisar eso tambien supongo... Pero creo que eso lo hare durante el transcurso del fin de semana...
En un segundo entero da 1.000200 seg es decir 200nS de desviacion en 120 ciclos de 120 PWMs cada ciclo, esta perfecto ¿No?.
Creo que me van a dar un inverter que no funciona, a ver si hacemos un poco de ingenieria inversa. :mrgreen:
-
Ayer te mire los IR2110 en Digi key, bueno tan caros no son, echales un vistazo:
http://www.digikey.es/product-search/en?k=IR2110&mnonly=0&newproducts=0&ColumnSort=0&page=1&quantity=0&ptm=0&fid=0&pageSize=25
Tambien he visto este esquema de un inverter que me llamo bastante la atencion, te lo adjunto abajo, o eso creo, como ves no lleva puente H, solo dos mosfet, con un IR2110, asi tambien ves como va conectado.
Gracias, no habia armado con IR2110 asi que no sabia como conectar... ahora mismo ya consegui el IR2110 en mi ciudad... lastima que ya solamente estare hoy en la ciudad... Ahora mismo hice una pruba a ver si me daba algo el PIC, pero lamentablemente no me da nada, voy a ver si hago prender un led a ver como me va, con todo ya he comprado otro pic por si el problema es el PIC....
1368 BYTES :shock: como lo has hecho ((:-)) si sigues asi nos llegara un PIC de 1K :lol:
He agrupado las demoras, y ahi se me comprimio bastante el programa, por el momento creo que lo dejare ahi, ahora mismo lo que quiero es que me funcione para probar.... luego incluso podre ver si vale la pena hacer mas PWM o no jejejejejeje
Una vez sepamos donde se produce lo mejor es enviarlo a ese punto y listo, creo que es mas sencillo chequear el cruce de + a -, pero bueno ya veremos...
ok, ahora mismo hice la la pruba en un laboratorio y me dio un tiempo de 1,4ms... para ello he tenido q mandar a dos NOT con trigger smith (creo que se escribe asi), ya que solamente el opto me daba una rampa y era imposible saber con exactitud cual seria la demora... asi que con la NOT ya se me hizo sencillo el verificarlo jejejejejejeje lo hice con dos NOT puesto que el mi ciudad solamente hay el 74ls14 que tiene 6 NOT asi que no hay problema en utilizar 2 de ellos... te dejare las imagenes de lo que me salio segun las configuraciones que me dijiste pero sigo pensando que lo mas conveniente es tomar el cambio por cero de + a -... y es mas ahi es cuando me da los 1,4ms...
Asi esta bien, si quieres ponerle menos aumentaras un poco la V eficaz, pero no mucho.
Ok, entonces creo que por el momento asi esta muy bien... y es mas si me animo a hacer mas PWM pues seguro bajara ese tiempo pero ya veremos eso jejejejejejeje
Yo ahi lo tengo mas facil, no tengo hijos y a la esposa me la atienden los vecinos :D :D :D
Pues un hijo es una bendicion jajajajajaja..... y pues que suerte que tienes jajajajaja
En un segundo entero da 1.000200 seg es decir 200nS de desviacion en 120 ciclos de 120 PWMs cada ciclo, esta perfecto ¿No?.
Creo que me van a dar un inverter que no funciona, a ver si hacemos un poco de ingenieria inversa. :mrgreen:
si, eso en funcionamiento normal, pero cuando sense que esta cruzando por cero no se si tambien dara ese tiempo ya que habra mas instrucciones en el bucle de testeo para el desborde del TMR0....
Ahora mismo te dejo las imagenes de lo que me dio el osciloscopio (ocupare el 2)... el programas ahora mismo no le he hecho ningun cambio ya que andaba un poco ocupado y pues ademas quiero que me funcione por lo menos asi como esta....
Y pues si sabes algo mas con respecto a esto pues me lo haces saber... por ahora intentare hacer los cambios en el programa para el cruce por cero....
Saludos, Pedro.
-
Gracias, no habia armado con IR2110 asi que no sabia como conectar... ahora mismo ya consegui el IR2110 en mi ciudad... lastima que ya solamente estare hoy en la ciudad... Ahora mismo hice una pruba a ver si me daba algo el PIC, pero lamentablemente no me da nada, voy a ver si hago prender un led a ver como me va, con todo ya he comprado otro pic por si el problema es el PIC....
¿Has comprado otro igual? Mirate el FUSE LVP, segun como estes programando tiene que estar habilitado o no.
Vaya ya has encontrado el IR2110, era muy raro que no lo hubiera, ya que es comun en montajes con mosfet.
He agrupado las demoras, y ahi se me comprimio bastante el programa, por el momento creo que lo dejare ahi, ahora mismo lo que quiero es que me funcione para probar.... luego incluso podre ver si vale la pena hacer mas PWM o no jejejejejeje
Si, una vez que sepas que funciona puedes probar con mas niveles, cuantos mas niveles mejor es la onda, mas se parece a una senoide pura, aunque yo creo que esta de 30 niveles ya es bastante buena, no se cuantos tendran los comerciales, dentro de los comerciales los hay con onda trapezoidal que son mas baratos, pero parece ser que calientan los trafos de las fuentes de alimentacion de los aparatos que alimentan.
ok, ahora mismo hice la la pruba en un laboratorio y me dio un tiempo de 1,4ms... para ello he tenido q mandar a dos NOT con trigger smith (creo que se escribe asi), ya que solamente el opto me daba una rampa y era imposible saber con exactitud cual seria la demora... asi que con la NOT ya se me hizo sencillo el verificarlo jejejejejejeje lo hice con dos NOT puesto que el mi ciudad solamente hay el 74ls14 que tiene 6 NOT asi que no hay problema en utilizar 2 de ellos... te dejare las imagenes de lo que me salio segun las configuraciones que me dijiste pero sigo pensando que lo mas conveniente es tomar el cambio por cero de + a -... y es mas ahi es cuando me da los 1,4ms...
¿A ver si entiendo bien? ¿Hay 1,4ms entre el flanco ascendente y el cruce real por 0? Vaya pense que seria menor ese tiempo, en realidad da igual sabiendo cual es el tiempo se manda a ese punto del programa y listo.
y pues que suerte que tienes jajajajaja
Si, no hay como tener buenos vecinos :D :D :D En realidad soy soltero :lol: :lol:
si, eso en funcionamiento normal, pero cuando sense que esta cruzando por cero no se si tambien dara ese tiempo ya que habra mas instrucciones en el bucle de testeo para el desborde del TMR0....
Si, cuando cruce por 0 seguramente demorara un poco mas, eso se puede simular en el MPLAB, abres en Debugger el "Stimulus"-"New workbook" donde pone Pin/SFR pones el RB0 (donde recibe el pulso) en "Action" pones "set hight" lo vuelves a poner abajo y le pones "set low" asi puedes ponerlo a 0 y a 1 cuando quieras, como ya sabes el tiempo que demora le das en ese punto un 1 y ese sera el flanco ascendente. Segun donde este, se dejara correr el programa o se enviara a ese punto cuando este desfasado.
Saludos Tapi.
-
¿Has comprado otro igual? Mirate el FUSE LVP, segun como estes programando tiene que estar habilitado o no.
Vaya ya has encontrado el IR2110, era muy raro que no lo hubiera, ya que es comun en montajes con mosfet.
sip... otro 16f871 jejejejeje.... y pues ahora mismo no esta declarado ese fuse... pero creo que tampoco tengo que declararle por ahora jajajaja... ya encontre la falla y fue hardware... ya me daba contra el piso y no encontraba pero hasta que por fin la encontre jajajajaja... ahora intentare terminar en estos dias la programacion, espero poder hacerlo jejejejejeje
pues no se como pero fui a buscar y me dijeron que si jajajaja asi que ya por fin respire tranquilo jajajajaja
Si, una vez que sepas que funciona puedes probar con mas niveles, cuantos mas niveles mejor es la onda, mas se parece a una senoide pura, aunque yo creo que esta de 30 niveles ya es bastante buena, no se cuantos tendran los comerciales, dentro de los comerciales los hay con onda trapezoidal que son mas baratos, pero parece ser que calientan los trafos de las fuentes de alimentacion de los aparatos que alimentan.
ok, pues por ahora mismo quiero que quede listo todo y de ahi si para ver que mismo jejejejeje si hago o no mas pwm, ademas quiero ver si la puedo o no sincronizar con esa cantidad de pwm jejejejeje
¿A ver si entiendo bien? ¿Hay 1,4ms entre el flanco ascendente y el cruce real por 0? Vaya pense que seria menor ese tiempo, en realidad da igual sabiendo cual es el tiempo se manda a ese punto del programa y listo.
Si, entendiste bien... yo tambien pense que hubiese sido menos pero eso me marco el osciloscopio jajajajaja y pues ahora tendre que ajustar una demora para que de justo los 1,4 ms a que entre en el PWM que toque ya que no hay ningun comienzo de PWM justo en ese tiempo...
Si, no hay como tener buenos vecinos :D :D :D En realidad soy soltero :lol: :lol:
jajajajja pues de repente si hay uno que otro buen vecino jajajajaja.... y ya veo jejejejeje
Si, cuando cruce por 0 seguramente demorara un poco mas, eso se puede simular en el MPLAB, abres en Debugger el "Stimulus"-"New workbook" donde pone Pin/SFR pones el RB0 (donde recibe el pulso) en "Action" pones "set hight" lo vuelves a poner abajo y le pones "set low" asi puedes ponerlo a 0 y a 1 cuando quieras, como ya sabes el tiempo que demora le das en ese punto un 1 y ese sera el flanco ascendente. Segun donde este, se dejara correr el programa o se enviara a ese punto cuando este desfasado.
Saludos Tapi.
aja, algo algo lo estaba moviendo pero como ahora para sensar el cruce por cero tuve que hacer algunas modificaciones pues me cambiaron todos los tiempos y ahora nuevamente estoy ajustandolos, asi que demorare un poco jejejejeje luego de ajustar todos los tiempos probare esto... jejejejejeje
Apenas tenga el codigo te lo dejo... asi sea sin probar la ultima parte para que me ayudes en algo siesque puedes jejejejeje....
Saludos, Pedro.
-
sip... otro 16f871 jejejejeje.... y pues ahora mismo no esta declarado ese fuse... pero creo que tampoco tengo que declararle por ahora jajajaja... ya encontre la falla y fue hardware... ya me daba contra el piso y no encontraba pero hasta que por fin la encontre jajajajaja... ahora intentare terminar en estos dias la programacion, espero poder hacerlo jejejejejeje
Ya lo has solucionado, bien, algun despiste ¿No?
pues no se como pero fui a buscar y me dijeron que si jajajaja asi que ya por fin respire tranquilo jajajajaja
Era muy raro que no lo tuvieran porque casi todos los montajes con mosfet e IGBTs llevan estos drivers, muchas veces en las tiendas de electronica tienen gente atendiendo que no tienen ni idea, por lo menos aqui en España pasa.
¿Ya sabes como va conectado? si lo haces con puente H tendras que poner 2 en los dos mosfet de cada lado, OH (output high) va al que esta conectado al + y OL (output low) al que va a masa, los OL iran a los que hacen PWM y los OH a los que estan fijos (conduciendo todo el semiciclo), las entradas seran IH a PORTC,0 y PORTC,1 y los IL a PORTC,2 y PORTC,3
Si, entendiste bien... yo tambien pense que hubiese sido menos pero eso me marco el osciloscopio jajajajaja y pues ahora tendre que ajustar una demora para que de justo los 1,4 ms a que entre en el PWM que toque ya que no hay ningun comienzo de PWM justo en ese tiempo...
Haciendo unos calculos me sale el flanco ascendente de + a - en este punto casi exacto:
POSITIVO_50 ;este sera el quincuagesimo PWM con dutty
bcf INTCON,T0IF
movlw .86 ;valor del offset del TMR0 para 136,0uS
movwf TMR0 ;aqui empieza a contar
goto $+1
goto $+1
bsf PWM_1 ;lo activamos
call DEMORA_7 ;llamamos demora
call DEMORA_3 ;llamamos demora
CRUCE_0 bcf PWM_1 ;acabo tiempo dutty, apagamos
call CHEQUEO
btfsc SINCRONIZAR? ;testeamos bandera para sincronizar
goto CRUCE_0_1 ;y mandamos programa a punto de sincronismo
En esa linea que esta en negrita van 6,923mS y se produce exactamente a los 6,93mS (8,33-1,40=6,93) para hacerlo justo a los 6,93mS como entra en la rutina de chequeo que es comun para todos los PWMs...que mala suerte :lol: :lol: bueno solo serian 7uS??? Posiblemente nos valga con esta pequeña variacion.
-
Ya lo has solucionado, bien, algun despiste ¿No?
Sip... confie mucho en que la fuente de alimentacion me daba los 5V, ni siquiera verifique si me daba eso.. hice el programa de encender un led y tampoco funciono asi que por eso compre nuevo pic jajajajaja... cuando lo programe en el nuevo pic y tampoco funciono pues me dije "no aqui pasa algo mas", asi que me puse a verificar de todo... y encontre que la fuente me estaba dando algo asi como 3,4V y no era suficiente.... asi que arregle eso, ahora tengo una fuente que me da como 4,7 u 4,8V con la cual me funciona de maravilla jejejejeje
Era muy raro que no lo tuvieran porque casi todos los montajes con mosfet e IGBTs llevan estos drivers, muchas veces en las tiendas de electronica tienen gente atendiendo que no tienen ni idea, por lo menos aqui en España pasa.
¿Ya sabes como va conectado? si lo haces con puente H tendras que poner 2 en los dos mosfet de cada lado, OH (output high) va al que esta conectado al + y OL (output low) al que va a masa, los OL iran a los que hacen PWM y los OH a los que estan fijos (conduciendo todo el semiciclo), las entradas seran IH a PORTC,0 y PORTC,1 y los IL a PORTC,2 y PORTC,3
Si, a mi tambien me paso raro, pero en el un local no mismo tenian... fui a preguntar a otro local donde tambien me habian dicho que no habia (pero aqui me atendio un chico que nunca lo habia visto) asi que pedi que me atienda otro que si lo habia visto antes y me dijo que si... que si lo tenian y ya pues lo compre jajajaja creo que en todo lado pasa este tipo de cosas jajajajaja
Ya entiendo como es la conexion... ahora vi que en el diagrama que me mandaste hay unos condensadores... todo eso es necesario?? aun no he leido detenidamente el datasheet ya que he estado algo ocupado pero ya lo hare...
Haciendo unos calculos me sale el flanco ascendente de + a - en este punto casi exacto:
POSITIVO_50 ;este sera el quincuagesimo PWM con dutty
bcf INTCON,T0IF
movlw .86 ;valor del offset del TMR0 para 136,0uS
movwf TMR0 ;aqui empieza a contar
goto $+1
goto $+1
bsf PWM_1 ;lo activamos
call DEMORA_7 ;llamamos demora
call DEMORA_3 ;llamamos demora
CRUCE_0 bcf PWM_1 ;acabo tiempo dutty, apagamos
call CHEQUEO
btfsc SINCRONIZAR? ;testeamos bandera para sincronizar
goto CRUCE_0_1 ;y mandamos programa a punto de sincronismo
En esa linea que esta en negrita van 6,923mS y se produce exactamente a los 6,93mS (8,33-1,40=6,93) para hacerlo justo a los 6,93mS como entra en la rutina de chequeo que es comun para todos los PWMs...que mala suerte :lol: :lol: bueno solo serian 7uS??? Posiblemente nos valga con esta pequeña variacion.
Recuerda que seria en realidad 8,333us, por lo tanto seria 10us, y no solo eso recuerda tambien que en cualquier punto de la onda se puede sensar el cruce por cero asi que esto no es tan cierto ya que nos tocara primero mandar a 0 todas las salidas, luego si poner en 1 la salida que deberia (el que iria a IH en la onda positiva) y de ahi si mandar a algun lado... o sea aun seria mas tiempo... asi que por ahora en el archivo que te mando estoy adjuntando una demora para caer en el
POSITIVO_51
Aun no ajusto dicha demora pero ya es cuestion de tiempo nada mas... en estos dias espero hacerlo...
En si el programa creo que ya esta terminado, ahora mismo creo que solamente queda ir ajustando todos los tiempos... Por ejemplo el de sincronizacion, el de la onda cuando esta sincronizada....
Ah y tambien recuerda que para ajustar un poco los tiempo se ha dado un poco mas de tiempo en los PWM de 100%, asi que pues ahi tambien descuadra un poco los calculos 100% matematicos... En realidad el tiempo desde el bsf del cruce por cero hasta donde tu me estas diciendo medido en mplab es de 6,9216ms, si esto compara con el tiempo al que deberias mandar seria 6,933-6,9216 = 11,7us, asi que por eso quiero hacerlo un poco mas exacto y mandarlo a POSITIVO_51 luego de la demora...
Ah para exagerar un poquito los 41,56275976718188usegundos que tenemos de margen antes que sea evento de frecuencia pues he hecho que se verifique un poco antes y un poco despues de que sea el cruce por cero (ya real que seria en el POSITIVO_50, con esto aseguro que siempre que pase por ahi se sincronice nuevamente y me empiece nuevamente la onda desde ese lugar.... en el resto de PWM pierdo una onda senoidal y la sincronizo a la siguiente...
Ahora mismo he estado trabajando en el codigo, ya ajuste el tiempo de la onda cuando no esta sincronizada... ahora me tocaria ajustar cuando si lo esta y tambien el tiempo para que caiga en el POSITIVO_51.... por ahora te dejo el codigo como esta...
Saludos, Pedro
-
Sip... confie mucho en que la fuente de alimentacion me daba los 5V, ni siquiera verifique si me daba eso.. hice el programa de encender un led y tampoco funciono asi que por eso compre nuevo pic jajajajaja... cuando lo programe en el nuevo pic y tampoco funciono pues me dije "no aqui pasa algo mas", asi que me puse a verificar de todo... y encontre que la fuente me estaba dando algo asi como 3,4V y no era suficiente.... asi que arregle eso, ahora tengo una fuente que me da como 4,7 u 4,8V con la cual me funciona de maravilla jejejejeje
¿Estas usando una fuente externa? con la tension de 12V de la bateria puedes conseguir facilmente 5V estabilizados, con un 7809 y un 7805 a ccontinuacion, hay otros mejores que ya te darian los 5V a partir de los 12V de la bateria.
Si, a mi tambien me paso raro, pero en el un local no mismo tenian... fui a preguntar a otro local donde tambien me habian dicho que no habia (pero aqui me atendio un chico que nunca lo habia visto) asi que pedi que me atienda otro que si lo habia visto antes y me dijo que si... que si lo tenian y ya pues lo compre jajajaja creo que en todo lado pasa este tipo de cosas jajajajaja
Pasa en todos los sitios, en las de informatica ya es la hostia.
Ya entiendo como es la conexion... ahora vi que en el diagrama que me mandaste hay unos condensadores... todo eso es necesario?? aun no he leido detenidamente el datasheet ya que he estado algo ocupado pero ya lo hare...
Si, el condensador es indispensable para que en los mosfet superiores que van al +12V el IR2110 consiga esos 12V + otros 10V (segun mosfet) para cebar el gate del mosfet y ponerlo en saturacion y no solo en conduccion, sino esta en saturacion (conduciendo a tope) tiene mas RDSon (resistencia interna en conduccion) por tanto cae mas V como la I pasa igual tiene que tragar mas W que se convierte en calor y acaba quemandose.
Recuerda que seria en realidad 8,333us, por lo tanto seria 10us, y no solo eso recuerda tambien que en cualquier punto de la onda se puede sensar el cruce por cero asi que esto no es tan cierto ya que nos tocara primero mandar a 0 todas las salidas, luego si poner en 1 la salida que deberia (el que iria a IH en la onda positiva) y de ahi si mandar a algun lado... o sea aun seria mas tiempo... asi que por ahora en el archivo que te mando estoy adjuntando una demora para caer en el
Bien se puede hacer de diferentes maneras, empezar en el punto exacto, esperar al proximo PWM, esperar al cruce por 0 real, etc, siempre que se cuente el tiempo exacto hasta el punto donde se vaya a enviar al programa, incluso si esta dentro de un rango entre -20uS y +20uS (por ejemplo) darlo por bueno y continuar donde esta. Te decia en el post anterior que el cruce se producia en CHEQUEO y que era comun para todos, pero eso es porque queremos porque bastaria hacer una rutina CHEQUEO_1 y esta la llamariamos solo desde el POSITIVO_50 que es donde se producira el cruce por 0 el 99% de las veces, si se produce ahi dejariamos al programa seguir ejecutandose, puesto que esta bien. Ya se lo que estas pensando "yo matandome a reducir codigo y este cabron a aumentarmelo" :D :D :D.
En realidad el tiempo desde el bsf del cruce por cero hasta donde tu me estas diciendo medido en mplab es de 6,9216ms, si esto compara con el tiempo al que deberias mandar seria 6,933-6,9216 = 11,7us, asi que por eso quiero hacerlo un poco mas exacto y mandarlo a POSITIVO_51 luego de la demora...
A mi desde:
POSITIVO_0 ;Medio ciclo del cruce por cero
bcf INTCON,T0IF
Hasta:
POSITIVO_50 ;este sera el quincuagesimo PWM con dutty
bcf INTCON,T0IF
movlw .86 ;valor del offset del TMR0 para 136,0uS
movwf TMR0 ;aqui empieza a contar
goto $+1
goto $+1
bsf PWM_1 ;lo activamos
call DEMORA_7 ;llamamos demora
call DEMORA_3 ;llamamos demora
bcf PWM_1 ;acabo tiempo dutty, apagamos
call CHEQUEO
btfsc SINCRONIZAR? ;testeamos bandera para sincronizar
goto CRUCE_0_1 ;y mandamos programa a punto de sincronismo
Me salen 6.923000 (copiado del stop watch del MPLAB) tampoco tiene mucha importancia que nos de un valor u otro. Es posible que a la penultima version le hiciera yo algunas modificaciones y por eso salen esos pocos uS de diferencia.
Saludos Tapi.
-
¿Estas usando una fuente externa? con la tension de 12V de la bateria puedes conseguir facilmente 5V estabilizados, con un 7809 y un 7805 a ccontinuacion, hay otros mejores que ya te darian los 5V a partir de los 12V de la bateria.
Sip... estoy usando una fuente externa puesto que no dispongo la bateria todo el tiempo... me la estan prestando por ahora hasta que me funcione todo perfectamente.... ya una ves que tenga la fuente justamente pensaba hacer lo que tu me indicas con un 7809 y un 7808, o caso contrario incluso solamente con un 7805 talves si me soportaria pero tendria que ver la potencia que se disipa en calor...
Si, el condensador es indispensable para que en los mosfet superiores que van al +12V el IR2110 consiga esos 12V + otros 10V (segun mosfet) para cebar el gate del mosfet y ponerlo en saturacion y no solo en conduccion, sino esta en saturacion (conduciendo a tope) tiene mas RDSon (resistencia interna en conduccion) por tanto cae mas V como la I pasa igual tiene que tragar mas W que se convierte en calor y acaba quemandose.
Entiendo.... entonces asi lo hare jajajajajaja
Bien se puede hacer de diferentes maneras, empezar en el punto exacto, esperar al proximo PWM, esperar al cruce por 0 real, etc, siempre que se cuente el tiempo exacto hasta el punto donde se vaya a enviar al programa, incluso si esta dentro de un rango entre -20uS y +20uS (por ejemplo) darlo por bueno y continuar donde esta. Te decia en el post anterior que el cruce se producia en CHEQUEO y que era comun para todos, pero eso es porque queremos porque bastaria hacer una rutina CHEQUEO_1 y esta la llamariamos solo desde el POSITIVO_50 que es donde se producira el cruce por 0 el 99% de las veces, si se produce ahi dejariamos al programa seguir ejecutandose, puesto que esta bien. Ya se lo que estas pensando "yo matandome a reducir codigo y este cabron a aumentarmelo" :D :D :D.
Nada de eso... hay que hacerlo bien y si hay mas ideas pues mejor... en realidad si te das cuenta yo me mando desde "POSITIVO_49" hasta "POSITIVO_51" siempre a Positivo 51 luego de la demora (aun tengo que ajustar esa demora).... en el resto de PWM siempre hago que se pierda una senoidal y que me sincronice nuevamente en el siguiente cruce por cero...
Bueno y si se quiere ser mas exacto realmente seria en los 41,56us tanto para arriba como para abajo que se podria dejar que continue.... fuera de ese rango se deberia nuevamente volverla a poner en su lugar a la onda, en realidad yo siempre le estoy haciendo que vaya al punto de sincronismo y siempre estoy volviendo a la onda a su punto, pero no se que opines tu con respecto a eso... Crees que sea mejor el dejarle que haya un margen de error?? como los 20us que tu propones??
A mi desde:
POSITIVO_0 ;Medio ciclo del cruce por cero
bcf INTCON,T0IF
Hasta:
POSITIVO_50 ;este sera el quincuagesimo PWM con dutty
bcf INTCON,T0IF
movlw .86 ;valor del offset del TMR0 para 136,0uS
movwf TMR0 ;aqui empieza a contar
goto $+1
goto $+1
bsf PWM_1 ;lo activamos
call DEMORA_7 ;llamamos demora
call DEMORA_3 ;llamamos demora
bcf PWM_1 ;acabo tiempo dutty, apagamos
call CHEQUEO
btfsc SINCRONIZAR? ;testeamos bandera para sincronizar
goto CRUCE_0_1 ;y mandamos programa a punto de sincronismo
Me salen 6.923000 (copiado del stop watch del MPLAB) tampoco tiene mucha importancia que nos de un valor u otro. Es posible que a la penultima version le hiciera yo algunas modificaciones y por eso salen esos pocos uS de diferencia.
Saludos Tapi.
Esque estamos midiendo diferente... el hasta donde es el mismo punto el que lo medimos, pero el desde donde no... tu lo mides aqui
POSITIVO_0 ;Medio ciclo del cruce por cero
bcf INTCON,T0IF
Yo lo mido aqui... ya que ahi seria el cruce por cero ya que se activa el otro transistor...
POSITIVO_0 ;Medio ciclo del cruce por cero
bcf INTCON,T0IF
movlw .173 ;valor del offset del TMR0; Temporización = Ciclo de instrucción*(256-TMR0)*Divisor de Frecuencia
movwf TMR0 ;aqui empieza a contar
goto $+1
bsf PWM_1_AUX
Las mediciones siempre las hago desde el "bsf" correspondiente ya que esa es el comienzo del nuevo ciclo, asi lo considero yo...
Ahora mismo ya tengo hecho el tiempo de la demora, pero aun me falta corregir el tiempo de la onda cuando esta sincronizada, ya que ahi la onda completa se me genera en 16,5450 ms, asi que cuando genere esto a 16,6666ms nuevamente voy a tener que generar la demora para que me de justamente 1,4ms desde el cruce por cero (en la vida real) hasta que yo en mi programa tenga el cruce por cero jejejeje, con todo ahi te dejo el programa...
Saludos, Pedro
-
[quoteSip... estoy usando una fuente externa puesto que no dispongo la bateria todo el tiempo... me la estan prestando por ahora hasta que me funcione todo perfectamente.... ya una ves que tenga la fuente justamente pensaba hacer lo que tu me indicas con un 7809 y un 7808, o caso contrario incluso solamente con un 7805 talves si me soportaria pero tendria que ver la potencia que se disipa en calor...
][/quote]
El 7805 para pasar de 12 a 5V se te calentara, los hay mejores, a ver si te miro alguno.
Nada de eso... hay que hacerlo bien y si hay mas ideas pues mejor... en realidad si te das cuenta yo me mando desde "POSITIVO_49" hasta "POSITIVO_51" siempre a Positivo 51 luego de la demora (aun tengo que ajustar esa demora).... en el resto de PWM siempre hago que se pierda una senoidal y que me sincronice nuevamente en el siguiente cruce por cero...
Bueno y si se quiere ser mas exacto realmente seria en los 41,56us tanto para arriba como para abajo que se podria dejar que continue.... fuera de ese rango se deberia nuevamente volverla a poner en su lugar a la onda, en realidad yo siempre le estoy haciendo que vaya al punto de sincronismo y siempre estoy volviendo a la onda a su punto, pero no se que opines tu con respecto a eso... Crees que sea mejor el dejarle que haya un margen de error?? como los 20us que tu propones??
Si los valores oscilan en los valores que tu dijiste, el 99,99% de los ciclos estaran en POSITIVO_50 y no hara falta tocarle, simplemente que continue. Si por ejemplo en mil ciclos hay cien que se van un poco del paso por 0 exacto pero dentro de los margenes que les des, si de esos cien 50 se van por exceso y 50 por defecto, sin tocarle tendras la frecuencias exactas igual, si ya son 60 y 40 se aculuran esas desviaciones y al cabo de los mil ciclos habra que sincronizar, bueno esto es lo que yo creo, tampoco lo se seguro. creo que un margen de unos uS arriba y abajo seria logico dearselo, pero como tu veas.
Las mediciones siempre las hago desde el "bsf" correspondiente ya que esa es el comienzo del nuevo ciclo, asi lo considero yo...
Bueno el PWM es desde que empieza hasta que acaba, es decir todo, en el "bsf" empieza el DUTTY pero el resto tambien cuenta. Yo habitualmente cuando hago PWMs lo primero que hago es poner en alto los DUTTYs (cuando son muchos y simultaneos) y despues los "voy bajando", aqui como solo es uno de cada vez pues no importa mucho.
Ahora mismo ya tengo hecho el tiempo de la demora, pero aun me falta corregir el tiempo de la onda cuando esta sincronizada, ya que ahi la onda completa se me genera en 16,5450 ms, asi que cuando genere esto a 16,6666ms nuevamente voy a tener que generar la demora para que me de justamente 1,4ms desde el cruce por cero (en la vida real) hasta que yo en mi programa tenga el cruce por cero jejejeje, con todo ahi te dejo el programa...
¿Ese tiempo es simulando el cruce por 0? ¿Es decir en la simulacion pones a 1 el PORTB,0 y despues lo pones a 0? ¿O solo lo dejas correr? Como es un poco menor se lo aumentas al ciclo 30 (cresta de la onda) y ya no hay problema, mejor repartelo entre las dos crestas para que quede equilibrada, igual el + que el -.
Saludos Tapi.
-
El 7805 para pasar de 12 a 5V se te calentara, los hay mejores, a ver si te miro alguno.
ok, ahi me indicas a ver como le hacemos y ademas ojala y los haya en mi ciudad o en mi pais... sino me tocara con un 7809 y un 7805.
Si los valores oscilan en los valores que tu dijiste, el 99,99% de los ciclos estaran en POSITIVO_50 y no hara falta tocarle, simplemente que continue. Si por ejemplo en mil ciclos hay cien que se van un poco del paso por 0 exacto pero dentro de los margenes que les des, si de esos cien 50 se van por exceso y 50 por defecto, sin tocarle tendras la frecuencias exactas igual, si ya son 60 y 40 se aculuran esas desviaciones y al cabo de los mil ciclos habra que sincronizar, bueno esto es lo que yo creo, tampoco lo se seguro. creo que un margen de unos uS arriba y abajo seria logico dearselo, pero como tu veas.
ok, ahora me pondre a hacer ese tema para ver como queda el programa... intentare darle 42us tanto para arriba como para abajo para que simplemente siga....
Bueno el PWM es desde que empieza hasta que acaba, es decir todo, en el "bsf" empieza el DUTTY pero el resto tambien cuenta. Yo habitualmente cuando hago PWMs lo primero que hago es poner en alto los DUTTYs (cuando son muchos y simultaneos) y despues los "voy bajando", aqui como solo es uno de cada vez pues no importa mucho.
Si, yo se eso pero tomando en consideracion que siempre va a estar funcionando solamente tendriamos q discriminar los 3us que en un comienzo pasa para funcionar de manera aislada, luego pues siempre mido de bsf a bsf, y claro que el resto tambien cuenta pero en todo el resto la salida al transistor va a estar en 0, asi que al considerar "siempre" de bsf a bsf pues estamos considerando todo el PWM...
¿Ese tiempo es simulando el cruce por 0? ¿Es decir en la simulacion pones a 1 el PORTB,0 y despues lo pones a 0? ¿O solo lo dejas correr? Como es un poco menor se lo aumentas al ciclo 30 (cresta de la onda) y ya no hay problema, mejor repartelo entre las dos crestas para que quede equilibrada, igual el + que el -.
Saludos Tapi.
Sip, ese tiempo es simulado el cruce por 0, es decir pongo a 1 el PORTB,0 y luego lo pongo a 0 cuando ya no deberia haber el pulso...
El cambio a 0 lo hago aqui
POSITIVO_11 ;este sera el decimo primer PWM con dutty
movlw .87 ;valor del offset del TMR0
bcf INTCON,T0IF
movwf TMR0 ;aqui empieza a contar
bsf PWM_1 ;lo activamos
call DEMORA_7 ;llamamos demora
call DEMORA_4 ;llamamos demora
bcf FLAG ;limpiamos la bandera cuando no deberia haber cruce por cero
que ahi estan 1,5092 ms, en el anterior chequeo a este esta en 1,3658ms y cuando termina el chequeo esta en 1,4554ms, asi que mantengo en 1 el flag hasta donde te digo y asi aseguro que el tiempo va a ser correcto
Y tambien pense en esa solucion pero recuerda que estamos con nuestra onda sincronizada y supongo que es cuando mas la onda tiene q estar bien definida... me tome la molestia de ver ciclo por ciclo, y estaba hecho un desastre.. habian ciclos de 137us, otros de 141 (redondeados) eso hasta donde vi.... asi que me puse a ajustarlos uno por uno y vaya que me quedo bien... el problema es que me ocupo muchisimo espacio en el PIC pero bueno creo que vale la pena jejejejejeje, ademas ajuste para que el tiempo de demora para la sincronizacion sea 1,4ms exactos, pero creo que ahora tendre que hacer nuevos calculos... bueno ya vere en el transcurso de la programacion jejejejejejeje
Por ahora te dejare el programa con los cambios que he hecho.... ya creo que asi como esta, esta bastante bien ya que siempre esta sincronizando pero pues al darle ese tiempo que me comentas pues creo que quedara aun mejor... ademas no se si se pueda pero intentare mejorar el espacio en el PIC tambien jejejejeje... Ahora mismo ya se me esta ocurriendo una forma pero primero a lo primero, a dar ese tiempo para que el pic siga sin hacer nada si esta en ese rango de us jejejejejeje...
Saludos, Pedro
-
Ahora te dejo el programa ya realizado los cambios... estoy dejando 42,6us tanto para arriba del cruce por cero como para abajo para que simplemente la onda siga su trayecto jejejejejeje, si te parece mucho pues avisame para intentar bajar el tiempo, ademas te dejo un esquema en proteus a ver si en algo me estoy equivocando en las conexiones, por favor hechale un vistazo y dime que es lo que esta mal...
Mas adelante intentare reducir un poco el programa...
Saludos, Pedro.
-
ok, ahi me indicas a ver como le hacemos y ademas ojala y los haya en mi ciudad o en mi pais... sino me tocara con un 7809 y un 7805.
Enlace del regulador LM2575, es commutado en vez de ser lineal por eso aguanta mas diferencia de V entre entrada y salida y se calienta menos.
http://www.ti.com/lit/ds/symlink/lm1575.pdf
Otro seria el LM317, no es tan bueno pero podria valer.
http://www.ti.com/lit/ds/symlink/lm117.pdf
Aqui el hilo de donde saque estos reguladores, dan algunos consejos que a lo mejor te interesan.
http://www.todopic.com.ar/foros/index.php?topic=40016.0
Si no encuentras ninguno que sea commutado, habra que conformarse con los 7809 y 7805, la I que vas a necesitar es muy pequeña, asi que no debe haber problema.
Sip, ese tiempo es simulado el cruce por 0, es decir pongo a 1 el PORTB,0 y luego lo pongo a 0 cuando ya no deberia haber el pulso...
El cambio a 0 lo hago aqui
POSITIVO_11 ;este sera el decimo primer PWM con dutty
movlw .87 ;valor del offset del TMR0
bcf INTCON,T0IF
movwf TMR0 ;aqui empieza a contar
bsf PWM_1 ;lo activamos
call DEMORA_7 ;llamamos demora
call DEMORA_4 ;llamamos demora
bcf FLAG ;limpiamos la bandera cuando no deberia haber cruce por cero
que ahi estan 1,5092 ms, en el anterior chequeo a este esta en 1,3658ms y cuando termina el chequeo esta en 1,4554ms, asi que mantengo en 1 el flag hasta donde te digo y asi aseguro que el tiempo va a ser correcto
¿Esto no seria entre POSITIVO_50 (flanco ascendente) y NEGATIVO_11 (flanco descendente)? ¿O estoy perdido yo ahora? en el otro cruce tambien se producen ambos flancos pero los que vamos a tener en cuenta para sincronizar es este ¿No?
Ahora te dejo el programa ya realizado los cambios... estoy dejando 42,6us tanto para arriba del cruce por cero como para abajo para que simplemente la onda siga su trayecto jejejejejeje, si te parece mucho pues avisame para intentar bajar el tiempo, ademas te dejo un esquema en proteus a ver si en algo me estoy equivocando en las conexiones, por favor hechale un vistazo y dime que es lo que esta mal...
Pues yo el esquema lo veo bien, faltaria la parte de la alimentacion del PIC. Pero como ya te dije al principio yo tambien es la primera vez que hago esto para alimentar una vivienda y sincronizando con la red, asi que no te fies mucho de mi :lol: :lol: yo siempre los hice para alimentar motores y principalmente trifasicos.
Creo que tambien tendras saber cual la direccion de la corriente que estas generando para que coincida con la de la red, es decir nosotros le llamamos + a un semciclo y - al otro tanto de la red como el que se genera, pero creo que la unica manera de saber que ambos son + o - es que la corriente sea de la misma direccion??? ¿Que te parece a ti?
Saludos Tapi.
-
Enlace del regulador LM2575, es commutado en vez de ser lineal por eso aguanta mas diferencia de V entre entrada y salida y se calienta menos.
http://www.ti.com/lit/ds/symlink/lm1575.pdf
Otro seria el LM317, no es tan bueno pero podria valer.
http://www.ti.com/lit/ds/symlink/lm117.pdf
Aqui el hilo de donde saque estos reguladores, dan algunos consejos que a lo mejor te interesan.
http://www.todopic.com.ar/foros/index.php?topic=40016.0
Si no encuentras ninguno que sea commutado, habra que conformarse con los 7809 y 7805, la I que vas a necesitar es muy pequeña, asi que no debe haber problema.
Los vere cuando este en mi casa.. por lo pronto te comento que si he trabajado con el LM317 pero es malo e incluso a veces tiende a bajar el voltaje cuando se le pone carga por mas pequeña que sea
Vere si el otro hay en mi ciudad....
¿Esto no seria entre POSITIVO_50 (flanco ascendente) y NEGATIVO_11 (flanco descendente)? ¿O estoy perdido yo ahora? en el otro cruce tambien se producen ambos flancos pero los que vamos a tener en cuenta para sincronizar es este ¿No?
Nop... recuerda que estoy utilizando el 4n35 que no sensa en ambos sentidos, solamente en el flanco positivo de la onda, es decir que me dara un 1 logico entre el entre POSITIVO_50 (flanco ascendente) y POSITIVO_11 (flanco descendente), a aqui es el donde recien me dara un 0 logico el optoacoplador... puedes fijarte en las imagenes que te deje anteriormente de las fotos tomadas del osciloscopio
Pues yo el esquema lo veo bien, faltaria la parte de la alimentacion del PIC. Pero como ya te dije al principio yo tambien es la primera vez que hago esto para alimentar una vivienda y sincronizando con la red, asi que no te fies mucho de mi :lol: :lol: yo siempre los hice para alimentar motores y principalmente trifasicos.
Creo que tambien tendras saber cual la direccion de la corriente que estas generando para que coincida con la de la red, es decir nosotros le llamamos + a un semciclo y - al otro tanto de la red como el que se genera, pero creo que la unica manera de saber que ambos son + o - es que la corriente sea de la misma direccion??? ¿Que te parece a ti?
Saludos Tapi.
Ahi lo que tenia duda mas que nada era la conexion del transformador... no se si haga falta el tener un transformador primario de 3 terminales para ponerle los +12V en la toma central y que eso lo tome como referencia... Y pues por lo menos has hecho para motores, la verdad es la primera ves que yo lo estoy haciendo jejejejejejeje
No, creo que eso no es correcto... recuerda que al utilizar el 4n35 yo no tengo circulacion de corriente en ambos sentidos, solamente lo tengo en un sentido, bueno eso creo, no lo he probado pero creo que por logica y por la forma en la que tiene la polarizacion del diodo interno pues creo que seria de esta manera... al utilizar el 4n35 para mi forma de ver siempre estamos viendo que el que le decimos + sea siempre +... te parece o no correcto el razonamiento?
Saludos, Pedro.
-
Anduve un poco liado esta semana Pedro.
El regulador va a alimentar el PIC y poco mas asi que no te debe dar problemas, era mas que nada para no tener que poner dos 78XX y que con uno solo bastara.
Citar
¿Esto no seria entre POSITIVO_50 (flanco ascendente) y NEGATIVO_11 (flanco descendente)? ¿O estoy perdido yo ahora? en el otro cruce tambien se producen ambos flancos pero los que vamos a tener en cuenta para sincronizar es este ¿No?
Nop... recuerda que estoy utilizando el 4n35 que no sensa en ambos sentidos, solamente en el flanco positivo de la onda, es decir que me dara un 1 logico entre el entre POSITIVO_50 (flanco ascendente) y POSITIVO_11 (flanco descendente), a aqui es el donde recien me dara un 0 logico el optoacoplador... puedes fijarte en las imagenes que te deje anteriormente de las fotos tomadas del osciloscopio
¿No estamos diciendo lo mismo? o ¿Estoy tonto y no me entero? :D :D
Ahi lo que tenia duda mas que nada era la conexion del transformador... no se si haga falta el tener un transformador primario de 3 terminales para ponerle los +12V en la toma central y que eso lo tome como referencia... Y pues por lo menos has hecho para motores, la verdad es la primera ves que yo lo estoy haciendo jejejejejejeje
Si yo tambien tengo dudas con la conexion del trafo. En el secundario del trafo uno de los extremos tiene que ser la fase y el otro el neutro, por la fase tienen que circular ambos semiciclos + y - y el neutro tiene que tener 0V, solamente es el retorno, no se si tiene que tener un punto comun...
No, creo que eso no es correcto... recuerda que al utilizar el 4n35 yo no tengo circulacion de corriente en ambos sentidos, solamente lo tengo en un sentido, bueno eso creo, no lo he probado pero creo que por logica y por la forma en la que tiene la polarizacion del diodo interno pues creo que seria de esta manera... al utilizar el 4n35 para mi forma de ver siempre estamos viendo que el que le decimos + sea siempre +... te parece o no correcto el razonamiento?
Exacto solo tienes circulacion en un sentido, pero ¿ese sentido + es el mismo sentido que el + del inversor? Bueno haciendo unas medidas con un osciloscopio lo sabras y sera cuestion de acoplarlas.
-
Anduve un poco liado esta semana Pedro.
El regulador va a alimentar el PIC y poco mas asi que no te debe dar problemas, era mas que nada para no tener que poner dos 78XX y que con uno solo bastara.
te comento que hice esto pero no me dan 5V, si consegui el lm7525, pero no me da voltaje a la salida... ahora mismo no se que estara pasando ya que nunca he trabajado con este circuito, tambien te comento que yo utilizo el proteus para generar la placa pcb, y ahi no hay el lm7525, asi que creo que me tocara poner los dos 78xx por ambas razones....
Citar
¿Esto no seria entre POSITIVO_50 (flanco ascendente) y NEGATIVO_11 (flanco descendente)? ¿O estoy perdido yo ahora? en el otro cruce tambien se producen ambos flancos pero los que vamos a tener en cuenta para sincronizar es este ¿No?
Nop... recuerda que estoy utilizando el 4n35 que no sensa en ambos sentidos, solamente en el flanco positivo de la onda, es decir que me dara un 1 logico entre el entre POSITIVO_50 (flanco ascendente) y POSITIVO_11 (flanco descendente), a aqui es el donde recien me dara un 0 logico el optoacoplador... puedes fijarte en las imagenes que te deje anteriormente de las fotos tomadas del osciloscopio
¿No estamos diciendo lo mismo? o ¿Estoy tonto y no me entero? :D :D
No no decimos lo mismo... si te fijas, bien el inicio si lo decimos como "POSITIVO_50 (flanco ascendente)", pero el final tu dices "NEGATIVO_11 (flanco descendente)" y yo digo "POSITIVO_11 (flanco descendente)", asi que no es lo mismo... es mas ahora estaba haciendo unas pruebas y al parecer no me di cuenta que siempre iniciaba con el pin del cruce por cero en alto, asi que me tocara mandarle solamente una not en lugar de las 2 not para tener siempre el pin en cero logico, y cuando haya el cruce por cero pues sera el uno logico, pero al hacer esto el cruce por cero sera en "POSITIVO_11 (flanco ascendente)" y el final sera en "POSITIVO_50 (flanco descendente)", asi que me toca nuevamente meterle mano al programa jejejejejeje....
Si yo tambien tengo dudas con la conexion del trafo. En el secundario del trafo uno de los extremos tiene que ser la fase y el otro el neutro, por la fase tienen que circular ambos semiciclos + y - y el neutro tiene que tener 0V, solamente es el retorno, no se si tiene que tener un punto comun...
Pues creo que me tocara probar... lo malo es que conecte al ir2110 pero no me dio ninguna señal, ingresaba la onda pero a la salida no me da nada asi que no se que pueda estar mal en el circuito que te mande anteriormente...
Exacto solo tienes circulacion en un sentido, pero ¿ese sentido + es el mismo sentido que el + del inversor? Bueno haciendo unas medidas con un osciloscopio lo sabras y sera cuestion de acoplarlas.
Pues si... creo que solamente seria cuestion de verlo en la realidad con un osciloscopio, pero para eso tiene que funcionar todo... asi que veamos si mas adelante me funciona... por ahora te comento que hoy es mi ultimo dia en mi ciudad... ya mañana nuevamente estare lejos y aprovechare para echarle mano al programa, para cuando regrese a mi ciudad pues meterle ganas a el circuito... lo mas rato que me parece es que no me sale nada de ir2110 y eso me preocupa...
Saludos, Pedro.
-
te comento que hice esto pero no me dan 5V, si consegui el lm7525, pero no me da voltaje a la salida... ahora mismo no se que estara pasando ya que nunca he trabajado con este circuito, tambien te comento que yo utilizo el proteus para generar la placa pcb, y ahi no hay el lm7525, asi que creo que me tocara poner los dos 78xx por ambas razones....
Pues creo que me tocara probar... lo malo es que conecte al ir2110 pero no me dio ninguna señal, ingresaba la onda pero a la salida no me da nada asi que no se que pueda estar mal en el circuito que te mande anteriormente...
UUUYYY pues raro, ¿Estas conectando segun el data sheet? ¿No te estaran vendiendo circuitos falsificados? ¿Confias en la gente de la tienda donde compras? He oido por este mismo foro que se dan bastantes casos de circuitos falsificados que fallan bastante.
-
UUUYYY pues raro, ¿Estas conectando segun el data sheet? ¿No te estaran vendiendo circuitos falsificados? ¿Confias en la gente de la tienda donde compras? He oido por este mismo foro que se dan bastantes casos de circuitos falsificados que fallan bastante.
En donde compre el lm7525, es una tienda de hace mucho tiempo y no he tenido ningun problema con nada que haya comprado ahi, pero como te digo creo que mejor sera con los dos 78xx, incluso por la placa pcb...
En cuanto a la compra del ir2110 pues es en una tienda que tiene algo mas de 6 años pero igualmente jamas he tenido problemas cuando he comprado cosas ahi.. incluso esta tienda es la autorizada para vender todo lo que es microchip en mi ciudad jejejejeje... ahora me surge una duda, yo conecte con condensadores ceramicos, sera que alguno de ellos o todos son electroliticos??
Saludos, Pedro.
-
ahora me surge una duda, yo conecte con condensadores ceramicos, sera que alguno de ellos o todos son electroliticos??
No creo que tenga que ser electrolitico, mira esto que eta sacado de una aplication note:
3. HOW TO SELECT THE BOOTSTRAP COMPONENTS
As shown in Figure 2, the bootstrap diode and capacitor are the only external components strictly
required for operation in a standard PWM application. Local decoupling capacitors on the VCC
(and digital) supply are useful in practice to compensate for the inductance of the supply lines.
The voltage seen by the bootstrap capacitor is the VCC supply only. Its capacitance is determined
by the following constraints:
1. Gate voltage required to enhance MGT
2. IQBS - quiescent current for the high-side driver circuitry
3. Currents within the level shifter of the control IC
4. MGT gate-source forward leakage current
5. Bootstrap capacitor leakage current
Factor 5 is only relevant if the bootstrap capacitor is an electrolytic capacitor, and can be ignored
if other types of capacitor are used. Therefore it is always better to use a non-electrolytic
capacitor if possible. For more detailed information on bootstrap component selection see DT98-
2a “Bootstrap Component Selection for Control IC’s.”
Por lo que entiendo de ingles viene a decir que mejor que no sea electrolitico.
Te envio esta nota a tu correo ya que aqui no me deja adjuntarlo porque pesa demasiado, trae una formula para el calculo del condensador, espero te sirva de algo.
-
Gracias amigo por la nota de aplicacion... me sirvio para ver como seria la conexion en puente h mosfet... ahora te comento que ya me da una salida... solamente que no me da aun la sinusoide... en vacio me esta dando una onda cuadrada, con el transformador y una carga pequeña me baja el voltaje de salida y tambien me inserta un poco de ruido, ademas de que tampoco se forma una sinusoide sino mas bien una cuadrada con ruido jejejejeje, ahi si que no se que pueda estar pasando, si tienes alguna idea pues hasmelo saber...
Ahora saquame de una duda... yo para poder sacar los 300W, necesito tener un transformador de 12V y como minimo 30A en el primario y 110V con 3A en el secundario, verdad??
Saludos, Pedro.
-
Gracias amigo por la nota de aplicacion... me sirvio para ver como seria la conexion en puente h mosfet... ahora te comento que ya me da una salida... solamente que no me da aun la sinusoide... en vacio me esta dando una onda cuadrada, con el transformador y una carga pequeña me baja el voltaje de salida y tambien me inserta un poco de ruido, ademas de que tampoco se forma una sinusoide sino mas bien una cuadrada con ruido jejejejeje, ahi si que no se que pueda estar pasando, si tienes alguna idea pues hasmelo saber...
Me alegro que te sirviera la nota de aplicacion, ya te la quise poner hace unos dias pero aqui en el foro no me dejaba.
Pues por lo que comentas creo que esta funcionando bien.
Mira este video que hemos grabado estos dias, estas ondas estan sacadas de un variador industrial (Altivar de Schneider), mira si ese "ruido" que tu dices que saca el tuyo son similares a este "ruido" del video, que realmente es lo que saca un variador y lo que debe sacar el tuyo, por supuesto en tu caso dara siempre 60Hz ya que es un inverter y no un variador. Como veras son ondas que de senoidales tienen poco, pero los motores las "leen" como si fueran senoides puras, incluso trabajan mejor con estas que con las senoidales de verdad que vienen de la red. Un trafo debe leerlas igual ya que son bobinas igual que un motor, la que si se parece a una senoide aunque no perfecta es la onda de la intensidad.
Mira sobre todo entre el minuto 2 y 3:
Ahora saquame de una duda... yo para poder sacar los 300W, necesito tener un transformador de 12V y como minimo 30A en el primario y 110V con 3A en el secundario, verdad??
No exactamente, en el primario del trafo tienes una onda de 8,5V de tension eficaz, que es la que hay que tener en cuenta para los calculos, ya que la V eficaz es igual a la maxima o de pico (12V) dividido por raiz de 2 y esto da los 8,51V, por tanto necesitas 35,29A en el primario, con los 30A consigues 255W, a lo mejo te sirven?????
-
Me alegro que te sirviera la nota de aplicacion, ya te la quise poner hace unos dias pero aqui en el foro no me dejaba.
Pues por lo que comentas creo que esta funcionando bien.
Mira este video que hemos grabado estos dias, estas ondas estan sacadas de un variador industrial (Altivar de Schneider), mira si ese "ruido" que tu dices que saca el tuyo son similares a este "ruido" del video, que realmente es lo que saca un variador y lo que debe sacar el tuyo, por supuesto en tu caso dara siempre 60Hz ya que es un inverter y no un variador. Como veras son ondas que de senoidales tienen poco, pero los motores las "leen" como si fueran senoides puras, incluso trabajan mejor con estas que con las senoidales de verdad que vienen de la red. Un trafo debe leerlas igual ya que son bobinas igual que un motor, la que si se parece a una senoide aunque no perfecta es la onda de la intensidad.
Mira sobre todo entre el minuto 2 y 3:
Es algo parecido a lo que esta pasado el minuto 3:35, pero obviamente con un poco mas de ruido, es decir la onda no es tal como esta en el video.... pero estoy viendolo con el osciloscopio que te comente hace algunos mensajes... no es con uno de buena resolucion... ya mañana me voy al trabajo asi que intentare hacerlo a mi proxima vuelta a ver si consigo hacerlo jejejejeje
No exactamente, en el primario del trafo tienes una onda de 8,5V de tension eficaz, que es la que hay que tener en cuenta para los calculos, ya que la V eficaz es igual a la maxima o de pico (12V) dividido por raiz de 2 y esto da los 8,51V, por tanto necesitas 35,29A en el primario, con los 30A consigues 255W, a lo mejo te sirven?????
Bueno en realidad me da un voltaje eficaz de 6,4V sin carga y si coloco un foco de 110W como carga a la salida del transformador me da un voltaje de 4,6V... le estoy conectando un transformador toroidal de 12 a 110V, asi que a la salida me esta dando un poco mas de 50V.... solamente que este transformador que le estoy conectado es de 4A, a la salida me daba un poco mas de 0,4A, pero como te podras imaginar no enciende bien el foco (incandescente), ahora mismo un profe me dijo que en mi proxima venida le muestre el circuito a ver si me puede ayudar, con todo intentare hacer un video o almenos tomar fotos para mostrartelas, por ahora ya no lo puedo hacer ya que ya no dispongo de las baterias....
Me ofrecieron hacer un transformador pero no toroidal sino que me ofrecieron un transformador laminado y creo que en esa clase de transformador me seria un gran problema el ruido y la eficiencia....
Te comento que estoy trabajando en un codigo de 60 pwm en lugar de 30, pero aun me falta ajustar mucho, ademas de que el chequeo ya no podra ser en todo momento sino solamente cada cierto tiempo... lo que me di cuenta es que tengo 3ms que es seguro que en ese lapso me da un uno logico el sensor de cruce por cero... ya vere como me va con la programacion... caso contrario seguire solamente con el de 30 pwm...
Saludos, Pedro
-
Es algo parecido a lo que esta pasado el minuto 3:35, pero obviamente con un poco mas de ruido, es decir la onda no es tal como esta en el video.... pero estoy viendolo con el osciloscopio que te comente hace algunos mensajes... no es con uno de buena resolucion... ya mañana me voy al trabajo asi que intentare hacerlo a mi proxima vuelta a ver si consigo hacerlo jejejejeje
Si en este osciloscopio todo se ve mejor :lol: tambien con lo que cuesta solo faltaria que no se viera bien :lol: :lol:te lo puse mas que nada para que vieras que no vas a ver una senoide ni de coña, si pones un canal como amperimetro ahi si veras mas o menos una senoide ya que en vez de ver PWMs se ven los escalones (niveles de corriente).
Bueno en realidad me da un voltaje eficaz de 6,4V sin carga y si coloco un foco de 110W como carga a la salida del transformador me da un voltaje de 4,6V... le estoy conectando un transformador toroidal de 12 a 110V, asi que a la salida me esta dando un poco mas de 50V.... solamente que este transformador que le estoy conectado es de 4A, a la salida me daba un poco mas de 0,4A, pero como te podras imaginar no enciende bien el foco (incandescente), ahora mismo un profe me dijo que en mi proxima venida le muestre el circuito a ver si me puede ayudar, con todo intentare hacer un video o almenos tomar fotos para mostrartelas, por ahora ya no lo puedo hacer ya que ya no dispongo de las baterias....
De las tensiones que te da el osciloscopio o un polimetro no te puedes fiar, hay muy pocos equipos que sean capaces de medir tensiones generadas con PWMs, uno de los pocos es este Fluke que ves en el video, se compro exclusivamente para eso, para medir tensiones en los variadores industriales, los Flukes buenos, pero no tan buenos como este, y te hablo de polimetros que cuestan 600€, miden bastante mal estas tensiones se equivocan en bastantes voltios.
¿Ese trafo es de 4A en el primario?
¿La bateria es capaz de dar 30A o mas?
Los trafos en el arranque tienen unos picos de consumo grandes, incluso mas que los motores, solo unos segundos, en este caso que es pequeño seran 2 o 3seg creo que no mas, si fuera necesario podriamos darle menos tension en eses 2 o 3seg primeros hasta que se magnetice, como se hace en un arrancador suave, y despues darle a tope???? Ya te veo optimzando codigo otra vez, porque nos vamos a ir a los 2KB :D :D
Se puede aumentar un poco la tension, no se si mucho, aumentando el numero de PWMs del pico de la onda y rebajandolos de los PWMs mas proximos a 0, donde los DUTTYs de los PWMs son menores ¿No se si me explico? Harias una onda mas trapezoidal, digamoslo asi, pero la tension eficaz aumentaria algo.
Te comento que estoy trabajando en un codigo de 60 pwm en lugar de 30, pero aun me falta ajustar mucho, ademas de que el chequeo ya no podra ser en todo momento sino solamente cada cierto tiempo... lo que me di cuenta es que tengo 3ms que es seguro que en ese lapso me da un uno logico el sensor de cruce por cero... ya vere como me va con la programacion... caso contrario seguire solamente con el de 30 pwm...
Cuantos mas niveles tenga mejor sera la onda, pero tampoco creo que ganes mucho, los inverters mas baratos generan onda trapezoidal y los equipos funcionan con ellos, parece ser que se calientan los trafos de entrada y hay quien les echa la culpa de algunas averias.
-
Si en este osciloscopio todo se ve mejor :lol: tambien con lo que cuesta solo faltaria que no se viera bien :lol: :lol:te lo puse mas que nada para que vieras que no vas a ver una senoide ni de coña, si pones un canal como amperimetro ahi si veras mas o menos una senoide ya que en vez de ver PWMs se ven los escalones (niveles de corriente).
ok... eso lo entiendo....
Ahora con lo que te decia de ruido pues realmente era ruido... eran unos picos que no tenian que ver con los pwm, aunque creo que logre reducirlos bastante colocando resistencias bajas entre el pic y el driver, ademas de resistencias bajas entre el driver y los transistores... ah y tambien coloque un condensador muy grande entre la alimentacion de los transistores (voltaje de la bateria) y tierra jejejejejeje....
De las tensiones que te da el osciloscopio o un polimetro no te puedes fiar, hay muy pocos equipos que sean capaces de medir tensiones generadas con PWMs, uno de los pocos es este Fluke que ves en el video, se compro exclusivamente para eso, para medir tensiones en los variadores industriales, los Flukes buenos, pero no tan buenos como este, y te hablo de polimetros que cuestan 600€, miden bastante mal estas tensiones se equivocan en bastantes voltios.
¿Ese trafo es de 4A en el primario?
¿La bateria es capaz de dar 30A o mas?
Los trafos en el arranque tienen unos picos de consumo grandes, incluso mas que los motores, solo unos segundos, en este caso que es pequeño seran 2 o 3seg creo que no mas, si fuera necesario podriamos darle menos tension en eses 2 o 3seg primeros hasta que se magnetice, como se hace en un arrancador suave, y despues darle a tope???? Ya te veo optimzando codigo otra vez, porque nos vamos a ir a los 2KB :D :D
Se puede aumentar un poco la tension, no se si mucho, aumentando el numero de PWMs del pico de la onda y rebajandolos de los PWMs mas proximos a 0, donde los DUTTYs de los PWMs son menores ¿No se si me explico? Harias una onda mas trapezoidal, digamoslo asi, pero la tension eficaz aumentaria algo.
ok, entiendo... entonces peor aun con mi osciloscopio que no es de buena resolucion jajajajajaja
A ver, el trafo al parecer es un reductor... lo consegui, asi que es lo que pude conseguir, no lo he mandado a hacer ni nada por el estilo, encontre una placa en donde decia que en el lado de 12v consume 4A, al conectar medi con un multimetro de pinzas y consumia 4A en el primario jejejejejeje
La bateria me da como maximo 130Ah, asi que no es problema por ahi jejejeje es una bateria que me esta prestando un profesor como te comentaba....
Y como se lo daria menos tension?? reduciendo el ancho de los pwm?? o como??
Me ofrecieron hacerme un transformador pero laminado y no se si hacerlo o no ya que ahi si que la eficiencia del transformador se veria muy comprometida jejejejeje.... Alguien me recomendo que me busque un transformador de swicheo rapido, que mas bien esos me podrian ayudar mucho mas, pero aun no estoy seguro, tu que crees??
Cuantos mas niveles tenga mejor sera la onda, pero tampoco creo que ganes mucho, los inverters mas baratos generan onda trapezoidal y los equipos funcionan con ellos, parece ser que se calientan los trafos de entrada y hay quien les echa la culpa de algunas averias.
Si pero recuerda que la idea es luego conectar a la red asi que pues mientras mas pwm, supongo que se parecera mucho mas a la senoidal por lo cual podre sincronizar y mantenerme sincronizado sin mucho problema, bueno eso pienso yo jjejejejejeje...
-
Ahora con lo que te decia de ruido pues realmente era ruido... eran unos picos que no tenian que ver con los pwm, aunque creo que logre reducirlos bastante colocando resistencias bajas entre el pic y el driver, ademas de resistencias bajas entre el driver y los transistores... ah y tambien coloque un condensador muy grande entre la alimentacion de los transistores (voltaje de la bateria) y tierra jejejejejeje....
Ahhh, entonces por relacion de transformacion es logico que en el secundario solo haya 0,4A, no se si es tan logico que haya tan solo 50V, pero puede ser.
El ruido con cargas inductivas siempre lo hay, se puede redudir un poco, pero siempre habra ruido. Los condensadores aparte de eliminar ruido tambie reducen el desfase entre V e I que provocan las bobinas, de esta manera reducen W reactiva, eso siempre es bueno porque esta W se pierde, no genera trabajo y se consume.
A ver, el trafo al parecer es un reductor... lo consegui, asi que es lo que pude conseguir, no lo he mandado a hacer ni nada por el estilo, encontre una placa en donde decia que en el lado de 12v consume 4A, al conectar medi con un multimetro de pinzas y consumia 4A en el primario jejejejejeje
Los trafos reductores puestos al reves son elevadores ¿No?. No se si hay algun trafo especial que sea solo elevador y tenga unos rendimientos mejores??? de trafos no se mucho (como de tantas otras cosas :lol: :lol:)
La bateria me da como maximo 130Ah, asi que no es problema por ahi jejejeje es una bateria que me esta prestando un profesor como te comentaba....
Entonces la bateria no debe ser problema, siempre que este bien cargada, claro.
Y como se lo daria menos tension?? reduciendo el ancho de los pwm?? o como??
Hay dos maneras de hacerlo, seguramente mas pero yo se dos, una es como lo hacen los variadores de fracuencia que es reduciendo los anchos de los DUTTYs de los PWMs, si son la mitad la V sera la mitad. La otra es como lo hacen los arrancadores suaves, recortando la onda senoidal resultante, como tienes 60PWMs por semiciclo si solo ejecutas los 20 primeros o 20 ultimos tendras 1/3 de la tension si solo ejecutas 30 tendras 1/2 de la tension. Creo que esta ultima es mas sencilla, pero como vaya mejor. No se si sera necesario hacerlo, lo digo porque los trafos en el arranque consumen entre 10 y 14 veces la I nominal, para magnetizarse, solamente unos segundos.
Creo que el problema de de poca tension puede estar en que el IR2110 no puede estar al 100% todo el PWM, te dejo aqui un par de hilos donde se habla de esto.
¿En tu circuito le tenias puesto diodos en antiparalelo a los mosfet? tienen que ser para bastante intensidad.
Informacion sobre el IR2110, condensador y diodo. Tiene una cosa muy importante que me parecia recordar pero no estaba seguro, y es que el IR2110 no puede trabajar al 100% del PWM porque se descarga el condensador??? Entonces la solucion seria que el los PWM de la cresta de onda le dieras un 1 o 2% en bajo.
http://www.todopic.com.ar/foros/index.php?topic=12219.0;wap2
Buen hilo de mosfet, donde se explica que los mosfet superiores no pueden estar conduciendo al 100%:
http://www.todopic.com.ar/foros/index.php?topic=40728.msg338907#msg338907
Me ofrecieron hacerme un transformador pero laminado y no se si hacerlo o no ya que ahi si que la eficiencia del transformador se veria muy comprometida jejejejeje.... Alguien me recomendo que me busque un transformador de swicheo rapido, que mas bien esos me podrian ayudar mucho mas, pero aun no estoy seguro, tu que crees??
¿Que son menos eficientes? Yo como ya te dije de trafos no se mucho, no creo que para esto tenga que ser muy especial, pero...
Si pero recuerda que la idea es luego conectar a la red asi que pues mientras mas pwm, supongo que se parecera mucho mas a la senoidal por lo cual podre sincronizar y mantenerme sincronizado sin mucho problema, bueno eso pienso yo jjejejejejeje...
Si esta se parece mas a la de la red. Sirealmente el IR2110 no esta haciendo conducir a los mosfet en los PWMs de la cresta de la onda, creo que ese es el problema de tener tan poca tension, aparte de que ese trafo tampoco da la W que se requiere.
-
Ahhh, entonces por relacion de transformacion es logico que en el secundario solo haya 0,4A, no se si es tan logico que haya tan solo 50V, pero puede ser.
El ruido con cargas inductivas siempre lo hay, se puede redudir un poco, pero siempre habra ruido. Los condensadores aparte de eliminar ruido tambie reducen el desfase entre V e I que provocan las bobinas, de esta manera reducen W reactiva, eso siempre es bueno porque esta W se pierde, no genera trabajo y se consume.
ok, entiendo esto.... por lo de 0,4A, pues si, es por la relacion de transformacion y por los 50V pues vere que puedo hacer respecto a eso...
Los trafos reductores puestos al reves son elevadores ¿No?. No se si hay algun trafo especial que sea solo elevador y tenga unos rendimientos mejores??? de trafos no se mucho (como de tantas otras cosas :lol: :lol:)
Si... los trafos reductores puestos al reves son elevadores pero tienes el inconveniente de que fueron creados para reductores, es decir que en el lado de 110V pues tienen un calibre de cable (alambre esmaltado para la bobina) para una determinada cantidad de amperaje y de igual manera en el lado de 12V, es decir que debido al calibre del alambre pues no deberias meter mas amperaje que para el que fue creado y eso hace que me pase lo que me esta pasando... que en el secundario apenas tenga 0,4A ya que en el lado primario pues es amperaje con el que trabaja es 4A, aun no he puesto mas carga pero intentare hacerlo a ver si mantiene esos 4A en el primario, aunq esto puede tener como consecuiencia el calentamiento del bobina asi que tendre un poco de cuidado en ese sentido... Ahora si bien es cierto me ofrecieron hacer el transformador elevador, pero el calibre necesario es muy grande para 35A, segun estaba viendo una tablas el calibre del cable a utilizar seria 6AWG que soporta 38A... en el lado del secundario no seria de mucho problema ya que el amperaje no es tan alto pero no deberia dejar de ser sus 3A... pero sigo teniendo ese inconveniente de si mando o no mando a hacer dicho transformador ya que al ser laminado esta metiendo mucho ruido al circuito, almenos con un laminado que he conseguido.. intentare mandar fotos cuando lo prueba nuevamente...
Entonces la bateria no debe ser problema, siempre que este bien cargada, claro.
Claro... ademas son baterias propias para paneles solares y no se descangar tan rapido que digamos... ademas de que hace algun tiempo yo mismo las cargue con un regulador que hice jejejejejeje
Hay dos maneras de hacerlo, seguramente mas pero yo se dos, una es como lo hacen los variadores de fracuencia que es reduciendo los anchos de los DUTTYs de los PWMs, si son la mitad la V sera la mitad. La otra es como lo hacen los arrancadores suaves, recortando la onda senoidal resultante, como tienes 60PWMs por semiciclo si solo ejecutas los 20 primeros o 20 ultimos tendras 1/3 de la tension si solo ejecutas 30 tendras 1/2 de la tension. Creo que esta ultima es mas sencilla, pero como vaya mejor. No se si sera necesario hacerlo, lo digo porque los trafos en el arranque consumen entre 10 y 14 veces la I nominal, para magnetizarse, solamente unos segundos.
Creo que el problema de de poca tension puede estar en que el IR2110 no puede estar al 100% todo el PWM, te dejo aqui un par de hilos donde se habla de esto.
¿En tu circuito le tenias puesto diodos en antiparalelo a los mosfet? tienen que ser para bastante intensidad.
Informacion sobre el IR2110, condensador y diodo. Tiene una cosa muy importante que me parecia recordar pero no estaba seguro, y es que el IR2110 no puede trabajar al 100% del PWM porque se descarga el condensador??? Entonces la solucion seria que el los PWM de la cresta de onda le dieras un 1 o 2% en bajo.
http://www.todopic.com.ar/foros/index.php?topic=12219.0;wap2
Buen hilo de mosfet, donde se explica que los mosfet superiores no pueden estar conduciendo al 100%:
http://www.todopic.com.ar/foros/index.php?topic=40728.msg338907#msg338907
Entiendo lo que no puede estar el IR2110 al 100% durante todo el ciclo pero para evitar eso tendria que mandarlo a 0 cada cierto tiempo pero eso no afectaria en el PWM?? ademas cuanto tiempo deberia mandarlo a cero?? segun el ejemplo que ponen en esa direccion electronica pues seria casi 10 veces el tiempo que yo utilizo para hacer un pwm, o sea que si yo hago el pwm en la parte alta creo que no deberia tener problema alguno con respecto a eso, verdad??, aunque te comento que el voltaje que me daba era algo de 18V (no recuerdo muy bien) en el alto por lo cual asumo que no esta al 100%.. y pues como ese solamente es el paso para que el PWM en la parte inferior funcione pues no le preste mucha atencion... pero si crees que es mejor pues mando a hacer pwm tambien en la parte superior y asi me evito el problema de enviar a 0 cada cierto tiempo, estoy en lo correcto??
No en mi circuito no tenia puesto diodos antiparalelo en los mosfet... y no tengo idea de que intensidad deberia ponerlos... recuerda que mis mosfet son de intensidad muy alta... los diodos con mayor corriente que he visto en mi ciudad son de 5A, no se si seran suficientes... intentare comprarlos para ponerlos
En la cresta de la onda no tengo inconveniente alguno... segun el osciloscopio (que tiene poca resolucion) se mantiene en 1... tendria que probar con un osciloscopio mejor a ver que onda mismo esta saliendo...
¿Que son menos eficientes? Yo como ya te dije de trafos no se mucho, no creo que para esto tenga que ser muy especial, pero...
Especial no.... el problema es el amperaje en el lado de 12V... y pues en mi caso el ruido que me esta generando el transformador laminado...
Si esta se parece mas a la de la red. Sirealmente el IR2110 no esta haciendo conducir a los mosfet en los PWMs de la cresta de la onda, creo que ese es el problema de tener tan poca tension, aparte de que ese trafo tampoco da la W que se requiere.
Pues no estoy tan seguro de eso... aunque creo que hay que probarlo de alguna manera, como seria una forma de probar que el ir2110 no esta haciendo conducir a los mosfet en la cresta??... recuerda que es un trafo reductor de 110v A 12v, Es decir la relacion de transformacion es de 9,1667 (sin considerar perdidas).... si ingreso 8 voltios en la entrada pues a la salida me deberia dar 73,333V(nuevamente sin considerar perdidas)... y si ingreso menos voltaje eficaz que eso pues me deberia dar menos aun... creo que el problema mas bien esta en el transformador, incluso por la W que se requiere ya que no puede soportar el amperaje que necesito en el primario... tu que opinas de ese razonamiento??
Ahora si consideramos como real los 6,4V que me da en el ingreso al transformador a la salida me deberia dar 58,6667V sin carga, que creo si mal no recuerdo es algo similar a lo que me estaba dando (medido con mi osciloscopio de baja resolucion)
Y si consideramos como real los 4,6V que me da en el ingreso al transformador a la salida me deberia dar 42,1667V con carga, que creo si mal no recuerdo tambien es algo similar a lo que me estaba dando (medido con mi osciloscopio de baja resolucion)
Asi que de mantenerse estos valores asi creo que el transformador que debería construir seria de 5V a 110V aproximadamente... por lo cual necesitaria aun mas amperaje en el lado primario jajajajajajajaja
PD: Te adjunto imagenes que me dan en mi osciloscopio (de baja resolucion), tanto de 120 como de 240PWM, estas imagenes me da al conectar el transformador pero sin conectar nada en el secundario del transformador, es decir sin carga. Las imagenes son tomadas en el lado de 12V.
Saludos, Pedro.
-
Entiendo lo que no puede estar el IR2110 al 100% durante todo el ciclo pero para evitar eso tendria que mandarlo a 0 cada cierto tiempo pero eso no afectaria en el PWM?? ademas cuanto tiempo deberia mandarlo a cero?? segun el ejemplo que ponen en esa direccion electronica pues seria casi 10 veces el tiempo que yo utilizo para hacer un pwm, o sea que si yo hago el pwm en la parte alta creo que no deberia tener problema alguno con respecto a eso, verdad??, aunque te comento que el voltaje que me daba era algo de 18V (no recuerdo muy bien) en el alto por lo cual asumo que no esta al 100%.. y pues como ese solamente es el paso para que el PWM en la parte inferior funcione pues no le preste mucha atencion... pero si crees que es mejor pues mando a hacer pwm tambien en la parte superior y asi me evito el problema de enviar a 0 cada cierto tiempo, estoy en lo correcto??
En la parte alta, creo que solo serian POSITIVO_30 y NEGATIVO_30, seria al final del PWM hacer un "bcf PWM_1" y dspues dos o tres "nop", seria muy poco tiempo. Pero veo en las capturas del osciloscopio que has puesto que estan saliendo las ondas muy bien, son iguales o muy parecidas a las que saca el variador industrial, los huecos en medio de la onda indican que los mosfet estan conduciendo a tope, cuando no conducen a tope no se ve ese hueco en el medio porque no estan atope lo PWM, fijate en el video al principio de todo, esta a tope y se ven eses huecos, a medida que le baja tension desaparecen y se ve todo de color rojo, porque en la parte alta de la onda no estan conduciendo a tope:
Yo creo que no es necesario hacerle esos cambios, a no ser que en la capturas esas al ser un solo PWM no se aprecie???
Podria ser que esos 6,4V que te mide sean los 8,4V que tiene que dar, por los errores de medida del osciloscopio???
El trafo tiene que ser de mas potencia, eso es indudable no se pueden conseguir 300W con un trafo de 48W.
No en mi circuito no tenia puesto diodos antiparalelo en los mosfet... y no tengo idea de que intensidad deberia ponerlos... recuerda que mis mosfet son de intensidad muy alta... los diodos con mayor corriente que he visto en mi ciudad son de 5A, no se si seran suficientes... intentare comprarlos para ponerlos
Los mosfet llevan internamente diodos en antiparalelo pero no son muy potentes, los que tu les pongas estaran en paralelo con esos y se repartiran la corriente, ¿Seran suficientes de 5A? pues la verdad no lo se, pero tampoco va a pasar toda esa corriente por ahi, solo en los momentos de commutacion al dejar de conducir el mosfet, seria cuestion de ponerlos y mirar si se calientan :lol: Por cierto en la prueba con carga ¿Has mirado si se te calentaban los mosfet? ¿Les has puesto disipadores?
PD: Te adjunto imagenes que me dan en mi osciloscopio (de baja resolucion), tanto de 120 como de 240PWM, estas imagenes me da al conectar el transformador pero sin conectar nada en el secundario del transformador, es decir sin carga. Las imagenes son tomadas en el lado de 12V.
Si, como ya te comente antes, las ondas se ven perfectas, yo creo que todo es culpa de la falta de potencia del trafo???, cuando a un aparato le pones mas carga de la que soporta la V tiende a bajar.
-
Pedro ¿podrias poner unas capturas de un solo ciclo? es que fijandose bien veo unas rayas sospechosas en el centro de las senoides, en el de 240PWM, hay 7 ciclos, en el primero positivo no se ve, pero a partir de ese en los 4 siguientes tanto + como - aparecen unas lineas un tanto sospechosas???. Puede ser defecto del osciloscopio???
-
En la parte alta, creo que solo serian POSITIVO_30 y NEGATIVO_30, seria al final del PWM hacer un "bcf PWM_1" y dspues dos o tres "nop", seria muy poco tiempo. Pero veo en las capturas del osciloscopio que has puesto que estan saliendo las ondas muy bien, son iguales o muy parecidas a las que saca el variador industrial, los huecos en medio de la onda indican que los mosfet estan conduciendo a tope, cuando no conducen a tope no se ve ese hueco en el medio porque no estan atope lo PWM, fijate en el video al principio de todo, esta a tope y se ven eses huecos, a medida que le baja tension desaparecen y se ve todo de color rojo, porque en la parte alta de la onda no estan conduciendo a tope:
Yo creo que no es necesario hacerle esos cambios, a no ser que en la capturas esas al ser un solo PWM no se aprecie???
Podria ser que esos 6,4V que te mide sean los 8,4V que tiene que dar, por los errores de medida del osciloscopio???
El trafo tiene que ser de mas potencia, eso es indudable no se pueden conseguir 300W con un trafo de 48W.
Por ahora ya me encuentro nuevamente en el trabajo y se me hace imposible hacerlo, cuando llegue nuevamente a mi ciudad te ofresco hacerlo, pero como te he dicho mi osciloscopio no es de buena resolucion por lo cual no se sabe si son realmente ciertas o no esas caidas a cero que se observan, eso deberia verlo en un buen osciloscopio, te comento que con este osciloscopio me sale igual o casi igual tanto la onda que me da a la salida del pic como la de a la salida del mosfet (no estoy totalmente seguro pero lo probare e intentare mandarte unas imagenes)...
Los mosfet llevan internamente diodos en antiparalelo pero no son muy potentes, los que tu les pongas estaran en paralelo con esos y se repartiran la corriente, ¿Seran suficientes de 5A? pues la verdad no lo se, pero tampoco va a pasar toda esa corriente por ahi, solo en los momentos de commutacion al dejar de conducir el mosfet, seria cuestion de ponerlos y mirar si se calientan :lol: Por cierto en la prueba con carga ¿Has mirado si se te calentaban los mosfet? ¿Les has puesto disipadores?
Pues he puesto unos 1n4007 (1A para ondas recursivas) y no se calentaron pero lo probe con una fuente que da 1A, tendria que probar con la bateria para verificar si realmente soportan, lamentablemente no disponia de las baterias mientras estuve en mi ciudad.
Si, como ya te comente antes, las ondas se ven perfectas, yo creo que todo es culpa de la falta de potencia del trafo???, cuando a un aparato le pones mas carga de la que soporta la V tiende a bajar.
Pues ahora como te comente ya no me encuentro en mi ciudad asi que tampoco he podido mandar a hacer el trafo que me ofrecieron hacerlo...
Consulte con un profesor y me dijo que tambien puede ser culpa del trafo, que se satura y por eso corta el voltaje... pero igualmente el transformador es de 12V a 110V, cuando deberia ser de 8 u 8,5V a 115V, asi que igualmente habria que tomar en cuenta eso...
Pedro ¿podrias poner unas capturas de un solo ciclo? es que fijandose bien veo unas rayas sospechosas en el centro de las senoides, en el de 240PWM, hay 7 ciclos, en el primero positivo no se ve, pero a partir de ese en los 4 siguientes tanto + como - aparecen unas lineas un tanto sospechosas???. Puede ser defecto del osciloscopio???
Sip, cuando vuelva a mi ciudad Cuenca - Ecuador, lo podre hacer... por ahora me encuentro atado de manos, claro que sera la forma de onda con el osciloscopio que tengo, para hacerlo con un buen osciloscopio quiero hacerlo con las baterias y ahi dependeria que me las presten y que el laboratorio este disponible y me presten el osciloscopio jejejejeje....
Y recuerda que son PWM, es decir que puede ser que baje a cero o que deje de conducir el mosfet y simplemente no lo vemos por la falta de resolucion del osciloscopio... Creo que con todo esto te aclaro que puede ser defecto del osciloscopio o de su resolucion... pero con todo apenas llegue a mi ciudad hare una prueba e intentare cargar las fotos enseguida...
Ah... y probe el hacer PWM en la parte alta de los transistores tambien, y probe, no me dio tan buen resultado, me resulto mejor el hacer con el pulso y no con el PWM... bueno eso en el osciloscopio que tengo... Y pues en la imagen que muestran en la pagina del foto son casi 10 veces el tiempo que se le da el PWM en alto en el de 240, y 5 veces el tiempo de 120.... asi que pienso que ahi no habria problema alguno ya que tenemos el tiempo mucho menor al que el lo pone ahi....
Ahora lo que me pregunto es que si esto funcionaria con transistores simples en lugar del IR2110, o si habria que hacer algun cambio en el circuito, porque pienso que esa podria ser otra solucion, pero no se que opinas tu... que dices??
Al activar el transistor igualmente vamos a tener el cambio de 5 a 12V, y bueno ahi seria de poner una resistencia de corte de corriente pero pienso que con una pequeña no habria problema para cebar al mosfet.... Realmente esta teoria aun no la he probado porque queria preguntartelo ya que no se que implicaciones tendria esto en el PIC para empezar, y luego en el circuito en general, ya que supongo que el IR2110, aparte tambien hace un aislamiento entre el lado logico y de potencia, Ademas que al hacer una conexion simple (es decir la base del transistor a la salida del PIC, el Colector a la salida para el Gate del mosfet y del mismo punto a una resistencia y luego a +12V y el emisor a tierra) quiere decir que cuando el PIC mande los 5V al transistor, este se cerraria por lo cual estaria mandando 0V al mosfet, es decir que se invertiria las señales o me equivoco??
Saludos, Pedro.
-
Por ahora ya me encuentro nuevamente en el trabajo y se me hace imposible hacerlo, cuando llegue nuevamente a mi ciudad te ofresco hacerlo, pero como te he dicho mi osciloscopio no es de buena resolucion por lo cual no se sabe si son realmente ciertas o no esas caidas a cero que se observan, eso deberia verlo en un buen osciloscopio, te comento que con este osciloscopio me sale igual o casi igual tanto la onda que me da a la salida del pic como la de a la salida del mosfet (no estoy totalmente seguro pero lo probare e intentare mandarte unas imagenes)...
Si, creo que simplemente es un problema de resolucion del osciloscopio, lo he consultado con mas gente y opinan igual, no te molestes mucho en mirarlo con uno de mas resolucion, aunque si puedes hacerlo...Ademas es en el de 240PWMs porque la frec. es mas alta, en el de 120 no se ven.
Creo que cuando son PWMs de baja frecuencia y por tanto tienen ciclos (periodos) grandes si habra que tener en cuenta esto de no tenerlos al 100%, pero en frec. un poco altas no tendria que pasar.
Pues he puesto unos 1n4007 (1A para ondas recursivas) y no se calentaron pero lo probe con una fuente que da 1A, tendria que probar con la bateria para verificar si realmente soportan, lamentablemente no disponia de las baterias mientras estuve en mi ciudad.
Si, con intensidades de 1A no hace mucha prueba, date cuenta que en la realidad seran 35A, por no hablar del arranque aunque esto sera muy poco tiempo.
Pues ahora como te comente ya no me encuentro en mi ciudad asi que tampoco he podido mandar a hacer el trafo que me ofrecieron hacerlo...
Consulte con un profesor y me dijo que tambien puede ser culpa del trafo, que se satura y por eso corta el voltaje... pero igualmente el transformador es de 12V a 110V, cuando deberia ser de 8 u 8,5V a 115V, asi que igualmente habria que tomar en cuenta eso...
Yo tambien consulte lo del trafo con varias personas que saben mas que yo, no es que sean especialistas, saber mas que yo de trafos no es muy dificil :lol: :lol: me han dicho que con cable de 4 0 6 milimetros cuadrados deberia llegar, uno me dijo que incluso de 2,5m/m y alguno que mejor de 10m/m para asegurar, nadie conocia el 6AWG hasta que nos dimos cuenta que esa nomenclatura es Americana y en Europa no se usa (ni con los cables nos ponemos de acuerdo :lol: :lol:), dicen que para trafos los cables aguantan mas que en cable al ir al aire y no ser multifibrilares, como te digo son ingenieros electricos pero ninguno un experto en trafos.
Tablas de conversion del sistema americano al europeo:
http://es.wikipedia.org/wiki/Calibre_de_alambre_estadounidense
Ahora lo que me pregunto es que si esto funcionaria con transistores simples en lugar del IR2110, o si habria que hacer algun cambio en el circuito, porque pienso que esa podria ser otra solucion, pero no se que opinas tu... que dices??
Al activar el transistor igualmente vamos a tener el cambio de 5 a 12V, y bueno ahi seria de poner una resistencia de corte de corriente pero pienso que con una pequeña no habria problema para cebar al mosfet.... Realmente esta teoria aun no la he probado porque queria preguntartelo ya que no se que implicaciones tendria esto en el PIC para empezar, y luego en el circuito en general, ya que supongo que el IR2110, aparte tambien hace un aislamiento entre el lado logico y de potencia, Ademas que al hacer una conexion simple (es decir la base del transistor a la salida del PIC, el Colector a la salida para el Gate del mosfet y del mismo punto a una resistencia y luego a +12V y el emisor a tierra) quiere decir que cuando el PIC mande los 5V al transistor, este se cerraria por lo cual estaria mandando 0V al mosfet, es decir que se invertiria las señales o me equivoco??
Los drivers que tengo visto para sustituir al IR2110 van con tres transistores, no se si se podra hacer con uno solo, pero si con el IR2110 va bien ¿Para que cambiarlo? Todo el mundo usa los IR para no complicarse.
-
Si, creo que simplemente es un problema de resolucion del osciloscopio, lo he consultado con mas gente y opinan igual, no te molestes mucho en mirarlo con uno de mas resolucion, aunque si puedes hacerlo...Ademas es en el de 240PWMs porque la frec. es mas alta, en el de 120 no se ven.
Creo que cuando son PWMs de baja frecuencia y por tanto tienen ciclos (periodos) grandes si habra que tener en cuenta esto de no tenerlos al 100%, pero en frec. un poco altas no tendria que pasar.
Exacto.... mas bien en el que me deberia dar problemas seria en el de 120PWM en tal caso... Como dije anteriormente para mi sigue siendo el osciloscopio que tengo que es de baja resolucion...
Si, tambien pienso que es en el caso de que se tenga frecuencias muy bajas o que hagan una onda trapezoidal para intentar ganar algo de voltoje eficaz... En nuestro caso creo que no seria asi ya que constantemente se lo esta mandando a cero por el PWM jejejejeje...
Si, con intensidades de 1A no hace mucha prueba, date cuenta que en la realidad seran 35A, por no hablar del arranque aunque esto sera muy poco tiempo.
Sip... eso es cierto, en el arranque sera mucho mas complicado ya que sera mucho mayor la corriente, y espero que el mosfet me aguante jejejejeje, por lo pronto tengo mucho margen ya que son de 70A, asi que espero que sea suficiente jejejejejeje
Yo tambien consulte lo del trafo con varias personas que saben mas que yo, no es que sean especialistas, saber mas que yo de trafos no es muy dificil :lol: :lol: me han dicho que con cable de 4 0 6 milimetros cuadrados deberia llegar, uno me dijo que incluso de 2,5m/m y alguno que mejor de 10m/m para asegurar, nadie conocia el 6AWG hasta que nos dimos cuenta que esa nomenclatura es Americana y en Europa no se usa (ni con los cables nos ponemos de acuerdo :lol: :lol:), dicen que para trafos los cables aguantan mas que en cable al ir al aire y no ser multifibrilares, como te digo son ingenieros electricos pero ninguno un experto en trafos.
Tablas de conversion del sistema americano al europeo:
http://es.wikipedia.org/wiki/Calibre_de_alambre_estadounidense
Segun la tabla que me pones dice que el cable de 4mm es el 11AWG, el de 6 es el 9AWg y el de 10mm es de 7AWG, en varias tablas que he consultado el cable deberia ser 6AWG que soportaria hasta 38A, que esta por encima del valor que tendriamos... el sigiente seria el de 7AWG que soportaria 30A te dejo la tablita que he hecho del lo que he estado buscando jejejeje
Los drivers que tengo visto para sustituir al IR2110 van con tres transistores, no se si se podra hacer con uno solo, pero si con el IR2110 va bien ¿Para que cambiarlo? Todo el mundo usa los IR para no complicarse.
Pues para probar, a ver si esta funcionando correctamente y descartar totalmente que el driver sea el q esta funcionado mal, pero bueno si dices que esta funcionando bien y que esta correcto lo que me esta dando pues confio jejejejejejejeje
En mi ultima salida a mi Ciudad sali con la familia a un paseo por unos dias asi que no pude concretarme a esto pero ahora que salga nuevamente pues tengo que hecharle ganas ya que estoy bastante tiempo en esto y ya es hora que me de resultado jejejejeje....
Ahora en esta salida a mi ciudad que sera la proxima semana planeo hacer el transformador o mandarlo a hacer y si avanzo pues a realizar alguna prueba... quiero ver que señal me da con el transformador laminado que deberia ser y ver si necesita o no algun tratamiento la señal como filtros o algo.... Espero avanzar a hacer las pruebas aunque sea con mi osciloscopio y asi mandarte alguna imagen...
Saludos, Pedro.
-
Exacto.... mas bien en el que me deberia dar problemas seria en el de 120PWM en tal caso... Como dije anteriormente para mi sigue siendo el osciloscopio que tengo que es de baja resolucion...
Si, tambien pienso que es en el caso de que se tenga frecuencias muy bajas o que hagan una onda trapezoidal para intentar ganar algo de voltoje eficaz... En nuestro caso creo que no seria asi ya que constantemente se lo esta mandando a cero por el PWM jejejejeje...
Si, recuerda como en el video del variador cuando estaba a tope de frec. y V se veian esos "huecos" en el centro de la onda, porque los PWMs estan a tope de conduccion, cuando reduce frec. y por tanto V (los motores tienen que tener esa relacion V/f) se dejan de ver esos huecos porque los DUTTYS ya no son tan altos y se ven las rayas de los PWMs. Viendo las capturas tuyas veo que son iguales que las del variador a tope, lo unico que me estrañaba un poco eran esas rayas, pero estoy casi seguro que son defecto del osciloscopio.
Sip... eso es cierto, en el arranque sera mucho mas complicado ya que sera mucho mayor la corriente, y espero que el mosfet me aguante jejejejeje, por lo pronto tengo mucho margen ya que son de 70A, asi que espero que sea suficiente jejejejejeje
El arranque va a ser muy poco tiempo, 2seg o menos incluso. ¿Los mosfet no eran de 100A? recuerda ponerles disipadores y si va a ir en una caja cerrada ponle un ventilador, uno sacado de un ordenador viejo que encuentres por ahi, supongo que en tu pais hara mucho calor.
Segun la tabla que me pones dice que el cable de 4mm es el 11AWG, el de 6 es el 9AWg y el de 10mm es de 7AWG, en varias tablas que he consultado el cable deberia ser 6AWG que soportaria hasta 38A, que esta por encima del valor que tendriamos... el sigiente seria el de 7AWG que soportaria 30A te dejo la tablita que he hecho del lo que he estado buscando jejejeje
Lo que me dicen a mi es que esas tablas son para cables, los cables van cerrados con aislante y son multifiblilares (por lo menos en Europa) por tanto llevan aire en medio de los hilos, en el trafo al ser de un solo hilo e ir al aire aguantan mucho mas...Bueno esto es lo que me dijeron, si tienes un profesor que sepa de esto, consultaselo. De todos modos ese primario va a ser de pocas vuelta ya que la V ahi es baja, por tanto aunque ese cable sea caro sera poca cantidad.
Pues para probar, a ver si esta funcionando correctamente y descartar totalmente que el driver sea el q esta funcionado mal, pero bueno si dices que esta funcionando bien y que esta correcto lo que me esta dando pues confio jejejejejejejeje
Mal hecho lo de confiar en mi :lol: Aunque casi siempre que escribo lo hago sobrio, pero aun asi... :D :D
-
El arranque va a ser muy poco tiempo, 2seg o menos incluso. ¿Los mosfet no eran de 100A? recuerda ponerles disipadores y si va a ir en una caja cerrada ponle un ventilador, uno sacado de un ordenador viejo que encuentres por ahi, supongo que en tu pais hara mucho calor.
Perdon, los mosfet son de 120A como te muestro en la imagen que te dejo abajo.. un pequeño error que cometi jajajajajaja...
Tengo que ponerle disipadores pero aun no los he puesto... y aun no decido si ponerlos en una caja cerrada o no.. aunq tengo una caja cerrada (con aperturas de ventilacion) que hace algunos años hice como parte de un proyecto en el colegio (secundaria) jajajajajajaja... talves me anime y le ponda ahi, pero ya veremos jejejejejeje....
Y creo que tengo un ventilador viejo de un cooler de un portatil... no recuerdo si funciona perfectamente o no pero ese recuerdo que lo tenia, y sino pues en donde venden implementos electronicos tambien he visto ventiladores asi que no son dificiles de conseguir jejejejejejeje
Por el momento como no se me han calentado para nada pues no he visto necesidad de poner ningun discipador, pero creo que ya con la potencia nominal pues creo que deberia hacerlo a pesar de que los transistores tienen mucho margen de corriente de funcionamiento jejejejejeje
Ah y por cierto en mi ciudad Cuenca - Ecuador, no es muy caliente que se diga... oscilamos entre 4 a 30°C, asi que como veras no es muy caliente, yo me encuentro en la sierra y no hay mucha humedad, esque nos encontremos en Cuenca a 2500 metros sobre el nivel del mar aproximadamente... La temperatura de 30°C es raro que lleguemos pero igual se llega jejejejejeje Mi ciudad como veras mas bien es un tanto fria jajajajaja...
Aqui te dejo una direccion electronica donde podrias ver mas o menos la temperatura en 2 semanas de mi ciudad jejejejeje
http://www.meteored.com.ec/tiempo-en_Cuenca-America+Sur-Ecuador-Azuay--1-20244.html
Lo que me dicen a mi es que esas tablas son para cables, los cables van cerrados con aislante y son multifiblilares (por lo menos en Europa) por tanto llevan aire en medio de los hilos, en el trafo al ser de un solo hilo e ir al aire aguantan mucho mas...Bueno esto es lo que me dijeron, si tienes un profesor que sepa de esto, consultaselo. De todos modos ese primario va a ser de pocas vuelta ya que la V ahi es baja, por tanto aunque ese cable sea caro sera poca cantidad.
No, no es asi... ahora te dejare la tabla de cables ya que la baje de una distribuidora que hay en mi pais y que es internacional tambien (sudamerica) y justamete te dejare de los multifiblilares....
En los trafos no van al aire, van unos pegados con otros por lo tanto la resistencia de aislamiento tiende a bajar, por lo cual aguantan menos corriente como podras ver en la tabla que te estoy mandando comparada con la anterior, tambien en la tabla que te envio ahora diferencia entre un alambre solo y cuando hay tres alambres y solamente ahi ya vas a darte cuenta de la diferencia de corrientes que pueden soportar, y eso es por el hecho de ser tres alambres que estan cerca... bueno ya te daras cuenta viendo la tabla....
Mal hecho lo de confiar en mi :lol: Aunque casi siempre que escribo lo hago sobrio, pero aun asi... :D :D
Jajajajaja, pues tampoco es que confio ciegamente... averiguo y tambien pongo mi opinion en ello y de ahi saco conclusiones como te podras dar cuenta jejejejejejeje
-
Por el momento como no se me han calentado para nada pues no he visto necesidad de poner ningun discipador, pero creo que ya con la potencia nominal pues creo que deberia hacerlo a pesar de que los transistores tienen mucho margen de corriente de funcionamiento jejejejejeje
No tienen tanto margen de corriente, una norma para semiconductores de potencia en general (mosfet, IGBT, BJT, tiristores...) es que soportan el 25% sin disipador y el 50% con disipador, como en V si van muy sobrados (te hubieran llegado de 20V) digamos que a potencia nominal (300W/8.5V=35A) pues estan mas o menos en el limite sin disipador, pero yo se lo pondria.
Cuando los mosfet trabajan en conmutacion, en el ciclo bajo del PWM (cuando no conducen) tienen toda la V entre drain y source, en este caso 12V pero la intensidad es practicamente 0, suelen ser uA o incluso nA o como mucho algun mA, por tanto la potencia a disipar es muy pequeña, entonces solo tiene que ser capaz de soportar la V, para soportar 12V con uno que soporte 15V ya valdria mejor si soporta 20V. Pero cuando conduce (DUTTY) toda la I que consume la carga (35A en este caso) tiene que pasar a traves de el, provocando una caida de V (caida V=I*RDSon) la RDSon es del orden de mili ohmnios y por tanto esa caida de V no es muy grande, pero aqui es donde se calienta, porque la W disipada es la I al cuadrado por la RDSon y por la ley de Joule este calor que se produce al disipar W se acumula en el tiempo. Por tanto te van muy sobrados de V, pero de I van bien pero "simplemente bien" y en el arranque sufriran un poco, pero como es poco tiempo creo que no pasara nada, si pasara lo podrias arrancar regulandole la V como ya te dije.
Ah y por cierto en mi ciudad Cuenca - Ecuador, no es muy caliente que se diga... oscilamos entre 4 a 30°C, asi que como veras no es muy caliente, yo me encuentro en la sierra y no hay mucha humedad, esque nos encontremos en Cuenca a 2500 metros sobre el nivel del mar aproximadamente... La temperatura de 30°C es raro que lleguemos pero igual se llega jejejejejeje Mi ciudad como veras mas bien es un tanto fria jajajajaja...
Cuando no conocemos un pais tenemos la tendencia a fiarnos de los estereotipos y creer que como se llama Ecuador ya va a hacer calor en todos los sitios :lol: Mejor asi ayudara a que no se calienten.
En los trafos no van al aire, van unos pegados con otros por lo tanto la resistencia de aislamiento tiende a bajar, por lo cual aguantan menos corriente como podras ver en la tabla que te estoy mandando comparada con la anterior, tambien en la tabla que te envio ahora diferencia entre un alambre solo y cuando hay tres alambres y solamente ahi ya vas a darte cuenta de la diferencia de corrientes que pueden soportar, y eso es por el hecho de ser tres alambres que estan cerca... bueno ya te daras cuenta viendo la tabla....
Si es verdad que van enrollados en espiras, no se si se podria poner el primario, que es donde hay problemas, en la parte exterior para que tuviera mas ventilacion???, Vi uno elevador para 400W con corriente de aqui que es de 230V/50Hz y es realmente pequeño, tiene 4cm de largo 2,5cm de ancho y 4cm de alto, el tuyo sera algo mas grande porque para dar 300W a 110V necesitas algo mas de I (2,7A) que para dar 400W a 230V (1,7A) pero tambien menos espiras en el secundario al ser menor la V.
En el cuadro de cables pone para el 6AWG con un conductor 105A ¿Que estoy mirando mal? ¿No va muy sobrado?
-
No tienen tanto margen de corriente, una norma para semiconductores de potencia en general (mosfet, IGBT, BJT, tiristores...) es que soportan el 25% sin disipador y el 50% con disipador, como en V si van muy sobrados (te hubieran llegado de 20V) digamos que a potencia nominal (300W/8.5V=35A) pues estan mas o menos en el limite sin disipador, pero yo se lo pondria.
Cuando los mosfet trabajan en conmutacion, en el ciclo bajo del PWM (cuando no conducen) tienen toda la V entre drain y source, en este caso 12V pero la intensidad es practicamente 0, suelen ser uA o incluso nA o como mucho algun mA, por tanto la potencia a disipar es muy pequeña, entonces solo tiene que ser capaz de soportar la V, para soportar 12V con uno que soporte 15V ya valdria mejor si soporta 20V. Pero cuando conduce (DUTTY) toda la I que consume la carga (35A en este caso) tiene que pasar a traves de el, provocando una caida de V (caida V=I*RDSon) la RDSon es del orden de mili ohmnios y por tanto esa caida de V no es muy grande, pero aqui es donde se calienta, porque la W disipada es la I al cuadrado por la RDSon y por la ley de Joule este calor que se produce al disipar W se acumula en el tiempo. Por tanto te van muy sobrados de V, pero de I van bien pero "simplemente bien" y en el arranque sufriran un poco, pero como es poco tiempo creo que no pasara nada, si pasara lo podrias arrancar regulandole la V como ya te dije.
Ok, entonces sera mejor ponerlo por si se ofrece algun momento o mejor dicho para evitar cualquier inconveniente...
Cuando no conocemos un pais tenemos la tendencia a fiarnos de los estereotipos y creer que como se llama Ecuador ya va a hacer calor en todos los sitios :lol: Mejor asi ayudara a que no se calienten.
Pues si, eso por lo general piensan jejejeje pero ya ves que no es del todo asi jajajajja mi ciudad es bastante fria jajajajajaja...
Si es verdad que van enrollados en espiras, no se si se podria poner el primario, que es donde hay problemas, en la parte exterior para que tuviera mas ventilacion???, Vi uno elevador para 400W con corriente de aqui que es de 230V/50Hz y es realmente pequeño, tiene 4cm de largo 2,5cm de ancho y 4cm de alto, el tuyo sera algo mas grande porque para dar 300W a 110V necesitas algo mas de I (2,7A) que para dar 400W a 230V (1,7A) pero tambien menos espiras en el secundario al ser menor la V.
En el cuadro de cables pone para el 6AWG con un conductor 105A ¿Que estoy mirando mal? ¿No va muy sobrado?
Pues converse con alguien que construye transformadores y me dice que por efectos de electromagnetismo pues el primario tiene que ir en la parte interna, asi que no me queda mas que hacerlo o mandarlo a hacer asi jejejejeje.... Pues la verdad es que esto mandando a hacer el transformador y segun me dijeron el tamaño es mucho mas grande de lo que me dices pero bueno veamos que mismo sucede....
Y si, en el ultimo cuadro de cables que te envie el 6AWG soporta eso, pero es el cable con aislamiento, es decir el multifibrilar.... la tabla para el esmaltado (que es el que se utiliza para bobinar transformadores) es la tabla que te envie anteriormente en donde dice que soporta 38A, asi que con el que realmente se tiene que trabajar es con la primera tabla que te envie... para el secundario deberia ser calibre 17... y pues segun la persona que contruye transformadores aca me dice que al ser transformador laminado la parte interna o area en donde va enrrollado el alambre sale (en carrete claro esta) de 25 centimetros cuadrados y algo mas, asi que realmente sale algo grande jejejejejeje
Por ahora me quede sin poder probar ya que no tengo baterias ya que la persona que me prestaba ya los ha instalado asi que ya no se puede jejejejeje... creo que tendre que comprar alguna bateria jajajajajajaja
Saludos, Pedro.
-
Que pasa Pedro ¿Te esta dando algun problema?
Me dais miedo cuando callais :D :D
-
Que pasa Pedro ¿Te esta dando algun problema?
Me dais miedo cuando callais :D :D
Jajajajaja hasta yo me doy miedo jajajajajaja
Ahora ya tengo algo como lo de el video que me mandaste... Te adjunto unas imagenes aunque no se tomaron tan bien las fotos jejejeje
Ahora intento hacer un filtro RC o LC (mas me estoy inclinando por un RC por la facilidad de conseguir los elementos) para mejorar la sinusoide y poder sincronizar... en esas ando el problema es que nuevamente me esta atenuando la sinusoide, asi que intentare ver si tiene solucion jejejejejejeje por ahora creo que son los cables de conexion que obvio no son para mucho amperaje ya que hay que intruducirlo en los agujeros del protoboard, el problema es que la placa tampoco va a soportar mucho amperaje y eso debido a que utilizamos transistores (mosfet) y las patas son cercanas asi que el maximo de ancho que voy a poder poner en la placa sera el ancho de la pata del transistor... asi que por ahora estoy intentando terminar la placa y ver que mismo me da en lo real ya con la placa....
Te adjunto una imagen que es luego de ponerle un condensador simplemente (no muy alto en capacitancia).... y luego te adjunto uno con un filtro rc pero que lamentablemente pierdo demasiado voltaje y no me conviene de esa manera jejejejeje
Lo malo es que en el filtro RC se me calento la resistencia (es pequeña 10ohm y 5W) intentare ponerla mas pequeña aun a ver si asi me mejora el voltaje eficaz... ah y tambien encontre en mi ciudad unas resistencias de 20W que apenas y pude hacer unas pruebas antes de salir de mi ciudad pero de igual manera se me calentaba...
Ahora lo que pienso hacer es colocar un condensador lo suficientemente grande (varios en paralelo) para que simplemente con la resistencia del cable de ser posible me considere un filtro RC, veamos como mismo me va y que resultados me da, pero para hacer la prueba ahi ya quiero hacer el PCB y la placa... el problema es que hice unas pequeñas varaciones en el circuito y no he anotado en ningun lado y por lo tanto no puedo terminar totalmente la placa jejejejejejeje
He ahi el porque estoy trabajando es eso a ver si me da algo bueno jajajajajajaja Si se te ocurre algo pues hasmelo saber
Saludos, Pedro
-
Ahora intento hacer un filtro RC o LC (mas me estoy inclinando por un RC por la facilidad de conseguir los elementos) para mejorar la sinusoide y poder sincronizar...
En los comerciales es con filtro LC, lo digo casi seguro, aunque no del todo...Vi alguna por dentro y llevan un toroide bastante grande, casi tan grande como el transformador, como ya te dije en otro post, el trafo en realmente pequeño.
Esa ultima esta muy bien, es casi perfecta, ¿Es la que esta sacando con el filtro RC? con una R te cae tension y te produce calor. Vas a hacer un calefactor en vez de un inverter :lol: :lol:
-
En los comerciales es con filtro LC, lo digo casi seguro, aunque no del todo...Vi alguna por dentro y llevan un toroide bastante grande, casi tan grande como el transformador, como ya te dije en otro post, el trafo en realmente pequeño.
Esa ultima esta muy bien, es casi perfecta, ¿Es la que esta sacando con el filtro RC? con una R te cae tension y te produce calor. Vas a hacer un calefactor en vez de un inverter :lol: :lol:
Mmmm... entonces voy a intentar hacer un LC, solamente que aun no encuentro como hacer una L, es decir el numero de espiras o el diametro para un determinado calibre del conductor jejejejeje veres si puedo conseguir esos datos.....
Si es la que esta con filtro RC, esta casi perfecta pero pierdo bastante voltaje, si te das cuenta en las otras esta en 5V/div, pero en la ultima esta en 2V/div, es decir pierdo muchisimo voltaje....
Y si, eso mismo es lo que decia, se me calienta mucho la resistencia y mas bien parece un calefactor como tu mismo dices jajajajaja y pues como baja el voltaje pues mas vale de calefactor que de inversor jajajajajaja.... Bueno intentare encontrar formas para calcular el filtro LC y tambien el como realizar la L jejejejejejeje....
Saludos, Pedro.
-
Pedro te envio a tu correo unas fotos de un inverter comercial, con comentarios en paint, te las quise enviar por aqui pero no me dja, dice que son demasiado grandes.
A ver si te aclaran algo.
Saludos tapi.
-
Lo que me sigue sorprendiendo es el tamaño del transformador... se supone que vas a elevar el voltaje por lo cual va a caer corriente, o sea que tendriamos corriente elevada en el primario, me sorprende el transformador sumamente pequeño... a menos que sea uno que dicen se llama transformador de swicheo o algo asi... ese me comentaron que es muy pequeño (asi como el que esta en las imagenes) pero para utilizar ese yo tenia que estudiar nuevamente todo y posiblemente hacer algunos cambios... por ahora ya casi no dispongo de tiempo como para hacerlo pero bueno, como ya tengo el transformador pues tengo que acoplarme a el jejejejeje
Si, sorprende bastante el tamaño del trafo por lo pequeño que es y el del toroide por lo grande que es. Este de las fotos es para 400W, entrada 12VDC y salida a 230VAC.
Yo creo que con el filtro LC no solo convierten el PWM en un nivel de tension, sino que ademas elevan esa tension, no se cuanto la elevan, pero si solamente la duplican, la I del primario se reduciria a la mitad, por lo que ese cable que tanto te preocupa tambien se reduciria a la mitad de seccion, de todos modos es algo que no puedo asegurar.
-
Si, sorprende bastante el tamaño del trafo por lo pequeño que es y el del toroide por lo grande que es. Este de las fotos es para 400W, entrada 12VDC y salida a 230VAC.
Yo creo que con el filtro LC no solo convierten el PWM en un nivel de tension, sino que ademas elevan esa tension, no se cuanto la elevan, pero si solamente la duplican, la I del primario se reduciria a la mitad, por lo que ese cable que tanto te preocupa tambien se reduciria a la mitad de seccion, de todos modos es algo que no puedo asegurar.
Mmmmm... entiendo.... el nucleo de esa toroide es de carton?? o que nucleo tiene?? Puedes tener acceso a esa informacion??
Si, eso es cierto, si llegaran a elevar algo el voltaje la corriente en el primario se reduciria, asi que el tamaño del trafo tambien seria mas pequeña... Pero como ahora ya tengo el transformador pues de igual manera tocaria acoplarse a el o caso contrario comprar o mandar a hacer otro transformador.
Saludos, Pedro.
-
Mmmmm... entiendo.... el nucleo de esa toroide es de carton?? o que nucleo tiene?? Puedes tener acceso a esa informacion??
Pues no esta muy facil de ver, pero juraria que es carton o plastico de color amarillo. ¿Te dice algo?
-
¿Que tal Pedro, como va la cosa?
Ayer empezaron a diseñar este trafo elevador, creo que no vale exactamente para el inversor porque es para bajas potencias, en este caso es para elevar de 12V a 3000V pero solo unos pocos vatios.
http://www.todopic.com.ar/foros/index.php?topic=42189.0
Saludos Tapi.
-
Que tal amigo, por ahora todo bien con la placa ya logre filtrarla mejor pero con unos transistores de mayor amperaje.... ya casi no se me calientan... te adjunto la señal resultante...
Gracias por todo.
Saludos, Pedro.
-
Hombre Pedro me alegro de volver a leerte.
Tiene muy buena pinta esa onda, la verdad es que no sabia que se podian lograr ondas tan buenas a partir de CC. Yo con las que siempre trabaje fue con las de los variadores para motores trifasicos, que son realmente muy "malas" pero que a los motores les parecen "maravillosas".
¿Le has puesto mosfets mas potentes? Creo que eran de 100A para aguantar 35A ¿Verdad?. El problema como ya habiamos comentado es el pico de arranque del trafo, al igual que en los motores de induccion, tanto unos como otros hasta que no se magnetizan tiran de la corriente que es la hostia.
Gracias por todo.
No me las des, la verdad es que yo tambien he aprendido mucho haciendo esto.
¿Que le ha parecido al profe? Estoy seguro que en su vida habia visto una onda tan buena generada a partir de DC.
Ahora sacas 5V ¿Con cuanta tension lo estas alimentando? ¿Estas usando filtro LC?
-
Hombre Pedro me alegro de volver a leerte.
Tiene muy buena pinta esa onda, la verdad es que no sabia que se podian lograr ondas tan buenas a partir de CC. Yo con las que siempre trabaje fue con las de los variadores para motores trifasicos, que son realmente muy "malas" pero que a los motores les parecen "maravillosas".
¿Le has puesto mosfets mas potentes? Creo que eran de 100A para aguantar 35A ¿Verdad?. El problema como ya habiamos comentado es el pico de arranque del trafo, al igual que en los motores de induccion, tanto unos como otros hasta que no se magnetizan tiran de la corriente que es la hostia.
Correcto puse unos mosfet mucho mas potentes, IXFH400N075T2, este es el que lo utilice para ser exacto jejejeeje, y si es para 35A y el mosfet es de 400A, pero ahora me surge otro inconveniente... ya cuando genero con el panel solar o con la bateria no hay inconveniente alguno, pero cuando conecto con la "Red" se me calientan los transistores, no se que puede estar pasando, solamente inyecto energia a la red desde los paneles solares asi que no es el tema de la corriente infinita que me podria dar la bateria, la corriente se limita al ser solamente desde los paneles solares la que se conecta a la "Red", asi que creo que lo que puede suceder es que mas bien de la "Red" esta ingresando la energia hacia mis transistores, ya puse diodos antiparalelo al cada uno de los transistores los diodos son de conmutacion rapida y de corriente alta pero los transistores se siguen calentando, ya no se que mas hacer jejejejejeje, si tienes alguna idea mas bien hasmelo saber.
No me las des, la verdad es que yo tambien he aprendido mucho haciendo esto.
Que bueno que tu tambien has aprendido de todo esto jejejejeje
¿Que le ha parecido al profe? Estoy seguro que en su vida habia visto una onda tan buena generada a partir de DC.
Pues le ha parecido bien pero no se sorprendio o almenos eso parecio jajajajajjaa.... a la final como te dije al inicio esta onda habia que sincronizarla con la red y habia que hacerla lo mas senoidal posible jejejejejje.
Ahora sacas 5V ¿Con cuanta tension lo estas alimentando? ¿Estas usando filtro LC?
No, ahora saco 120Vac, en el osciloscopio ves 5V/div es decir que cada cuadrito (cada cuadrito blanco que esta en el fondo) mide 5 voltios, pero estoy utilizando una sonda de 10x, es decir que cada cuadrito realmente mide 50 voltios jejejejeje como la onda mide casi 5 cuadros mas o menos son 250 voltios de alterna pero recuerda que ese voltaje es pico pico, de eso tendriamos que sacarle el voltaje pico que son alrededos de 125 voltios y restarle aun mas ya que el voltaje medido es el eficaz y no el pico (para esto hay calculo jejejeje).... en conclusion esta alrededor de 90Voltios, pero bueno lo mejore un poquitito y si me dan los 120 voltios eficaces jejejejjeje, ahora como te digo el problema es conectado a la red y no se que mas hacer jejejjeje
Alimento con 12Vdc, y estoy utilizando un filtro LC como integrador, pero luego de ese, le tengo un Condensador para suavizar la onda aun mas.
Saludos, Pedro.
-
asi que creo que lo que puede suceder es que mas bien de la "Red" esta ingresando la energia hacia mis transistores, ya puse diodos antiparalelo al cada uno de los transistores los diodos son de conmutacion rapida y de corriente alta pero los transistores se siguen calentando, ya no se que mas hacer jejejejejeje, si tienes alguna idea mas bien hasmelo saber.
Se me ocurren algunas cosas que pueden ser:
-Que las ondas no esten en fase, es decir cuando el semiciclo es positivo en la red en el inverter este generando el negativo, por tanto en vez de sumar se restan ya que son de signo contrario, esto ya lo habiamos comentado ¿Recuerdas que por eso usaste un opto normal en vez del PS2505? ¿Puedes mirar si estan en fase o desfasadas?
-Que la red tenga muy poca potencia, menos que el inverter y este cogiendo corriente del iverter, es decir que le estes vendiendo o regalando corrienete a la compañia electrica.
-La tercera, estoy casi seguro que es esta, es que a treves del trafo te esta entrando tension, de hecho mirando el esquema que pusiste (no se si ahora lo has cambiado mucho) es logico que por el trafo te entre corriente, ya que es reversible. Para esto la solucion que veo es ponerle tiristores en antiparalelo, desde el mismo programa activariamos los que esten en el sentido que nos interesa, es decir cuando generamos + activaremos los que esten + al inverter y - a la red, como la red tambien tendra + no dejara pasar esa corriente ¿No se si me explico?, mañana te pongo un esquema. Si recuerdas las fotos que te mande del inverter comercial llevaba 4 mosfet (el puente H) y otros 4 que no sabiamos para que eran, yo creo que son 4 tiristores, las pistas no eran tan anchas ahi, porque estan en el secundario (entre el trafo y la red) y ahi la corriente es mucho menor???
Mañana te hago un esquema de como quedaria, te lo voy a hacer modificando el tuyo.
Correcto puse unos mosfet mucho mas potentes, IXFH400N075T2, este es el que lo utilice para ser exacto jejejeeje, y si es para 35A y el mosfet es de 400A
Esos mosfet son demasiado caros (12€ en Digikey) de I van sobrados (aunque en el pico de arranque haran falta) pero en V son para 75V y trabajan a 12V con que soportaran 20V te llegaria y seguro que te saldrian mas baratos.
Saludos Tapi.
-
Te pongo el esquema de como seria para que no te entre tension ni corriente de la red al inverter porque creo que este es el problema, como ves en cada semiciclo hay un tiristor (o dos si tambien se le pone al neutro) que esta bien polarizado (del inverter a la red) a ese le daremos un pulso en el gate y conducira, el otro estara bien polarizado de la red al inverter (lo que no quieres) como NO le daremos pulso en el gate no conducira.
En el programa es muy sencillo de poner, al empezar semiciclo + activas el tiristor positivo "bsf tiristor_positivo" en 1uS se activan pero para que se activen tiene que haber suficiente corriente (en estos pequeños unos pocos mA llegan) entonces lo dejas asi hasta por ejmplo el PWM_20 o por ahi, da igual, ahi lo le quitas la señal "bcf tiristor_positivo", el tirstor seguira conduciendo hasta acabar el semiciclo, al empezar el semiciclo - haces lo mismo con el otro. ¿Que te parece? ¿Funcionara? yo creo que si, aunque es algo que nunca hice ni vi hacer.
He encontrado este en Digikey que te iria bien, 200V (tienes unos 170V de V max ¿No?), 10A (tienes en torno a 4A ahi ¿No? este da 10A en continua y 16A en alterna), ademas es barato 1,49€, pero a ver lo que te cobran en la tienda, por supuesto no tiene que ser esta mismo, uno similar:
http://www.digikey.com/product-detail/en/2N6402G/2N6402GOS-ND/1475335
Los optos son los tipicos MOC-XXXX deben ser sin cruce por 0, el MOC3011 y 3021 son SIN cruce por 0, en el esquema esta uno CON cruce por 0 porque mi proteus es el unico que tiene.
Saludos Tapi.
-
Por ahora ya no puedo mirar si estan en fase o desfasadas, pero si estuviesen desfasadas lo que se me calentara seria el triac que es el elemento de conexion entre ambas, sin embargo ese esta mas fresco que una lechuga jejejejejejeje
La idea es esa, que cuando este generando si mi consumo es poco que el restante envie hacia la red, para venderla o regalarla jejejejejeje, pero si eso estuviese sucediendo en mi primario del transformador o mejor dicho de donde estoy tomando la energía tambien subiera el amperaje cosa que no sucede jejejejejeje.
Asi que creo que lo unico que puede estar pasando es que esta ingresando voltaje de la red hacia mis transistores.
La verdad no recuedo cuanto me costaron los transistores pero si mal no recuerdo si eran bastante caritos, ademas que los compre en el exterior porque aqui no habia, solamente que no recuerdo en donde los compre, creo que en digi-key jejejejeje
Ahora bien, para activar el tiristor no se necesita una corriente pequeña en en gate?? pero ademas de eso no se necesita que exista un voltaje positivo entre el gate y el catodo??
Si es asi creo que no se activara con tu diagrama que me enviaste ya que si va a llegar la corriente al gate pero el voltaje entre el gate y el catodo en el mejor de los casos seria el mismo, caso contrario el voltaje en el gate seria un poco menor debido a la resistencia de 470 que ingresa en el opto, estoy en lo correcto??...
Una pregunta para la red snubber le pusiste una resistencia de 100 y un condensador de 10uF/200V, supongo que el condensador tiene que ser ceramico y la resistencia en por lo menos medio vatio, estoy en lo correcto??
Ahora bien, luego de todo esto, que pasa si el voltaje que yo estoy generando es menor al de la red?? esto causaria que se desconecte el tiristor, estoy en lo cierto??
-
Asi que creo que lo unico que puede estar pasando es que esta ingresando voltaje de la red hacia mis transistores.
Si, es casi seguro que es esto.
La verdad no recuedo cuanto me costaron los transistores pero si mal no recuerdo si eran bastante caritos, ademas que los compre en el exterior porque aqui no habia, solamente que no recuerdo en donde los compre, creo que en digi-key jejejejeje
Si que vayan muy sobrados con la I es bueno, aunque claro salen mas caros, pero en V con que auanten la de alimentacion y un poco mas es suficiente, porque la V la tienen que aguantar cuando NO conducen, es decir cuando NO trabajan, por tanto no se van a calentar.
Ahora bien, para activar el tiristor no se necesita una corriente pequeña en en gate?? pero ademas de eso no se necesita que exista un voltaje positivo entre el gate y el catodo??
Si es asi creo que no se activara con tu diagrama que me enviaste ya que si va a llegar la corriente al gate pero el voltaje entre el gate y el catodo en el mejor de los casos seria el mismo, caso contrario el voltaje en el gate seria un poco menor debido a la resistencia de 470 que ingresa en el opto, estoy en lo correcto??...
Si, en el tiristor que te pongo arriba necesita en el gate 1,5V y 30mA casi se podria cebar directamente con el PIC con una R para que cayeran los 3,5V que sobran, el problema es que los tiristores estan conectados directamente al secundario del trafo, que al ser una bobina nos puede meter ruido al PIC???. Este esquema es una modificacion de uno con TRIAC que hay en el foro tecnico aqui:
http://www.todopic.com.ar/foros/index.php?topic=13389.0
Estos calculos seguramente estan hechos para V=230V, no debe cambiar mucho hacerlo para un TRIAC que para tiristores en antiparalelo, ya que un TRIAC es eso dos tiristores en antiparalelo. en vez del MOCXXXX se puede poner optoacoplador NPN, o incluso un transistor NPN aunque este nos aisla menos del ruido del trafo.
Una pregunta para la red snubber le pusiste una resistencia de 100 y un condensador de 10uF/200V, supongo que el condensador tiene que ser ceramico y la resistencia en por lo menos medio vatio, estoy en lo correcto??
Si son los valores tipicos de las redes Snubber, cuando es con TRIAC tienen que ser sin polarizar porque conduce en ambos sentidos, aqui siempre conduciran en un sentido, creo que te vale cualquier C (que aguante 200V), la R de 1/2W vale tambien, la red Snubber solo ayuda a amortiguar los desfases que provocan las cargas inductivas, ayuda a tener en fase V e I, porque si no el tiristor no se apaga.
Ahora bien, luego de todo esto, que pasa si el voltaje que yo estoy generando es menor al de la red?? esto causaria que se desconecte el tiristor, estoy en lo cierto??
Pues no creo que se desconecte el tiristor, pero tampoco lo puedo asegurar, de todos modos en el tiristor solo van a caer 1,7V en conduccion, sobre 120V que hay ahi, no creo que esto cause ningun inconveniente.
Yo solo te puse la idea que se me ocurrio, que creo que para esto en concreto es lo mejor, a lo mejor hay que hacer algunas modificaciones, el tiristor si miras en datasheet, se puede cebar a 25 grados con 9mA y 0,7V, es decir si no fuera por el ruido del trafo se podria cebar directamente desde el PIC. Tambien se puede hacer con mosfet pero creo que saldra mas caro un mosfet para 200V, si te vas IGBT tambien sera mas caro, con un transistor normal para estas tensiones no se..., con diodos imposible porque no puedes controlar su conduccion cuando te conviene, los tiristores para esto son ideales, a mi parecer.
-
Disculpa la preguntadera, esque nunca he trabajado con tiristores y tengo muchas dudas ya que informacion la encuentro pero no muy clara, por ejemplo para la activacion en todo lado me dice lo siguiente
Corriente de Compuerta: Para un tiristor polarizado en directa, la inyección de una corriente de compuerta al aplicar un voltaje positivo entre compuerta y cátodo lo activará. Si aumenta esta corriente de compuerta, disminuirá el voltaje de bloqueo directo, revirtiendo en la activación del dispositivo.
Esto por lo que entiendo dice que inyectas corriente en el gate, cosa que nosotros lo hariamos mediante el optotriac, pero dice que ademas se tiene que aplicar un voltaje positivo entre la compuerta y el catodo para su activacion, y aqui es mi confusion... Esto quiere decir que tengo que tener mayor voltaje en el gate que en el catodo?? o simplemente que tiene que ser mayor a cero en ambos puntos (es decir voltaje positivo sin importar su magnitud en ambos puntos)?? no tiene que ver nada el voltaje en el anodo en ningun lado??
Saludos, Pedro.
-
Si Pedro, creo que va a haber un problema, es el siguiente, para que este polarizado correctamente tiene que haber + en anodo y - en catodo, y en este caso va a haber + en ambos en el semiciclo +, y negativo en ambos en semiciclo -, si la V del inverter fuera mayor que la de la red, es posible que estuviera bien polarizado por que la V en el lado del inverter seria mas positiva o mas negativa, pero solo es posible, no lo se seguro.
Ademas para que conduzca tiene que tener una I, se llama I latched (corriente de enganche) que en el datasheet de este que puse arriba no la especifica, por tanto deduzco que debe ser la misma que la Ih (I hold, corriente de mantenimiento) que son 40mA, la IL y la IH suelen ser casi iguales o un poco mayor la IL, es decir que si esta corriente baja de 40mA, porque la diferencia de potencial en los extremos no es suficiente para hacerla circular el tiristor se apagara.
Te explico un poco el funcionamiento del tiristor, cuando esta bien polarizado + en anodo y - en catodo, si se le aplica un pulso + en el gate (este es de entre 1 y 3V positivos con respecto al K, y aqui en en el K tenemos hasta 150V positivos, depende de cada tiristor), empezara a conducir siempre que la corriente que esta pasando en ese momento supere a la IL (I Latched) si esta corriente es inferior no entrara en conduccion, en cuanto entre en coduccion aunque se quite el pulso de gate seguira conduciendo siempre que la I sea superior a la IH (I hold), en cuanto sea inferior (es lo que pasa al final del semiciclo) dejara de conducir. Al gate no se pueden dar mas de 1,5V en el tiritor que te pongo arriba, por tanto no se como va a ser.
No se que dispositivo nos puede vale para esto :5] :5] :5] :5]
Saludos Tapi.
-
Ahi entramos nuevamente en un gran problema jejejejejejeje...
Ahora si me queda un poco mas claro el funcionamiento del tiristor... ahora que pasa si nos sincronizamos, se supone que la tension y la corriente es la misma... por tanto al ser la misma no se desconecta el tiristor ya que no es mas positivo el anodo que el catodo??.
Otra pregunta, que pasa si le damos mas de 1.5V al gate del tiristor?? se quema?? porque si es asi, la configuracion que tu me diste no funcionaria ya que entraria un voltaje mucho mayor a 1.5V al gate, con el opto-transistor es imposible calcular exactamente cuando es que esta pasando dicho voltaje... recuerda que eso va a depender del voltaje de la red que tambien es variable.
Pues yo tampoco se como hacer para que funcione correctamente jejejejejejeje
Saludos, Pedro.
-
Otra pregunta, que pasa si le damos mas de 1.5V al gate del tiristor?? se quema?? porque si es asi,
Si se quema, cada tiristor tiene una V de gate minima (la que necesita para conducir, con menos no se activa) y una maxima, si se sobrepasa se daña. En ese circuito casi toda la V de fase cae en esa R de 470, esta copiado de uno de aqui del foro tecnico y se ha probado muchas veces sin problemas. De todas maneras eso no seria problema, se puede cambiar ese circuito de cebado, si te puse ese es prcisamente porque se ha usado muchas veces sin dar problemas.
¿Tienes la masa del circuito y el neutro de la alimentacion unidos? Por que lo he consultado con alguien que sabe mas que yo y me ha dicho que seguramente por donde entra la tension es a traves de la masa, si las tienes unidas separalas y prueba. El transformador ¿No es un autotransformador verdad?.
Saludos Tapi.
-
Ya he hecho pruebas uniendo la masa con el neutro y sin unirlo y no pasaba nada.... Nop, el transfromador es un transformador normal
Mientras no tenia energia de la red el circuito funciono de pelicula... pero cuando conecte hizo un corto que mejor ni te cuento, casi casi se me salen lagrimas de iras y de impotencia ejejejejeje.... pero bueno gracias a eso pude darme cuenta que las ondas no estaban totalmente sincronizadas, asi que solucione eso y pues ahora funciona de maravilla y no he tenido que utilizar los tiristores, basto con la conexion del triac jejejejejejeje....
Ahora tengo otro problema... me solicitan que la energia que ingresa desde los paneles (variable desde 2V hasta aproximadamente 20V) no sea tan variable ya que eso varia muchisimo en la salida del circuito... he pensado poner 2 limitadores, uno para el humbral para el alto voltaje y otro para el humbral bajo... pero el invonveniente es que para esto manejamos una corriente muy grande asi que me encuentro en gran dilema jejejejeje
-
Mientras no tenia energia de la red el circuito funciono de pelicula... pero cuando conecte hizo un corto que mejor ni te cuento, casi casi se me salen lagrimas de iras y de impotencia ejejejejeje....
:D :D Es bueno llevar algun susto de vez en cuando, eso te pone alerta para la proxima vez, ahi solo teneis 120V aqui cuando llevamos sustos son a 230V.
pero bueno gracias a eso pude darme cuenta que las ondas no estaban totalmente sincronizadas, asi que solucione eso y pues ahora funciona de maravilla y no he tenido que utilizar los tiristores, basto con la conexion del triac jejejejejejeje....
¿Es decir ya funciona conectado a la red y con tension? ¿El triac lo pones como carga?
Ahora tengo otro problema... me solicitan que la energia que ingresa desde los paneles (variable desde 2V hasta aproximadamente 20V) no sea tan variable ya que eso varia muchisimo en la salida del circuito... he pensado poner 2 limitadores, uno para el humbral para el alto voltaje y otro para el humbral bajo... pero el invonveniente es que para esto manejamos una corriente muy grande asi que me encuentro en gran dilema jejejejeje
Pero ¿Eso no se alimenta desde la bateria? los paneles dan tension variable segun el sol que haga pero esa tension carga la bateria ¿No?.
Hombre cuando da 20V de tension de pico, como 12 es el 60%, habria que hacer una onda que de maximo solo tuviera un 60%, es decir todos los PWMs serian el 60% de como son ahora con 12V, pero claro para 19V ya seria otro % y para 18 otro !!!BUFF!!!, y cuando la tension sea inferior a 12V unicamente pararlo y esperar hasta que la tension aumente.
-
:D :D Es bueno llevar algun susto de vez en cuando, eso te pone alerta para la proxima vez, ahi solo teneis 120V aqui cuando llevamos sustos son a 230V.
Jajajaja pero pues ya casi que no tengo mucho tiempo para solucionar todo asi que me desepere un poquito jajajaja pero lo bueno es que ya todo esta de pelicula jejejejeje...
Y pues aca tambien manejamos 220V pero cuando es fase y fase, cuando es fase y neutro es 120V jejejejejeje
¿Es decir ya funciona conectado a la red y con tension? ¿El triac lo pones como carga?
Sip, ya funciona conectado a la red, tuve un poco de problemas hasta el sincronizarle perfecto el cruce por cero pero ahora ya es otra historia jejejejejeje
La pregunta del triac no te entiendo... la puse como te indique en algun mensaje anterior, conectando la fase de mi salida con la fase de la red.
Pero ¿Eso no se alimenta desde la bateria? los paneles dan tension variable segun el sol que haga pero esa tension carga la bateria ¿No?.
Hombre cuando da 20V de tension de pico, como 12 es el 60%, habria que hacer una onda que de maximo solo tuviera un 60%, es decir todos los PWMs serian el 60% de como son ahora con 12V, pero claro para 19V ya seria otro % y para 18 otro !!!BUFF!!!, y cuando la tension sea inferior a 12V unicamente pararlo y esperar hasta que la tension aumente.
Si se alimenta desde la bateria, pero tambien solamente desde los paneles... deberia poder funcionar con normalidad, cuando tengo conectada solamente la bateria no hay problema ya que es un valor fijo de voltaje, pero cuando estoy solo con el panel solar es el inconveniente... como tu mismo dices varia hasta 20V, intente hacer un circuito con 7805 y 2n3055, pero no funciono como deveria asi que opte por no hacerlo, y pues sigo con ese inconveniente, veamos que mas puedo hacer, pero bueno ya la parte de la generacion de la onda y de la sincronizacion con la red esta de pelicula.....
Ahora tu me das la solucion de variar el PWM, pero para eso tengo que sensar el voltaje de alterna en la salida o almenos el voltaje de continua en la entrada y meterla al PIC y ese seria otro inconveniente mas a solucionar ya que habria que comparar con otro voltaje y de donde saco ese?? jejejejejejeje, aparte recuerda que cuando se le pone carga el voltaje tambien varia jejejejejeje ah y ademas de todo esto esta el tema del espacio del pic, ya que no es infinito jejejejejeje..... seguire intentando solucionarlo sin meter señal al pic, pero si no me queda mas que hacerlo pues me tocaria hacerlo jejejejeje
Ah y tambien esta el tema de que cuando se mete carga el voltaje del panel solar cae, y si por si acaso esta en el limite de los 12V va a estar conecta y desconecta ya que el voltaje va a estar menor de 12 cuando este con carga, entonces el pic desconectara, y como ya esta sin carga entonces el voltaje subira, nuevamente el pic va a sensar que se encuentra con voltaje suficiente y lo conectara, y luego lo desconectará y conectara nuevamente y asi sucesivamente.
Saludos, Pedro.
-
Ahora tu me das la solucion de variar el PWM, pero para eso tengo que sensar el voltaje de alterna en la salida o almenos el voltaje de continua en la entrada y meterla al PIC y ese seria otro inconveniente mas a solucionar ya que habria que comparar con otro voltaje y de donde saco ese?? jejejejejejeje, aparte recuerda que cuando se le pone carga el voltaje tambien varia jejejejejeje ah y ademas de todo esto esta el tema del espacio del pic, ya que no es infinito jejejejejeje..... seguire intentando solucionarlo sin meter señal al pic, pero si no me queda mas que hacerlo pues me tocaria hacerlo jejejejeje
Pues el tema esta complicado. ¿Les has preguntado que nota te van poner? :lol: Por que con lo insolentes que se estan poniendo :D :D
Bueno cuando la V es mayor a mi me salen estos valores:
20V---60%
19V---63%
18V---66%
17V---70%
16V---75%
15V---80%
14V---85%
13V---92%
Como ves salen casi casi en escalones del 5%, 18V y 19V redondear al 65% y 13V al 90%, como ves de complicado reducir de 5% en 5% los PWMs, es decir el mismo programa valdria para todos, solo hay que ir escalando los DUTTYs de 5% en 5%.
Se mediria la V de la los paneles con el ADC ¿tiene ADC este PIC verdad? y mediante esta medida se traduciria al numero de veces que hay que repetir el DUTTY para cada tension, bueno tiene su complicacion, claro esta. Ademas los tiempos de los DUTTYs ya son muy pequeños y el 5% de algo muy pequeño...
¿Como tienes el programa en la ultima version? ¿Crees que se podria hacer esto directamente?, ¿O habria que hacer el programa de nuevo de otra manera diferente?
Para tensiones inferiores a 12V ya no lo tengo tan claro. :5] :5]
Saludos Tapi.
-
Si esos porcetajes serian siempre y cuando con 12V me den los 120V, pero bueno no se da eso jajajajajaja en fin es un poquito menos lo que me da...
Ahora mas bien lo que hice es mucho mas facil... mediante hardware estoy midiendo cuando se pasa de 15V en los paneles solares, de ahi en adelante simplemente aplicare el 80% de PWM, como hasta ahora no he registrado valores mayores a 19V, es decir que con 19V mas o menos me estaria dando 128V pero sin carga.... En lo que seria con carga aun no he visto valores superiores a 15,8V, asi que mientras este mayor a 15V que mas o menos son 127V pues siemplemente con 15,1 me va a bajar alrededor de 109V, que aun es buena jejejejejeje.... para esto simplemente tengo que sensar una pata comun y corriente en el Pic, lo complicado esta en que aun no llego a cambiar ni la mitad del programa y ya estoy con 1950 o algo asi de los 2054 de espacio jajajajajaja veamos que mas puedo hacer para bajar ese espacio, pero creo que asi es la solucion mas sencilla para no meterme con el ADC o con varios valores de porcentaje que variar jejejejeje....
Te comentare cuando termine a ver que mismo sucede jejejejejeje
Ah y con la nota pues no se aun jajajaja veamos que mismo sale luego de esto jejejejjejee
Saludos, Pedro.
-
Si esos porcetajes serian siempre y cuando con 12V me den los 120V, pero bueno no se da eso jajajajajaja en fin es un poquito menos lo que me da...
Si es poco lo que te falta ponle unos PWMs mas en la cresta, cuando conducen todo el tiempo, si quieres puedes subir todos los PWMs un poco, pero esto te dara mas follon.
Ahora mas bien lo que hice es mucho mas facil... mediante hardware estoy midiendo cuando se pasa de 15V en los paneles solares, de ahi en adelante simplemente aplicare el 80% de PWM, como hasta ahora no he registrado valores mayores a 19V, es decir que con 19V mas o menos me estaria dando 128V pero sin carga.... En lo que seria con carga aun no he visto valores superiores a 15,8V, asi que mientras este mayor a 15V que mas o menos son 127V pues siemplemente con 15,1 me va a bajar alrededor de 109V, que aun es buena jejejejejeje.... para esto simplemente tengo que sensar una pata comun y corriente en el Pic, lo complicado esta en que aun no llego a cambiar ni la mitad del programa y ya estoy con 1950 o algo asi de los 2054 de espacio jajajajajaja veamos que mas puedo hacer para bajar ese espacio, pero creo que asi es la solucion mas sencilla para no meterme con el ADC o con varios valores de porcentaje que variar jejejejeje....
Pues prueba asi, a ver que sale. Has escogido un PIC demasiado escaso y ademas casi en desuso, mira que yo soy de escoger PICs pequeños y exprimirlos :lol: :lol: pero tu me ganas :D :D
Para cuando la V cae por debajo, lo que se me ocurre es dejar de ondular y cargar bateria hasta que llegue a un nivel en que se pueda generar una buena tension, con un rele se pasaria bien a generar directamente del panel (si hay 12V o mas) y si hay menos a cargar bateria. Hice un esquema de como seria mas o menos.
-
Si es poco lo que te falta ponle unos PWMs mas en la cresta, cuando conducen todo el tiempo, si quieres puedes subir todos los PWMs un poco, pero esto te dara mas follon.
Exacto asi que mejor lo dejo asi no mas... por aca el voltaje es muy variable e incluso me he topado con casas q llegan apenas 98V, o sea con los 108 mas o menos que me sale con 12V estoy mas q bien jejejejeje, ahora lo que me piden es q no me pase de 127V por nada jejejejejeje.... Asi que mejor lo de la cresta le dejo ahi no mas jejejejejeje
Pues prueba asi, a ver que sale. Has escogido un PIC demasiado escaso y ademas casi en desuso, mira que yo soy de escoger PICs pequeños y exprimirlos :lol: :lol: pero tu me ganas :D :D
Si asi lo voy a hacer y mirar que valores me da jejejejejeje.... Ese pic es con el q nos dieron clases y tenia en stock asi que por eso lo escogi jejejejejeje.... Mira que para que ya este en desuso eso quiere decir que me estoy poniendo viejo jajajajajaja...
Y pues bueno por ahora ya escogi ese pic y tengo la placa impresa con ese asi que me tengo que acoplar a ese jejejejeje
Por ahora estoy en 2044 de 2048 de memoria, aunque ya pase un poco mas de la mitad del programa, pero segun lo que estoy viendo si puedo reducir un poco mas el programa en un sitio en particular asi que eso aplicare y vere si realmente me funciona como deberia jejejejejeje.
Para cuando la V cae por debajo, lo que se me ocurre es dejar de ondular y cargar bateria hasta que llegue a un nivel en que se pueda generar una buena tension, con un rele se pasaria bien a generar directamente del panel (si hay 12V o mas) y si hay menos a cargar bateria. Hice un esquema de como seria mas o menos.
Ahora estoy en mi trabajo asi que estoy trabajando en el codigo pero apenas salga intentare armar el circuito lo mas pronto posible y probarlo jejejejejeje
Para cuando la V cae por debajo no le meto nunca el voltaje en el PIC.
Para hacer como tu me dices, me limitaria a tener siempre la bateria y los paneles, aunq en tu circuito si no tuviese la bateria simplemente va a seguir pasando lo mismo, cuando estoy en los 12V o cerca, por poner un numero 12.2V, coje la carga, el pic lo sensa y cierra el rele, una ves tomada la carga, baja el voltaje de los paneles, por poner un numero 11,8V, entonces el pic sensa q bajo el voltaje y desconecta, y asi infinitamente hasta que aunmente el voltaje de los paneles considerablemente.
Mas bien lo que opte es hacerlo todo por hardware y algo asi como la imagen que te dejo...
V2 seria el panel solar, asi pues cuando tenga mas de 13,5 aproximadamente recien va a cerrar el rele, esto hara que cuando tome carga baje un poco el voltaje, y me va a pasar lo mismo que con tu circuito practicamente pero creo q al tomar carga es inevitable por lo pequeño del circuito jejjejejeje.
Por cierto, hay algun inconveniente en que utilice los 2048 de los 2048 de memoria?
Espero que no lo haya ya que seguramente estare demasiado ajustado y es muy posible que quede asi jejejejejeje
Saludos, Pedro.
-
Exacto asi que mejor lo dejo asi no mas... por aca el voltaje es muy variable e incluso me he topado con casas q llegan apenas 98V, o sea con los 108 mas o menos que me sale con 12V estoy mas q bien jejejejeje, ahora lo que me piden es q no me pase de 127V por nada jejejejejeje.... Asi que mejor lo de la cresta le dejo ahi no mas jejejejejeje
Si asi te va bien pues listo, que no pase de 127V es bastante facil, como con 12 te da 108, sale una relacion de transformacion de 9, es decir 127/9=14,11V esta es la tension a partir de la cual pasa de 127V, se podria alimentar del panel directo hasta ahi, y a partir de ahi que cargue la bateria y se saca la corriente de la bateria que es mas estable.
La bateria cuando esta cargada a tope ¿Tambien tiene un poco mas de 12V, verdad?
Aqui en España la corriente es bastante buena, pero yo tengo detectado lineas que alimentan industrias "grandes consumidoras" como fundiciones de acero, que en ciertos momentos tienen caidas de tension bastante grandes, estar en torno 180V cuando debian de tener 230V, pero son mas bien casos puntuales.
Si asi lo voy a hacer y mirar que valores me da jejejejejeje.... Ese pic es con el q nos dieron clases y tenia en stock asi que por eso lo escogi jejejejejeje.... Mira que para que ya este en desuso eso quiere decir que me estoy poniendo viejo jajajajajaja...
Si la serie 16F87X fue sustituida por la serie 16F88X que es mejor y mas barata, menos de mitad de precio cuuesta la 16F88X.
Y pues bueno por ahora ya escogi ese pic y tengo la placa impresa con ese asi que me tengo que acoplar a ese jejejejeje
Por la placa no hay problema, los pines son compatibles entre series, es decir la misma placa te valdra para cualquier PIC siempre que tengan el mismo numero de pines, claro.
¿A Ecuador no os envian samples (muestras gratuitas) los de Microchip? pidiendolas a traves de universidad casi seguro que te las envien.
Para hacer como tu me dices, me limitaria a tener siempre la bateria y los paneles, aunq en tu circuito si no tuviese la bateria simplemente va a seguir pasando lo mismo, cuando estoy en los 12V o cerca, por poner un numero 12.2V, coje la carga, el pic lo sensa y cierra el rele, una ves tomada la carga, baja el voltaje de los paneles, por poner un numero 11,8V, entonces el pic sensa q bajo el voltaje y desconecta, y asi infinitamente hasta que aunmente el voltaje de los paneles considerablemente.
Una vez que tienes el valor convertido con el ADC, le puedes dar los margenes que tu quieras por sofware, le puedes decir que por encima de 11V genere si la V de salida ves que vale.
Mas bien lo que opte es hacerlo todo por hardware y algo asi como la imagen que te dejo...
Ese hardware vale dinero, ocupa placa, lleva mas soldaduras, es decir te encarece el producto. El ADC con un divisor de 1 o 2 resistencias creo que ya valdria, y le das los margenes que tu quieras, pero como tu veas que te va mejor.
Por cierto, hay algun inconveniente en que utilice los 2048 de los 2048 de memoria?
Espero que no lo haya ya que seguramente estare demasiado ajustado y es muy posible que quede asi jejejejejeje
No creo que haya problema, nunca exprimi tanto un PIC :lol: :lol: y mira que a mi me gusta sacarles todo el jugo :lol: pero a usar toda, toda la memoria nunca llegue.