# Fuente regulable de 0 a 25v. - 2,5 amp con dispay LCD



## ciri

Me pasaron un diseño de una fuente que me llamo la atención porque tiene un display, y justo cayo en mis manos uno igualito al de la imagen, que ahora que lo recuerdo tengo que recuperarlo porque lo preste!.

-------------------------------------------------------------------------------------------------

Quién no se ha planteado en alguna ocasión montar una fuente de alimentación de laboratorio?. De hecho, sólo hay que teclearlo en Google para encontrar cientos de esquemas, montajes, proyectos completos y todo tipo de información.

Presentamos esta magnífica fuente de alimentación de 0 a 25V y 2.5A. 

La fuente está diseñada siguiendo como base un esquema publicado en el nº 260 de la revista Elektor con algunas modificaciones:

-Eliminación la salida RS232.
-Sustitución del 16F84 por un 16F873.
-Programación en Assembler.
-Ajuste de tensión y corriente con un encoder óptico.

Sólo hay que mirar el frontal para darse cuenta del acabado detallista de la misma:

Otras fotos de las "tripas" de la fuente:

Como se observa perfectamente en las fotos, la fuente está construida con dos circuitos, el de control y el de potencia.

El primero tiene todos los controles y gestiona el display LCD. Este es su esquema:

La otra PCB contiene los dispositivos de potencia:


----------



## ciri

Ambos esquemas, junto con los diseños de las dos PCB en Eagle, el código fuente en ASM y el fichero HEX para el PIC, pueden descargarse aquí:


----------



## ciri

Si no les gusta, solo completen la encuesta. no me ofendo.

Tenia algunas otras cosas interesantes.


----------



## anthony123

Esta excelente, solo me gustaria aislar la parte de medicion, alguien me puede ayudar?


----------



## ciri

Te referís, por lo que dice el display? que controla hasta 3 decimales?


----------



## anthony123

Exactly! Eso es a lo que me refiero ¿como apartarla?


----------



## ciri

Debe tener mucha mano por el tema de la programación del pic. que mis conocimientos dan lástima en ese campo.

Algún PIC fanático? que pueda ayudar?


----------



## Luis F

Hola y gracias por poner esta fuente, de verdad se ve MUY buena, solo dos pregunticas, a que se refieren cuando dicen aislar la parte de medición, y los botoncitos para que sirven sobre todo el de memorias?
Gracias por el aporte.


----------



## electroaficionado

La verdad se ve excelente.
No se que tal estara la circuiteria de la misma pero se ve bien armada y pensada. Se nota que cuidaron los detalles e invirtieron lo que corresponde.
Muy buen aporte!
Saludos.


----------



## ciri

Luis F dijo:
			
		

> Hola y gracias por poner esta fuente, de verdad se ve MUY buena, solo dos pregunticas, a que se refieren cuando dicen aislar la parte de medición, y los botoncitos para que sirven sobre todo el de memorias?
> Gracias por el aporte.



La verdad, no la armé, como ya dije!.

Apenas estuve mirando un poco, porque (insisto) la mayoría de la magia debe estar en el PIC.

Estoy intentando entender un poco esa mano!:


----------



## Rafael A. Lezama Morales

Excelente circuito...
¿Alguien ya la armó?
Si es así, que nos diga el costo aproximado...
Excelente Ciri


----------



## renoid

Hola a todos, he decidido armar esta fuente, ya que nos pidieron un proyecto para el Liceo, pero  antes quisiera aclarar algunas dudas, como por ejemplo el encoder óptico, es primera vez que lo veo, y quisiera saber si puede ser remplazado por algun otro componente, o que funcion hace en el ciruito.   Gracias, cuando lo termine les digo el precio, yo le calculo unos 100 $.


----------



## JV

Parece interesante la fuente, lo que veo a primera vista es que las pistas de potencia no son tales, son todas del mismo espesor. Es un detalle que muchos diseños omiten como importante.

Saludos..


----------



## Fogonazo

renoid dijo:
			
		

> ... como por ejemplo el encoder óptico, es primera vez que lo veo, y quisiera saber si puede ser remplazado por algun otro componente, o que funcion hace en el ciruito... .



Se puede reemplazar con una buena reforma por la ruedita de un mouse.

La funcion no me fije en el circuito, pero debe ser aumentar o disminuir algun valor en forma digital.


----------



## milroc

Hola amigos esta excelente fuente fue publicada en la revista elektor ,y fue reformada
por el amigo *valdorre* del foro "todopic" realizando un excelente trabajo a mi gusto es mucho
mejor que la original un saludo muy cordial

Luis de Quilmes


----------



## Lucio

Hola , muchas gracias CIRI por el aporte esta excelente el proyecto , queria consultarte si tienes algo asi parecido pero con otro microcontrolador , por ejemplo el Atemega8 de la compañia atmel , de antemano muchas gracias por tu respuesta.


----------



## ciri

no.. nada..

no conozco ese micro..


----------



## LUIS FERNANDO CUELLAR

Alguien me podria ayudar a conseguir el articulo de la revista con el ciruito original de la fuente... gracias


----------



## jrcl

LUIS FERNANDO CUELLAR dijo:
			
		

> Alguien me podria ayudar a conseguir el articulo de la revista con el ciruito original de la fuente... gracias



Aquí la tienes.

Salu2


----------



## Lucio

hola ,muchas gracias por el circuito, realmente es impresionante queria hacerles una consulta será posible que agreguemos la parte del display LCD a nuestras fuentes convencionales , las que ya hemos armado o implemntado como es mi caso yo ya poseeo una fuente dual de voltaje de -15 a +15 y eso me bota a las salidas , me gustaria reemplazar el clasico indicado analógico por uno digital queria saber si eso es posible, de antemano les agradesco la respuesta.


----------



## ETTORE

muy interesante, solo que hay que dedicarle tiempo


----------



## suguru_86

Una pregunta, de cuanto es el transformador?


----------



## ciri

> Presentamos esta magnífica fuente de alimentación de 0 a 25V y 2.5A.



El transformador puede que tenés esas características


----------



## RSelectronic

Voy a ver si la armo. Cualquier cosa aviso.Igual esta bastante buena la fuente.

Saludos.


----------



## 74157

Hola, que circuito integrado utilizas para visualizar en el display la tensión de salida? Montado una fuente de alimentación regulable de 1,2 a 24 Vy antes de empezar a soldar los componentes me gustaría que tuviera también un display para visualizar los voltios a la salida en cada momento..

Salguien me puede ayudar se lo agradecería


----------



## RSelectronic

Hola mirá puedes usar el CA3162, que es un ADC de tres dígitos, y un  CA3161, que es un conversor BCD a 7 Segmentos. También tiene la posibilidad de utilizarse como amperímetro. Te dejo los esquematicos.


----------



## juani2312

Hola, alguien pudo conseguir el encoder optico? A que precio estan?

Saludos!


----------



## Dr. Zoidberg

juani2312 dijo:
			
		

> Hola, alguien pudo conseguir el encoder optico? A que precio estan?
> 
> Saludos!



En GM Electrónica hay algunos modelos. Uno de 128 pulsos/revolución vale como $150.00 (50 dolares). A mi me parecen medio carísimos, pero...

Saludos!


----------



## juani2312

Wow, demasiado caro, por ese dinero y un poco mas me compro una fuente espectacular....No armada por mi, pero bueno....


----------



## suguru_86

Otra cosilla, que tipo de LCD tengo que comprar? Lo digo porque en el esquema el LCD tiene 14 pines y todos los LCD que encuentro (como estes: http://es.rs-online.com/web/search/searchBrowseAction.html?method=getProduct&R=5326385#header) tienen 16. Gracias!


----------



## mcrven

Oye chaval, revisa bien.
En el diagrama de la revista Elektor indicado en este mismo hilo, el conector para el LCD es de 16 pines. Significa que tiene Back-Light.

Saludos:


----------



## Astaroth_25

Hola, quisiera agradecer de antemano el aporde de ciri.
Estoy armando la fuente y tengo una duda sobre C7, C8, c12 y c13, no se si me podrian publicar esos valores.
Toy utilizando el pic 16f876, luego les cuento como me fue y en el encoder debo como va el pot y cual es su valor


----------



## cardos

se podria utilizar en sustitucion del 16f873 el 876 oprque en realidad es imposible conseguir el 873 en republica dominicana y si es asi espero por su repuesta gracias......................


----------



## Astaroth_25

hola a todos nuevamente, les cuento que ya casi termiino de ensamblar la fuente, pero tengo un ligero problema con el pwm, si alquien podria ayudarme plz, el problema es que necesito mantener el voltage de salida estable, por ejemplo si quiero una salida de 3v como hago para que no cambie y se mantenga.

gracias


----------



## cox

IMPRESIONANTE APORTE! me emocioné mucho porque es justo lo que quería hacer con mi fuente, agregarle un LCD para que muestre las salidas V/A selecionadas   

Queria saber:

si alguien tiene la parte 2 del pdf que subieron de la revista elektor? que han subido en este post y si alguien ya armó con exito esta fuente

un saludo!


----------



## mcrven

Amigo lucio,
a culquier fuente le puedes colocar lectores (voltímetro, amperímetro) digitales o analógicos.
Para cada fuente se requieren 2 instrumentos, en tu caso serían 4, si es que quieres lecturas simultáneas.
Para ambos casos, la solución más barata y simple de implementar, es la de comprar multímetros baratos, que los hay, y aplicarlos dentro de la caja de la fuente, uno fjado cómo voltímetro y el otro cómo amperímetro. Sólo vas a tener el trabajo de adaptarlos a la caja y separar las funciones que quieres mantener en cada uno.
Tienen la ventaja de que puedes conservar los selectores de escala, así podrás leer tensiones y corrientes muy pequeñas.

También hay voltímetros y amperímetros de panel, analógicos y digitales. Sólo que esta solución es más costosa que la que indiqué antes. Puedes verificarlo.

Saludos:


----------



## diego_z

aunque me parece un excelente trabajo el que realizo valdorre del foro todopic , que es el autor de esta reforma , yo tampoco pude conseguir el encoder %&$·..,/*    asi que voy a emprender la reforma del codigo para subir bajar solo con dos botones  comunes y silvestres , pero eso para mas adelante , por ahora para los que ya tienen la fuente armada y quieren agregarle un voltimetro les dejo el codigo y como se conecta el micro al lcd y su correspondiente entrada , otra ves entramos en el dilema de que el micro se la pasa de arriba solo mostrando una variable pero bue , espero les sirva , no olviden que el maximo es de 25,5 v


( me olvidaba como esta mcvren tiempo sin verlo)


----------



## neomatrix7776

hola lucio, te digo que con el microcontrolador puedes hacer lo que te salga del habla con la electronica, se podria usar un humilde pic 12f675 que tiene un convertidor analogico digital y luego se displayan, en el lcd .tambien puedes mantener el voltaje regulado, programar tu voltaje de salida digitalmente con 2 o mas decimales, si quieres mas precision entonces usar un converdidor ad de mas resolucion porque del pic es de 10 bits.


----------



## diego_z

neomatrix7776 dijo:
			
		

> hola lucio, te digo que con el microcontrolador puedes hacer lo que te salga del habla con la electronica, se podria usar un humilde pic 12f675 que tiene un convertidor analogico digital y luego se displayan, en el lcd .tambien puedes mantener el voltaje regulado, programar tu voltaje de salida digitalmente con 2 o mas decimales, si quieres mas precision entonces usar un converdidor ad de mas resolucion porque del pic es de 10 bits.


muy bien pero y como conectarias el lcd al 12f ya que tienes solo 6 e/s si lo haces trabajar con el reloj interno de las cuales una usarias para la lectura la otra solo se puede configurar como entrada y quedan solo 4 , o comunicas de que forma entre el pic y el lcd? interesante la propuesta, compartela con nosotros


----------



## neomatrix7776

con 4 salidas si se puede ,se tendria que usar un registro sipo por ejem 74164, 2 pines para data y clock los otros 2 para el enable y rs del lcd. otra opcion es usar otro microcontrolador con mas pines que tambien tenga converdidor ad.gracias.


----------



## diego_z

a eso iva que dos post mas arriba esta el ejemplo con pic de mas pines de todas maneras t agradesco el dato


----------



## felixls

Tengo un transformador de 24v 100W y estoy por armar esta fuente y estuve buscando información sobre como modificarla, alguien sabe que cambios hay que hacerle a la fuente para que se pueda regular entre 0 y 4 amperes? se puede?


----------



## felixls

Estoy haciendo unas modificaciones a la fuente luego de leer todo el hilo del foro original y de analizar todos los problemas que tiene.

Le estoy agregando estos cambios:

- Agregado de transformador de 12v 500ma para separar el consumo del PIC+encoder+lcd+ lo que sea.
- Agregado de disipador grande
- Agregado de ventilación forzada controlada por temp y amp, ya que como mencioné uso un transformador de 24v 4A.

Adjunto el diagrama con los cambios a la parte de potencia, cualquier ayuda para depurarlo será bienvenida.

*EDITO.*

Agrego el PCB, disposición de componentes y esquemáticos actualizados, mañana tiro la placa al cloruro, a menos que alguien me avise que algo está mal.

*Como mejora adicional, la placa es de una sola cara sin puentes *


----------



## diego_z

bueno , yo estuve viendo la parte del encoder mi intensión es eliminarlo y ponerle solo dos pulsadores , y manejar el pwm con eso , solo que no consegui el 873 y e estado haciendo algunas pruebas con un 876 pero en el tiempo que le dedique muy poco por cierto no e logrado que me genere naa , ya vere los resultados y lo comento luego


----------



## felixls

Me idea es rescribir el código para un 877, y agregarle muchas funciones, y coincido en cambiar el encoder por un teclado por ejemplo


----------



## Astaroth_25

Holas otra vez, les cuento que tengo un problema y no se si podrian ayudarme.
por alguna razon el circuito no me corre en proteus, no hay ningun cambio en la tension de salida cuando vario el pwm, si porfavor alguien podria ayudarme, hacer correr y decirme donde estan los errores, les dejo el esquematico (proteus) y codigo en pbp para el pic.
Gracias.


----------



## diego_z

bueno , les cuento que logre hacer interpretar como funciona el famoso encoder lo unico que hace es escribir un binario de dos bits en el puerto c , y estuve mirando el codigo , esta bastante aspero jaja ,creo que es mas facil poner un 12f675 para que haga la funcion del encoder solo con dos botones , no se que opinan de eso ?


----------



## felixls

Opino que al código ni lo voy a ver me parece, lo que estoy pensando hacer es reescribirlo en C.


----------



## felixls

Gente tengo la primer foto de como va:

Foto del gabinete, transformadores, disipador, turbina

Calculo que en 2 horas tengo el PCB con los componentes para mostrarlo


----------



## diego_z

jeje te felicito , yo por mi parte tengo la placa de potencia armada ( la del circuito propuesto por valdorre ) pero nunca la probe ya ya que nunca habia armado el encoder , pero anoche me propuce decifrar como trabaja ese aparatito , tal vez si ubiera leido el post original se me ubiera echo mas facil , pero tengo un problema , NO ME GUSTA LEER el monitor    pero por suerte ya logre que genere la señal y comprender como funciona esta bendita fuente jeje


----------



## felixls

diego_z dijo:
			
		

> jeje te felicito , yo por mi parte tengo la placa de potencia armada ( la del circuito propuesto por valdorre ) pero nunca la probe ya ya que nunca habia armado el encoder , pero anoche me propuce decifrar como trabaja ese aparatito , tal vez si ubiera leido el post original se me ubiera echo mas facil , pero tengo un problema , NO ME GUSTA LEER el monitor    pero por suerte ya logre que genere la señal y comprender como funciona esta bendita fuente jeje



Que bueno!, y podrías explicarlo para la comunidad?


----------



## diego_z

bueno es muy cencillo , cuando el encoder lo giras a derecha escribe en puerto 
  00      
  10     
  11      
  01      
  00    eso hace que se incremente un registro que luego le vuelca el resultado al CCPR1L y viseversa para bajar , les adjunto algo que estuve haciendo , aclaro no lo e probado en la realidad pero deberia andar yo le e dejado 500ms de t para hacer las pruebas
tambien aclaro que no soy muy bueno escribiendo    y que pensandolo bien el buen valdorre se esmero por hacer algo bueno bueno  , y nosotros le tiramos el trabajo al suelo , si miras el codigo te das cuenta que son horas de trabajo duro


----------



## felixls

Buenos, les paso mi avance, esta es mi placa de potencia.

Ayer a la noche estuve probando y regulando a groso modo y parece que funcionara pero no tengo el soft ya que el de valdorre no me funciona, ni en mi entrenador, ni en ningún simulador que tengo. Si alguien lo pudo hacer andar en proteus o pic simulator ide que me ayude por favor...







Más fotos en mi blog.


----------



## diego_z

en proteus me anduvo al pelo , con dos pulsadores primero y luego le puse es 675 , ya te subo una imagen de la pantalla


edito adjunto el archivo


----------



## felixls

Diego, está muy bien!

Voy a pensar en una alternativa al uso del 12f675, estoy reescribiendo el código del valdorre


----------



## diego_z

si a mi me parece un derroche usarlo solo para simular un enco , y tambien no usar el mismo 876 para que lo haga por si mismo , pero tocar un asm que otro tecleo no es nada facil hay que estudiarlo muy bien y pensar como penso el escritor jeje , pero tal vez lo logre en un par de dias , no dispongo de mucho tiempo por ahora


----------



## felixls

Diego, ya logré hacer andar la parte básica de la parte de potencia y regula 10 puntos, estos son los resultados que tuve:
PR2 = 0b11111001 ;
T2CON = 0b00000101 ;

//CCPR1L = 0b11111001 ;    // 1000hz 100%  -->  25.22v
//CCP1CON = 0b00111100 ;

//CCPR1L = 0b11100000 ;    // 1000hz 90%  -->  22.71v
//CCP1CON = 0b00111100 ;

//CCPR1L = 0b01111100 ;       // 1000hz 50%  --> 12.5v
//CCP1CON = 0b00111100 ;

//CCPR1L = 0b01001010 ;        // 1000hz 30%   -->   7.51
//CCP1CON = 0b00111100 ;

CCPR1L = 0b00110001 ;         // 1000hz 20%   -->  5.00v (me suena este voltaje... jeje)
CCP1CON = 0b00111100 ;

//CCPR1L = 0b00100000 ;            // 1000hz 14%  --> 3.266v
//CCP1CON = 0b00011100 ;

//CCPR1L = 0b00011000 ;
//CCP1CON = 0b00111100 ;       // 1000hz 10%  -->   2.495v

//CCPR1L = 0b00000010 ;       // 1000hz 1%  -->   0.590v
//CCP1CON = 0b00011100 ;

Estoy laburando sobre el soft, en realidad es más fácil de lo que se cree


----------



## diego_z

bien bien , lo estas haciendo en c ?   yo de c no entiendo nada jeje, buenos avances  che ,  yo tambien tengo algo armado en assembler que estaba usando para un cargador lipo seria cuestion de adaptarlo a esta placa ,


----------



## felixls

Las pruebas las hice en C, pero el código lo estaba haciendo en assembler, de manera más prolija


----------



## felixls

Diego, encontré este circuito de pablín de un potenciómetro digital con un DS1669, no tengo idea que tan fácil o dificil sería conseguirlo, pero parece una solución intermedia ya que provee 64 niveles con memoria.

Es decir 25v/64 nos da incrementos de ha 0.4v que te parece?

http://www.pablin.com.ar/electron/circuito/audio/digipot1/index.htm


----------



## diego_z

felixls dijo:
			
		

> Diego, encontré este circuito de pablín de un potenciómetro digital con un DS1669, no tengo idea que tan fácil o dificil sería conseguirlo, pero parece una solución intermedia ya que provee 64 niveles con memoria.
> 
> Es decir 25v/64 nos da incrementos de ha 0.4v que te parece?
> 
> http://www.pablin.com.ar/electron/circuito/audio/digipot1/index.htm


chem pero yo por lo menos en los circuitos de pablin no confio jeje ( por lo menos los de rf la mayoria tienen errores )
y por que no ponerle el 675 sale 6 pesos no usa cristal y ya esta el programa echo fijate que de ese micro nos estan sobrando dos entradas , que podriamos implementar un ajuste fino   , esa idea me gusta , el  ds no creo conseguirlo por estos pagos ops:


----------



## felixls

Yo conseguí el encoder mecánico,  que podría hacerse sacandolo de la ruedita del mouse.

Pensandolo bien, vale la pena revolver un mouse y armar el encoder, ya que luego es más cómoda la perilla que los botones, creo


----------



## felixls

Diego, este es mi avance sobre la reescritura del código en C de la fuente:

Estoy usando el compilador SDCC.

Estoy mostrando en el LCD el voltaje, pero en Hexadecimal.

Alguien sabe como mostrarla en forma decimal (00.000) desde C ?

*EDITO*.
Código va a estar disponible en mi blog.


----------



## diego_z

hola de c ni idea , es mas estoy intentando compilar un programa en ese lenguaje y me esta haciendo parir jaja, aprovecho para preguntarte , donde estan las librerias que pones en tu codigo
 #include "delay.h" 
#include "lcd.h" 
#include "serie.h" 
#include "adc.h" 
las creas vos o estan en el compilador , cual usas ? o las creas vos?yo estoy intentando con ccs
te pregunto porque encontre un programma que me intereso y me da error mi intensión es pasarlo a assem


----------



## felixls

El compilador es SDCC, no es específico de pic como el CCS, pero es gratis, el tema es que tenés que escribirte las librerías o traducirlas desde ASM.


----------



## felixls

*Análisis del encoder*.

Encoder para rotación continua con tres pines de salida. 
Dos canales de salida de código grey 

Genera tres secuencias binarias 11,10, 00, 01 por cada giro. 
Código Gray de dos bits
00
01
11
10

El encoder posee tres terminales, uno es el común, y los otros son las salidas digitales generadas por los contactos internos del dispositivo.

Genera la siguiente secuencia
Canal	   A	B
Estado1	0	0
Estado2	0	1
Estado3	1	1
Estado4	1	0

*Conección al PIC*
El terminal del medio va a masa y los otros dos se conectan cada uno a una resistencia de pullup de al menos 1k a VCC.







*Chuck McManis* y su publicación "Quadratrack: Using Mechanical Rotary Encoders" es el autor original de la lectura del encoder en el código ASM de Valdorre.

URL: http://www.mcmanis.com/chuck/robotics/projects/lab-x3/quadratrak.html

Citando al autor:
Para una interrupción de 1khz desde el TMR0 en un sistema a 4MHZ se debe hacer este código (en ASM):


		Código:
	

  ; * * * * * *
    ; * BANK 1 Operations
    ; * * * * * *
    BSF     STATUS,RP0      ; Set Bank 1
    MOVLW   B'0000010'      ; Set TMR0 prescaler to 8
    MOVWF   OPTION_REG      ; Store it in the OPTION register
    CLRF    TRISB           ; B all outputs
    BSF     TRISB,QUAD_A    ; Except for Quadrature inputs
    BSF     TRISB,QUAD_B
    ; * * * * * * * * * * *
    ; * BANK 0 Operations *
    ; * * * * * * * * * * *
    CLRF    STATUS          ; Back to BANK 0
    BSF     INTCON, T0IE    ; Enable Timer 0 to interrupt
    BCF     INTCON, T0IF    ; Reset interrupt flag
    BSF     INTCON, GIE     ; Enable interrupts


Luego el servicio de interrupción debería ser:



		Código:
	

; Interrupt Service Routine Pre-amble, save state, 
; reset status to BANK 0
INTR_PRE:        
    MOVWF   TMP_W           ; Copy W to temp register
    SWAPF   STATUS,W        ; Swap Status and move to W 
    MOVWF   TMP_STATUS      ; Copy STATUS to a temp
    CLRF    STATUS          ; Force Bank 0
;
; State is saved, and we've expended 3 Tcy plus the
; 3 Tcy (4 worst case) of interrupt latency for a total
; of 6(7) Tcy.
; 
; Now loop through until we've satisfied all the 
;pending interrupts.
;
ISR_0:
    ; ... test bit to see if it is set
    BTFSS   INTCON,T0IF     ; Timeer0 Overflow?
    GOTO    ISR_1           ; No, check next thing.
    ;
    ; Else process Timer 0 Overflow Interrupt
    ;
    BCF     INTCON, T0IF    ; Clear interrupt
    MOVLW   D'133'          ; Reset 1khz counter
    MOVWF   TMR0            ; Store it.
    CALL    QUAD_STATE      ; Check Quadrature Encoders.
    GOTO    ISR_1           ; Nope, keep counting
ISR_1:  
;
; Exit the interrupt service routine. 
; This involves recovering W and STATUS and then
; returning. Note that putting STATUS back 
; automatically pops the bank back as well.
;  This takes 6 Tcy for a total overhead of 12 Tcy for sync
;  interrupts and 13 Tcy for async interrupts.
; 
INTR_POST:
    SWAPF   TMP_STATUS,W    ; Pull Status back into W
    MOVWF   STATUS          ; Store it in status 
    SWAPF   TMP_W,F         ; Prepare W to be restored
    SWAPF   TMP_W,W         ; Restore it
    RETFIE


Como se puede ver, primero se recarga la interrupción TMR0 para asegurar un ratio de ticks (y además esta es la primer interrupción verificada!)
Luego se verifica el estado del encoder en la llamada a QUAD_STATE:



		Código:
	

;
; QUAD State
;
; A quadrature encoder traverse a couple of states
; when it is rotating these are:
;       00      |  Counter
;       10      |  Clockwise
;       11      |     ^
;       01      V     |
;       00  Clockwise |
;
;
QUAD_STATE:
    BCF     STATUS,C        ; Force Carry to be zero
    MOVF    PORTB,W         ; Read the encoder
    ANDLW   H'6'            ; And it with 0110
    MOVWF   Q_1             ; Store it
    RRF     Q_1,F           ; And rotate it right. 
        
    RLF     Q_NOW,F         ; Rotate Q_NOW Left
    RLF     Q_NOW,W         ; by two 
    IORWF   Q_1,W           ; Or in the current value
    MOVWF   QUAD_ACT        ; Store at as next action
    MOVF    Q_1,W           ; Get last time
    MOVWF   Q_NOW           ; And store it.
    ;
    ; Computed jump based on Quadrature pin state.
    ;
    MOVLW   high QUAD_STATE
    MOVWF   PCLATH
    MOVF    QUAD_ACT,W      ; Get button state
    ADDWF   PCL,F           ; Indirect jump
    RETURN                  ; 00 -> 00
    GOTO    DEC_COUNT       ; 00 -> 01 -1
    GOTO    INC_COUNT       ; 00 -> 10 +1
    RETURN                  ; 00 -> 11
    GOTO    INC_COUNT       ; 01 -> 00 +1
    RETURN                  ; 01 -> 01
    RETURN                  ; 01 -> 10 
    GOTO    DEC_COUNT       ; 01 -> 11 -1
    GOTO    DEC_COUNT       ; 10 -> 00 -1
    RETURN                  ; 10 -> 01
    RETURN                  ; 10 -> 10
    GOTO    INC_COUNT       ; 10 -> 11 +1
    RETURN                  ; 11 -> 00
    GOTO    INC_COUNT       ; 11 -> 01 +1
    GOTO    DEC_COUNT       ; 11 -> 10 -1
    RETURN                  ; 11 -> 11
INC_COUNT:
    INCF    COUNT,F
    MOVLW   D'201'
    SUBWF   COUNT,W
    BTFSS   STATUS,Z
    RETURN
    DECF    COUNT,F
    RETURN
DEC_COUNT
    DECF    COUNT,F
    MOVLW   H'FF'
    SUBWF   COUNT,W
    BTFSS   STATUS,Z
    RETURN          
    INCF    COUNT,F
    RETURN


Por mi parte encontré este útil link con explicación en lenguaje BASIC y diagrama de flujo que explica el funcionamiento de este tipo de encoders mecánicos:
http://www.scmstore.com/scm-hacker/num21/project/posicion.htm

Más tarde publico la versión en C.


----------



## felixls

*Simulación de encoder mecánico*:

Este es un código en C# que armé para simular la respuesta a los datos digitales que envía un encoder y sirve para ver como funciona.



		Código:
	

  public partial class EjemploEncoder : Form
  {
    private int Aviejo = 0;
    private int Bviejo = 0;
    private int A;
    private int B;
    private int pos;

    public EjemploEncoder()
    {
      InitializeComponent();

      lstHistorial.Items.Add("00");
      A = Aviejo;
      B = Bviejo;
    }

    private void Procesar()
    {
      A = Int32.Parse(txtBit.Text.Substring(1,1));
      B = Int32.Parse(txtBit.Text.Substring(0,1));

      //BA BA BA BA BA
      //00 01 11 10 00

      if (A == Bviejo && B == Aviejo)
        return;

      if (B == Bviejo)
      {
        if (A > Aviejo)
        {
          if (B == 1)
            Decremento();
          else
            Incremento();
          return;
        }
        
        if (B == 1)
          Incremento();
        else
          Decremento();
        return;
      }

      if (B>Bviejo)
      {
        if (A == 1)
          Incremento();
        else
          Decremento();
        return;
      }

      if (A == 1)
        Decremento();
      else
        Incremento();
    }

    private void Incremento()
    {
      lstHistorial.Items.Add(B.ToString() + A.ToString());
      pos++;
      txtAccion.Text = "Incremento";
      txtPosicion.Text = pos.ToString();
      Aviejo = A;
      Bviejo = B;

    }

    private void Decremento()
    {
      lstHistorial.Items.Add(B.ToString() + A.ToString());
      pos--;
      txtAccion.Text = "Decremento";
      txtPosicion.Text = pos.ToString();
      Aviejo = A;
      Bviejo = B;
    }

    private void txtBit_KeyDown(object sender, KeyEventArgs e)
    {
      if (e.KeyCode == Keys.Enter)
      {
        Procesar();
        txtBit.SelectAll();
      }
    }


  }


Adjunto el ejecutable.

Para hacerlo funcionar hay que ingresar de a uno los pares de bits de las entradas digitales, pulsar ENTER, y como respuesta se incrementará o decrementará un contador, que a nuestros fines de la fuente sería el voltaje/amperaje/memoria.


----------



## diego_z

bien felixls , le estas poniendo garras a la fuente jeje, y yo no me decido que controlador usar jeje , segui asi che seguro vas a buen puerto ,   

lo del enco es con los ccp?


----------



## felixls

ccp?


----------



## felixls

Gente, ya terminé el 100% del código en C de la fuente!     

Cambios a la fuente de Valdorre:

1- Código reescrito desde 0 en C del compilador gratuito SDCC.
2- Posibilidad de usar dos pulsadores con solo cambiar una línea.
3- Control de ventilación al superar 1A.
4- Placas a una cara sin puentes.
5- Señalización sonora y visual de corte de corriente.
6- Conectividad RS232 para obtener información y/o controlar la fuente.

y mucho más...


Más detalles en mi blog (http://sergiols.blogspot.com/).

saludos!


----------



## cavamo2

Señores:

Buena noches, aqui les dejo este link  ,donde se explica como hacer un encoder propio, que nos servira para esta fuente.
Es del mismo valdorre.  

Ahi les va para que no se maten la cabeza.  

http://www.flickr.com/photos/valdorre/?saved=1


----------



## diego_z

jeje, no es que alguien se este rompiendo la cabeza , es solo el espiritu de investigador el que lleva a cada uno de nosotros a tratar de armar e incluso mejorar lo ya echo por otro


----------



## cavamo2

He seguido con atensión el hilo de este foro y vi que podia aportarles este link, que investigando en la red encontre, es un grano de arena, para el entendimiento y mejoramiento del proyecto. 

Lo de "para que no se maten la cabeza"  lo dije en buena onda.

Efectivamente, la idea es entender y mejorar lo que ya ha hecho alguien mas.

Seguimos en el proyecto.


----------



## cox

felixls dijo:
			
		

> Gente, ya terminé el 100% del código en C de la fuente!
> 
> Cambios a la fuente de Valdorre:
> 
> 1- Código reescrito desde 0 en C del compilador gratuito SDCC.
> 2- Posibilidad de usar dos pulsadores con solo cambiar una línea.
> 3- Control de ventilación al superar 1A.
> 4- Placas a una cara sin puentes.
> 5- Señalización sonora y visual de corte de corriente.
> 6- Conectividad RS232 para obtener información y/o controlar la fuente.
> 
> y mucho más...
> 
> 
> Más detalles en mi blog (http://sergiols.blogspot.com/).
> 
> saludos!




Hola capo,

entiendo entonces que en vez de usar el encoder, podemos tener dos butonitos para seleccionar el V/A deseado? 

quiero decir, en vez de ser un encoder optico, la cosa seria con 2 pulsadores? seria genial eso  

saludos!


----------



## felixls

Cox, es exactamente así, en mi blog este sábado publico todo (código en C incluido), para construir la fuente.

saludos


----------



## jaio21

Hola a todos Soy nuevo en esta area aunq normalmente la electronica que aplico es Digital con PIC  y compuertas no me defiendo muy bien en electronica Analogica... y desearia q me ayuden 

actualmente estoy haciendo una fuente a mi gusto (sin ofender esta seccion) pues a base de esta FUENTE tome la idea de hacerme una fuente con GLCD. Es decir, "LCD Grafica" ya la tengo casi lista solo me falta hacer la lectura de Aperes y no se como medir en consumo de Amperes 

pues para hacer q aparesca en la GLCD nesesito una tension de 0v a 5V que seria variasion de la lectura de 00.00Amp a 10.00Amp

00.00A - 10.00A    =    0V - 5V

o q me identifique en este  circuito q parte es la q se encarga de esa lentura pues imagino q esa lectura de amperaje q aparece en las imagenes de esta Fuente es independiente a la lectura de voltaje... 

Agradeceria muchisimo de su ayuda pues tengo varios proyectos mas q subire al foro incluyendo este


----------



## cox

felixls dijo:
			
		

> Cox, es exactamente así, en mi blog este sábado publico todo (código en C incluido), para construir la fuente.
> 
> saludos



un capo total


----------



## diego_z

jaio21 dijo:
			
		

> Hola a todos Soy nuevo en esta area aunq normalmente la electronica que aplico es Digital con PIC  y compuertas no me defiendo muy bien en electronica Analogica... y desearia q me ayuden
> 
> actualmente estoy haciendo una fuente a mi gusto (sin ofender esta seccion) pues a base de esta FUENTE tome la idea de hacerme una fuente con GLCD. Es decir, "LCD Grafica" ya la tengo casi lista solo me falta hacer la lectura de Aperes y no se como medir en consumo de Amperes
> 
> pues para hacer q aparesca en la GLCD nesesito una tension de 0v a 5V que seria variasion de la lectura de 00.00Amp a 10.00Amp
> 
> 00.00A - 10.00A    =    0V - 5V
> 
> o q me identifique en este  circuito q parte es la q se encarga de esa lentura pues imagino q esa lectura de amperaje q aparece en las imagenes de esta Fuente es independiente a la lectura de voltaje...
> 
> Agradeceria muchisimo de su ayuda pues tengo varios proyectos mas q subire al foro incluyendo este



para hacerlo bien cencillo , puedes medir la caida de tensión sobre una resistencia de .01 ohm , y amplificarla 10 veces con un operacional por ej,, que es como se esta haciendo en este circuito , ya que veo manejas glcd te pregunto yo ahora , estoy renegando con una pantalla de siemens a55 , y e logrado enviarle un texto pero solo me lo muestra si le digo imagen invertida y despues de mostrarlo unos milisegundos la pantalla se queda negra , o  si le envio pantalla normal no me muestra nada , tenes alguna idea de que puede ser ? hace unos dias que no logro un joraca con esto


----------



## jaio21

diego_z dijo:
			
		

> para hacerlo bien cencillo , puedes medir la caida de tensión sobre una resistencia de .01 ohm , y amplificarla 10 veces con un operacional por ej,, que es como se esta haciendo en este circuito , ya que veo manejas glcd te pregunto yo ahora , estoy renegando con una pantalla de siemens a55 , y e logrado enviarle un texto pero solo me lo muestra si le digo imagen invertida y despues de mostrarlo unos milisegundos la pantalla se queda negra , o  si le envio pantalla normal no me muestra nada , tenes alguna idea de que puede ser ? hace unos dias que no logro un joraca con esto




   Si al principio me pasaba lo mismo con la GLCD comunes; amigo en este caso lo q tienes q hacer es enviar el texto en modo invertido y controlar el puerto de RESET sucede q el texto llega a la GLCD pero como el reset aun esta sin controlar te borrar el texto

ejemplo: 

Si tienes la pantalla en Normal osea fondo blanco... el texto q estas enviando se esta enviando en normal tienes q invertir el texto mira eso me pasaba con un programa q comense a usar mucho tiempo atras llamado LCDHype

Que lenguaje estas usando para manipular esta LCD del siemens a55?


----------



## cox

jaio21 dijo:
			
		

> diego_z dijo:
> 
> 
> 
> 
> para hacerlo bien cencillo , puedes medir la caida de tensión sobre una resistencia de .01 ohm , y amplificarla 10 veces con un operacional por ej,, que es como se esta haciendo en este circuito , ya que veo manejas glcd te pregunto yo ahora , estoy renegando con una pantalla de siemens a55 , y e logrado enviarle un texto pero solo me lo muestra si le digo imagen invertida y despues de mostrarlo unos milisegundos la pantalla se queda negra , o  si le envio pantalla normal no me muestra nada , tenes alguna idea de que puede ser ? hace unos dias que no logro un joraca con esto
> 
> 
> 
> 
> 
> Si al principio me pasaba lo mismo con la GLCD comunes; amigo en este caso lo q tienes q hacer es enviar el texto en modo invertido y controlar el puerto de RESET sucede q el texto llega a la GLCD pero como el reset aun esta sin controlar te borrar el texto
> 
> ejemplo:
> 
> Si tienes la pantalla en Normal osea fondo blanco... el texto q estas enviando se esta enviando en normal tienes q invertir el texto mira eso me pasaba con un programa q comense a usar mucho tiempo atras llamado LCDHype
> 
> Que lenguaje estas usando para manipular esta LCD del siemens a55?
Hacer clic para expandir...



Hola amigos como estan? les queria comentar que no es bueno desvirtual los threads; para hablar de algo en concreto como los LCD siemens deberian abrir otro hilo...

no se lo tomen a mal por favor, saludos cordiales


----------



## diego_z

hola  jaio21 pero que tonto soy jeje , tenes razon , cuando le daba texto invertido se veia por unos ms el texto y despues todo negro y en normal no se veia nada gracias por el dato , uso assembler

"cox" tenes razon  ops: ya no lo desvio mas


----------



## cavamo2

jaio21 dijo:
			
		

> Hola a todos Soy nuevo en esta area aunq normalmente la electronica que aplico es Digital con PIC  y compuertas no me defiendo muy bien en electronica Analogica... y desearia q me ayuden
> 
> actualmente estoy haciendo una fuente a mi gusto (sin ofender esta seccion) pues a base de esta FUENTE tome la idea de hacerme una fuente con GLCD. Es decir, "LCD Grafica" ya la tengo casi lista solo me falta hacer la lectura de Aperes y no se como medir en consumo de Amperes
> 
> pues para hacer q aparesca en la GLCD nesesito una tension de 0v a 5V que seria variasion de la lectura de 00.00Amp a 10.00Amp
> 
> 00.00A - 10.00A    =    0V - 5V
> 
> o q me identifique en este  circuito q parte es la q se encarga de esa lentura pues imagino q esa lectura de amperaje q aparece en las imagenes de esta Fuente es independiente a la lectura de voltaje...
> 
> Agradeceria muchisimo de su ayuda pues tengo varios proyectos mas q subire al foro incluyendo este




Hola jaio21 

La explicacion detallada que da Valdore (primer autor de las variacionesde la fuente) sobre el funcionamiento de la parte de medicion de corriente es la Siguiente:

"La medicion de la corriente es un poco complicada, ya que, en general, se requiere un puente resistivo en el lazo de realimentación de corriente.

La resistencia en el puente debe ser lo mas baja posible, de manera que no se reduzca el rango de tensión de salida de modo significativo y se pueda mantener la perdida de potencia lo mas baja posible, aunque por otro lado debe ser lo bastante elevado como para proporcionar la suficiente 
precisión y asegurar que el comparador pueda medir la caída de tensión en dicho puente (la cual es proporcional a la corriente).

En el montaje, el puente resistivo esta formado por 10 resistencias (R24-R33) conectadas en paralelo de 1 ohms 1%.

Con una corriente de salida de 2,5A significa que tenemos una caída de tensión en los extremos del puente de 0,25V. El amplificador operacional IC1B multiplica esta tensión por un valor de 20.

El comparador mide y controla esta tensión amplificada a través de R6.
Sin embargo, la corriente también tiene un efecto en la medida de tensión. El amplificador IC1D divide la caída de tensión en los extremos del puente resistivo por cuatro, e invierte dicha señal, lo que proporciona un valor de -0,0625 V. si la tensión de los extremos de los terminales de salida es de 25 V, entonces aparecerá una tensión relativa de 25,25 V entre la masa del circuito y el Terminal positivo de salida. El divisor de tensión formado por R21/R22 y R20 tienen un valor de 50K. 
En los extremos del divisor de tensión tenemos un potencial de 25,25 V + 0,0625 V=25,3125 V 
de los cuales, cuatro quintas partes (4/5) cae en los extremos de R21/R22, mientras que una quinta parte (1/5) cae en los extremos de R20. Por lo tanto en los extremos de R20 tenemos una caída de tensión de 5,0625 V. A la salida del divisor de tensión (unión de R20 y R22), tendremos, de este modo, 
una tensión exacta de 5 V con relación a la masa del circuito. Por lo tanto, la tensión a la salida del divisor refleja exactamente la tensión de salida independientemente de la corriente que circula en el puente resistivo. Sin esta compensación para el error de tensión, la tensión de los extremos del puente resistivo (de hasta 0,25 V), podría afectar a la medición de la tensión de salida. Por todo ello, para que el amplificador operacional pueda trabajar con tensión negativa relativa a masa, se necesita una fuente auxiliar negativa, la cual se obtiene de la tensión de entrada con la ayuda de D9."  

Si se hacen los calculos para medir los 10A, con una equivalencia lineal desde 0 hata 5v quedaria asi:  

Con las mismas 10 resitencias de 1 ohms 1%. ( 0,1 ohms ), con una corriente de 10 A, habra una caida de 1V sobre ellas.
Hay que tener en cuenta la potencia total que estas resistencias tendrian que disipar cuando circulen los 10A.
P=V x I ;        P= 1V X 10 A;       P= 10 Watios tendra que disipar  la resistencia equivalante Shunt. Asi que cada reisistencia tendra que ser minimo de 1W.
Modificando la ganacia de 20 a 5 del opam IC1B ( X5) nos cubriria el rango completo.
O sea , cambiando R13 y R14 de tal forma que la suma de las dos nos de 4K.    

Luego se envia al pin convertidor AD del pic y poderla visualizar en tu GLCD.  

Para que no se decalibre la medicion de voltaje en el IC1D, en vez de ser de ganancia 1/4, entonces corregiriamos con una ganacia de 1/16, cambiando los valores de R17 y R18 para que la suma de las dos nos de 16K. 

Ademas para soportar los 10 A tendrias que agregarle por lo menos otros 4 transistores de potencia TIP142 con las respectivas resistencias en serie en el emisor y los transistores de proteccion BC547 asociados a cada uno. 

Con estas modificaciones, no hay necesidad de cambiar el programa del pic, si se quiere utilizar este mismo diseño.

Espero que te sirva esta explicacion.  Cuando termines,tu proyecto, nos lo puedes compartir en el foro.


----------



## jaio21

cavamo2 dijo:
			
		

> jaio21 dijo:
> 
> 
> 
> 
> Hola a todos Soy nuevo en esta area aunq normalmente la electronica que aplico es Digital con PIC  y compuertas no me defiendo muy bien en electronica Analogica... y desearia q me ayuden
> 
> actualmente estoy haciendo una fuente a mi gusto (sin ofender esta seccion) pues a base de esta FUENTE tome la idea de hacerme una fuente con GLCD. Es decir, "LCD Grafica" ya la tengo casi lista solo me falta hacer la lectura de Aperes y no se como medir en consumo de Amperes
> 
> pues para hacer q aparesca en la GLCD nesesito una tension de 0v a 5V que seria variasion de la lectura de 00.00Amp a 10.00Amp
> 
> 00.00A - 10.00A    =    0V - 5V
> 
> o q me identifique en este  circuito q parte es la q se encarga de esa lentura pues imagino q esa lectura de amperaje q aparece en las imagenes de esta Fuente es independiente a la lectura de voltaje...
> 
> Agradeceria muchisimo de su ayuda pues tengo varios proyectos mas q subire al foro incluyendo este
> 
> 
> 
> 
> 
> Hola jaio21
> 
> La explicacion detallada que da Valdore (primer autor de las variacionesde la fuente) sobre el funcionamiento de la parte de medicion de corriente es la Siguiente:
> 
> "La medicion de la corriente es un poco complicada, ya que, en general, se requiere un puente resistivo en el lazo de realimentación de corriente.
> 
> La resistencia en el puente debe ser lo mas baja posible, de manera que no se reduzca el rango de tensión de salida de modo significativo y se pueda mantener la perdida de potencia lo mas baja posible, aunque por otro lado debe ser lo bastante elevado como para proporcionar la suficiente
> precisión y asegurar que el comparador pueda medir la caída de tensión en dicho puente (la cual es proporcional a la corriente).
> 
> En el montaje, el puente resistivo esta formado por 10 resistencias (R24-R33) conectadas en paralelo de 1 ohms 1%.
> 
> Con una corriente de salida de 2,5A significa que tenemos una caída de tensión en los extremos del puente de 0,25V. El amplificador operacional IC1B multiplica esta tensión por un valor de 20.
> 
> El comparador mide y controla esta tensión amplificada a través de R6.
> Sin embargo, la corriente también tiene un efecto en la medida de tensión. El amplificador IC1D divide la caída de tensión en los extremos del puente resistivo por cuatro, e invierte dicha señal, lo que proporciona un valor de -0,0625 V. si la tensión de los extremos de los terminales de salida es de 25 V, entonces aparecerá una tensión relativa de 25,25 V entre la masa del circuito y el Terminal positivo de salida. El divisor de tensión formado por R21/R22 y R20 tienen un valor de 50K.
> En los extremos del divisor de tensión tenemos un potencial de 25,25 V + 0,0625 V=25,3125 V
> de los cuales, cuatro quintas partes (4/5) cae en los extremos de R21/R22, mientras que una quinta parte (1/5) cae en los extremos de R20. Por lo tanto en los extremos de R20 tenemos una caída de tensión de 5,0625 V. A la salida del divisor de tensión (unión de R20 y R22), tendremos, de este modo,
> una tensión exacta de 5 V con relación a la masa del circuito. Por lo tanto, la tensión a la salida del divisor refleja exactamente la tensión de salida independientemente de la corriente que circula en el puente resistivo. Sin esta compensación para el error de tensión, la tensión de los extremos del puente resistivo (de hasta 0,25 V), podría afectar a la medición de la tensión de salida. Por todo ello, para que el amplificador operacional pueda trabajar con tensión negativa relativa a masa, se necesita una fuente auxiliar negativa, la cual se obtiene de la tensión de entrada con la ayuda de D9."
> 
> Si se hacen los calculos para medir los 10A, con una equivalencia lineal desde 0 hata 5v quedaria asi:
> 
> Con las mismas 10 resitencias de 1 ohms 1%. ( 0,1 ohms ), con una corriente de 10 A, habra una caida de 1V sobre ellas.
> Hay que tener en cuenta la potencia total que estas resistencias tendrian que disipar cuando circulen los 10A.
> P=V x I ;        P= 1V X 10 A;       P= 10 Watios tendra que disipar  la resistencia equivalante Shunt. Asi que cada reisistencia tendra que ser minimo de 1W.
> Modificando la ganacia de 20 a 5 del opam IC1B ( X5) nos cubriria el rango completo.
> O sea , cambiando R13 y R14 de tal forma que la suma de las dos nos de 4K.
> 
> Luego se envia al pin convertidor AD del pic y poderla visualizar en tu GLCD.
> 
> Para que no se decalibre la medicion de voltaje en el IC1D, en vez de ser de ganancia 1/4, entonces corregiriamos con una ganacia de 1/16, cambiando los valores de R17 y R18 para que la suma de las dos nos de 16K.
> 
> Ademas para soportar los 10 A tendrias que agregarle por lo menos otros 4 transistores de potencia TIP142 con las respectivas resistencias en serie en el emisor y los transistores de proteccion BC547 asociados a cada uno.
> 
> Con estas modificaciones, no hay necesidad de cambiar el programa del pic, si se quiere utilizar este mismo diseño.
> 
> Espero que te sirva esta explicacion.  Cuando termines,tu proyecto, nos lo puedes compartir en el foro.
Hacer clic para expandir...


Excelente tu explicacion me dejas sin palabras... sabia q la la medicion de corriente era atravez de las resistecia pero no sabia el como hacerlo es decir q para hacer la lectura de la corriente esta se media atravez de la MASA de la carga y Ademas de calcular esas resistencias R13 y R14 para un total de 4KΩ como me dices imagino q se te paso pero tambien tendre q cambiar a D9 pues el 1N5400 es de solo 3Amp asi q tendre q cambiarlo por uno de 12Amp(NTE5870) o mas   y sobre lo de cambio de tema por lo del a explicacion de la LCD  ops:  me deje llevar lo siento....


----------



## cavamo2

jaio21:

No solo hay que cambiar el D9, tambien hay que cambiar el puente rectificador, la capacidad total de los condensadores de filtrado C7, C8,C12,C13, el transformador principal y el disipador de los transistores de potencia, para adaptarlo al manejo de corrientes superiores a 10A.

Estamos hablando de "agrandar" la capacidad en corriente de la fuente, 4 Veces el de este diseño.

Si piensas utilizar el diseño de PCB que se propone, es muy necesario que ensanches o refuerces las pistas por donde va a circular toda esa corriente.

Aclaracion para jaio21: En este caso la medicion de corriente se hace con las resistencia puestas en el hilo de MASA, pero no siempre es asi; tambien se pueden ubicar en el hilo de Positivo.
Lo importante es medir el voltaje presente en las resistencias cuando circule por ellas determinada corriente. Solo es aplicar la ley de ohm.


----------



## diego_z

cavamo2 dijo:
			
		

> Aclaracion para jaio21: En este caso la medicion de corriente se hace con las resistencia puestas en el hilo de MASA, pero no siempre es asi; tambien se pueden ubicar en el hilo de Positivo.
> Lo importante es medir el voltaje presente en las resistencias cuando circule por ellas determinada corriente. Solo es aplicar la ley de ohm.


en ese caso como harias para medirlo con un pic


----------



## jaio21

diego_z dijo:
			
		

> cavamo2 dijo:
> 
> 
> 
> 
> Aclaracion para jaio21: En este caso la medicion de corriente se hace con las resistencia puestas en el hilo de MASA, pero no siempre es asi; tambien se pueden ubicar en el hilo de Positivo.
> Lo importante es medir el voltaje presente en las resistencias cuando circule por ellas determinada corriente. Solo es aplicar la ley de ohm.
> 
> 
> 
> en ese caso como harias para medirlo con un pic
Hacer clic para expandir...


      Es muy sencilo tengo q hacer es un escalar de 0000 a 1023 a travez de un puerto del PIC preconfigurado como A/D q eso representa la lectura de 00.00 a 10.23 amp

en el pic la entrada de A/D por ejemplo en el Puerto (PortA, 0) esta letura o escalar trabaja de 0v a 5v la cual octendre de un opam 

0V ---------------> 00.00 Amp
     --------------->
5V ---------------> 10.23 Amp

de esa manera se hara la convercion por llamarlo asi solo q como no estoy muy familiarisado con la electronica analogica me esta costando acondicionar circuito y creo q lo mas probable es q haga una nueva fuente desde cero y mas simplificada...

lo q tengo en mente es hacer es una fuente con:

1= Ajustes digital de voltaje (UP/DOWN) tomando como idea el Potenciometro digital el cual lo hare desde el mismo PIC16F877A
2= deteccion de consumo de corriente (Maximo de 10.23amp como mensione)
3= Visualizacion con LCD Grafica 128x64
4= Hare otro HILO de este tema pues sera una Fuente Total mente diferente a esta  

**********************************************************************************

Solucionado la medicion de Amperaje...    ya tengo todo claro el como Funciona los Opam


----------



## cavamo2

jaio21: "Solucionado la medicion de Amperaje...  ya tengo todo claro el como Funciona los Opam  "


Perfecto, cuentanos como van los progresos de tu proyecto.
Subelo al foro. Cualquier duda nos la comunicas.


----------



## jaio21

cavamo2 dijo:
			
		

> Perfecto, cuentanos como van los progresos de tu proyecto.
> Subelo al foro. Cualquier duda nos la comunicas.



Si asi sera varon solo q lamento decirles q hazta la semana q bien no dare detalles pues tengo q estudiar por cuestiones de mi Tesis....   pero si seran buenas noticias


----------



## felixls

Bueno muchachos, les presento mi fuente de alimentación digital basada en la de Valdorre:

En la semana voy a armar la documentación.

Lo último que le agregué fue que también controla la temperatura y de acuerdo a esta controla también el ventilador.







saludos.

PD.: Todos los archivos para armarla están en mi blog.


----------



## diego_z

excelente te felicito por tu creatividad y desempeño , muy bueno


----------



## jaio21

desearia saber una cosa la lectura de amperaje de 1,060A imagino que debe ser la del consuo de salida mi pregunta es ¿el amperaje que muestra abajo de 2,477A exactamente que es esa lectura ?
 a: el amperaje maximo de salida de la funte
 b:  que es exactamente
muchas gracias


----------



## felixls

Hola jaio21, 2.477A es el amperaje de corte, cuando el consumo sensado arriba es igual o superior a este límite, la fuente pone el duty en 0 (voltaje de salida a 0v), enciende el led y emite un sonido indicando la situación.

El amperaje máximo seleccionable dependerá del diseño de la fuente y los cambios en el código fuente.

saludos.


----------



## milroc

Hola felixs te felicito por tu trabajo excelente fuente,te comento hay una posibilidad que subas
donde van los componentes en las placas y los distintos conectores,desde ya muchas gracias

Luis de Quilmes


----------



## felixls

Gracias por avisarme milroc, ya lo agregué.

saludos.


----------



## jaio21

felixls dijo:
			
		

> Hola jaio21, 2.477A es el amperaje de corte, cuando el consumo sensado arriba es igual o superior a este límite, la fuente pone el duty en 0 (voltaje de salida a 0v), enciende el led y emite un sonido indicando la situación.
> 
> El amperaje máximo seleccionable dependerá del diseño de la fuente y los cambios en el código fuente.
> 
> saludos.



ahh ok entonces imagino q ese valor de 2,477A es Fijo y no varia.... 

y les adelanto q la fuentes q estoy haciendo estoy agregando nuevas funciones... aunq hare 2 versiones una con LCD 20x4 caracteres y una LCD Grafica de 128x64 lamentablemente no consigo las GLCD Graficas por lo cual comensare con la LCD 20x4 q hasta no conseguir la LCD grafca no podre comensar con ella   

entre las nuevas funciones mas detacadas y se q les gustrara tengra:

- Voltaje de -30V a 0V a 10 Amp (Asi es con *Voltage Negativo*)  
- Voltaje de 0 a 30V a 10Amp
- Limitador de Corte de corriente el cual no lo tenia claro (Ahora con la explicacionde  *felixls*)
- Y lo mas IMPORTANTE Voltajes Pregrabados en Memoria

     *- 05 posiciones de memoria con voltajes de 0 a (-30V) 
     *- 10 posisiones de memoria con voltajes de 0 a (+30V) por ser el P+ mas usado

Ambas Ajustables a gusto de cada quien


----------



## felixls

jaio21 dijo:
			
		

> ahh ok entonces imagino q ese valor de 2,477A es Fijo y no varia....



En realidad si se puede variar, entre 0 y 2.5A en mi caso, utilizando el botón amperes  y luego el encoder.


----------



## jaio21

felixls dijo:
			
		

> jaio21 dijo:
> 
> 
> 
> 
> ahh ok entonces imagino q ese valor de 2,477A es Fijo y no varia....
> 
> 
> 
> 
> En realidad si se puede variar, entre 0 y 2.5A en mi caso, utilizando el botón amperes  y luego el encoder.
Hacer clic para expandir...


ok entonces uno decide en q consumo de amperaje se hace el corte eso trabaja como cualquier sistema de proteccion simplemente... esta muy buena la idea    

mira sera posible q medes tu correo de msn si quieres por aqui o por msj privado


----------



## milroc

Gracias, Felixls por tu amabilidad una consulta la plaqueta de la fuente de Valdorre, se puede usar  O hay que modificarle algo, desde ya gracias

Luis


----------



## felixls

milroc, se puede usar tranquilamente la de Valdorre, ojo son diseños diferentes, lee bien el hilo ya que tiene algunos problemas como un corto en un capacitor.
El software podría funcionar con la placa de valdorre, pero tendrías que cambiar los pines y perder funcionalidades, como el control del ventilador, temperatura, etc.


----------



## milroc

Ok.Felixls Gracias


----------



## felixls

Para que se entienda un poco mejor el funcionamiento subí unos videos de la fuente funcionando en:


http://sergiols.blogspot.com/2009/04/fuente-de-alimentacion-digital-llegaron.html


saludos.


----------



## milroc

Hola, Felixls.una consulta en los diagrama del control de fuente hay algo que no entiendo, mi consulta es en los pines  15 y 16 en mi LCD van a la alimentación del back light. y en tu circuito veo que van al iscp y a las patas 39 y 40 del pic y en el esquema de tu LCD del diagrama las patas 15 y 16 van a una r100 y al control del back light. Espero  que me entiendas. Gracias

Luis

Disculpame ya me avive je.je....


----------



## felixls

Milroc, lo que sucede es que mi LCD los pines se numeran así:

16 15 1 2 3 4 5 6 7 8 9 10 11 12 13 14

Donde 16 y 15 son (catodo y anodo respectivamente) y luego como ves, comienza con el pin 1 hasta el 14.

Las patas 13 y 14 van al ISCP porque se comparte con el LCD las lineas de programación, es decir, mientras que no programes el LCD funciona ok, mientras programas se vuelve un poco errático por los datos que transmite el programador al PIC.
Luego que el programador terminó, resetea el PIC y se corre el nuevo programa y el LCD arranca nuevamente.

Supongo que esta disposición del backlight es algo extraña, que además me obligó a hacer un reruteo, ya que no tenía alternativa por la forma de conexión de la placa con el LCD (por medio de pines a 90grados enderezados con una pinza para que den la separación deseada con el gabinete).


----------



## milroc

OK.Felixls,entendido al 100x100,otra consulta tengo unos cuantos 3055 lopodre usar en lugar de los 143

haciendo las modificaciones en la placa.desde ya gracias.

luis


----------



## felixls

milroc, si comprendo bien, querés reemplazar los  TIP 142 por TIP 3055 ?

Si es así, si se podría, pero con las modificaciones correspondientes dado que el TIP3055 no posee algunos componentes importantes.

Tampoco disipa tanto como el 142 (125W contra 90W), por lo que te aconsejo un buen disipador y ventilador, el transformador para la parte de control + ventilador debería ser de por lo menos 12V 2A para que el ventilador tenga más fuerza.

saludos.


----------



## milroc

Ok,gracias y disculpa las molestias ahora me pongo armarla y te cuento.

Luis


----------



## iojan

Hola.
Primero que nada quisiera felicitarlos por el foro. Realmente muy interesante.
Les cuento que armar una fuente basándome en este diseño y agregándole algunas características:

- 2 tensiones fijas de 5 y 3.3V, con medición de corriente y protección de sobre corriente.
- 2 tensiones variables de 0 a 15V con la posibilidad de conectarlas en para tener +/- 15V o 30V (mediante relés)
- Botones de habilitación para cada salida.
- Corriente máxima en todas las salidas de 2,5 o 3A

Estas serian solo algunas, luego de tener bien armada la base se pueden agregar funcionalidades por programación...

Lo que quería preguntarles es si alguno sabe donde puedo conseguir (en argentina) a alguien que me bobine un transformador y, si es posible, que me den una idea de cuanto puede llegar a salir. 
El transformador debería tener 2 bobinados de 18V y 2 bobinados de 7.5V, todos de 3 o 4A. En total serian unos 200VA.

Debido a los costos y a que soy estudiante (o sea, presupuesto reducido ) pienso ir armando la fuente de a poco, pero se que el costo final va a ser menor que el de una fuente comercial de características similares.

Muchas gracias y saludos desde Argentina!


----------



## japifer

ufff quede cansado leyendo todo los post. jijijiji. bueno pero me quedo unaduda con respecto al funcionamiento de la fuente, y es que la corriente como se regula, osea el pic con el driver para hacer que este comporte como señal analogica le entrega de 0 a 5 vol al circuito para variar su corriente de 0 a 2.5 A ? o ase alguna transformadorrmacion ? en voltaje de 0 a 2.5 v ?
osea 0 Vol =====> 0 A
         5 Vol=====> 2.5A

 ? espero que me ayuden gracias


----------



## faliletri

Felicidades por el foro,es mi primer post,aunque curioseo por estos lares desde hace tiempo.
bien,el motivo de este es que me decidi por diseñar los pcbs de la fuente modificada por  felixls (empiezo a realizar mis primeros pinitos con el eagle layoud editor) y cual fue mi sorpresa que despues de arto de trabajar me encontre con la falta del archivo .hex para el chip 16f877. mi pregunta es si hay alguna forma de conseguirlo y si es que si,¿cual?.
espero no ofender a nadie con esta pregunta,gracias


----------



## Cacho

faliletri dijo:


> ...me encontre con la falta del archivo .hex para el chip 16f877. mi pregunta es si hay alguna forma de conseguirlo y si es que si,¿cual?







O al menos los primeros posts...

Saludos​


----------



## faliletri

lo siento,Cacho,no entiendo bien este lenguaje.En los primeros post de este hilo se hace referencia al diseño de valdorre,(creo) .Mi diseño de pcb es el de felixls con distinto pic.Este es el que me gustaria conseguir,gracias


----------



## Cacho

Uuups... Resulta que el tarado que leyó tu mensaje (o sea, yo) se salteó un pedacito por leer apurado. No leí la parte en al que decías que era la fuente de Felixls, perdón.
De todas formas aplica (poco más o menos) lo de leer el teme entero. Mensaje #73 

Saludos


----------



## master2009

voy atener q*UE* hacer mi version me animaron saben estaba decidido hacer la de valdorre pero bueno gracias a los comentarios del foro mejor me hare la mia en vase a lo q*UE* se ha aportado alforo felicidades a todos porq*UE* todos hacemos a foro


----------



## faliletri

hola Cacho,creo que antes de decidirme a postear por primera vez,leí todo este apartado unas tres veces,entre en el blog de felixs otras tantas y por alli tiene un comentario de hace unos meses diciendo que no se porque razon (sus motivos tendra)retiraba todos los codigos para programar los micros de todos sus proyectos.De todas formas,me he decidido por la version de Valdorre que esta completamente documentada.Gracias de todas formas a ti y a todo tu foro por la preocupacion mostrada.


----------



## Cacho

Como digas, pero parecería estar entero el proyecto en el blog de Felixls.

Saludos


----------



## rodrigo-99

antes ya habia armado una fuente sencilla con unos lm317 en paralelo para aumentar la corriente maxima, pero ahora qusiera agregarle un lcd para poder ver el voltaje y la corriente, tambein quisiera que se pudiera regular la corriente

La fuente aqui publicada me servira de mucho, se agradece

Otra cosa, en los laboratorios de mi escuela tienen una fuentes regulables de voltaje y corriente con un lcd, me parecen bien, lo malo es que a veces es dificil poner un valor exacto usando la perilla

Podria ser que aprovechando el lcd, podamos meterle un teclado para poder introducir digitalmete los valores deseados? esto controlado por un pic. Lo que no se como hacer es como controlaria el pic la salida de voltaje y corriente


----------



## cox

Cacho dijo:


> Como digas, pero parecería estar entero el proyecto en el blog de Felixls.
> 
> Saludos



No pero tiene razon, el autor lo ha quitado de su BLOG.. yo igualmente lo tengo completo porque lo había descargado antes de que lo borrara, pero no sé si es correcto compartirlo si el autor no quiere...

¿porque no intentan contactar con el autor directamente y explicarle que es realmente para hobbie/educativo el fin que le van a dar? 

un saludo,


----------



## Cacho

Mirá la fecha de mi comentario...
Es de hace más de dos meses. Pudo haberlo sacado en este tiempo.

Saludos


----------



## jorgeegarci

soy nuevo en el foro, me parecio muy buena la propuesta de esta fuente regulada
pienso armarla, gracias por ello.
saludos


----------



## mcaco

felixls dijo:


> Cox, es exactamente así, en mi blog este sábado publico todo (código en C incluido), para construir la fuente.
> 
> saludos


 

felixls entre en tu blog y me baje el zip pero no tiene los fuentes, me los podrias enviar?

Desde ya muchas gracias.


----------



## electropro

hola esa fuente esta muy buena pero es muy parecida a esta ya publicada aca.http://www.esteca55.com.ar/proye-fuente-valdorre.html


----------



## Arucard

Hola a todos no se nada aun de elctronica ni de programacion pero se puede remplazar los
transistores de pontencia para regular de 0 a 6 Amp?
Se puede poner un Lcd de 2x10?
Y en vez de utilizar un potenciometro de ese tipo se puede poner un DS1669?

Gracias de Antemano


----------



## master2009

ola me pueden ayudar quiero hacer una fuente de 12v fijos a 2 A pero quiero usar un regulador 7812 pero bueno como todos sabemos lo maximo de corriente es 1A ayuda porfa se que para elevar la corriente se necesita un transistor complementario de silicio como el tip 2030 pero quiero usar el tip 41c que es casi igual podian ayudame necesito un diagrama o una forma de hacerlo ya que no cuento con transfomador de 12v y comprar uno es muy caro ayuda grax de antemano


----------



## Fogonazo

master2009 dijo:


> ola me pueden ayudar quiero hacer una fuente de 12v fijos a 2 A pero quiero usar un regulador 7812 pero bueno como todos sabemos lo maximo de corriente es 1A ayuda porfa se que para elevar la corriente se necesita un transistor complementario de silicio como el tip 2030 pero quiero usar el tip 41c que es casi igual podian ayudame necesito un diagrama o una forma de hacerlo ya que no cuento con transfomador de 12v y comprar uno es muy caro ayuda grax de antemano


Si tu transformador *NO* entrega mas que 2 A no existe forma de aumentar la corriente.


----------



## PATAN2009

Felixls podrias compartir con los nuevos, tu material, por cierto, está muy bueno, ojala nuestros politicos fueran así de laboriosos, y nuestro país no andaría como anda.-
Dale, subí, aca en la comunidad, sabes la mano que les das a todos.-


----------



## jafra

hola felixls y a todos del foro bueno  esta fuente me parecio interesante  asiquela arme  pero no sinantes hacerle algunas modificaciones la hice simetrica pero cuando hice la simulacion  tube un problema, la regulacion es correcta no hayproblemas  el problema surge cuando pongo una carga  ala salida de baja resistenia  esto hace que latension baje de manera drasitca (de 25v a 17v)  bueno intente varias manerasde resolver eseproblema pero   nada y bueno quisiera saber si algunode uds tuvieron ese problema y  como lo solucionaron  no suvo mi nuevo esquema  porqueaun lo tengo en papel     espero puedan ayudarme a  lo olvidaba crei que ese problema   era por algun error enel simulador (isis) pero cuando arme la fuente  y puse la carga paso lo mismo .....


----------



## koko1

Hola jafra, estoy interesado en tus modificaciones a simetrica, tengo problemas con el codigo, ya que no se mucho de c, y bueno, me gustaria que compartas tu esquema para comparar, y el codigo, muchas gracias!! debo presentar esta fuente el sabado!! te agradeceria enormemente tu ayuda, un saludo.


----------



## felixls

Para los que deseen armar esta fuente desde hoy publico el código fuente y el compilado.

http://www.4shared.com/file/ea9rNJEZ/DigitalPowerSupply-src.html

La licencia es Creative Commons http://creativecommons.org/licenses/by-sa/3.0/



> You are free:
> to Share — to copy, distribute and transmit the work
> to Remix — to adapt the work
> 
> Under the following conditions:
> Attribution — You must attribute the work in the manner specified by the author or licensor (but not in any way that suggests that they endorse you or your use of the work).
> Share Alike — If you alter, transform, or build upon this work, you may distribute the resulting work only under the same or similar license to this one.



Que significa que son libres de copiar, distribuir, transmitir y modificar este trabajo, bajo la única condición de publicar el trabajo realizado, las modificaciones realizadas y reconocer el autor original ( y de donde fue obtenido).

saludos.


----------



## magolobo

Hola a todos, me llamo la atención el proyecto la verdad es fabuloso yo estoy contrullendo una fuente simetrica de 30 voltios pero tengo problemas con la parte del LCD para mostrar los valores de tención en pantalla , la verdad no soy muy bueno en eso de la programación, asi q*UE* si alguien conoce alguna pagina donde pueda encontrar informacion sobre esta parte se lo agradeceria la ayuda.
buscando por hay lo que encontre http://www.proteus.110mb.com/Simulaciones_pic_16f877a_p5.html es el LABORATORIO 19 justo lo q*UE* necesitava pero lamentablemente como veran el archivo esta protegido asi q*UE* me fregue jajaja si por hay algun esperto programador en el foro le ruego q*UE* me de una ayudita para tan siquiera comenzar en la programación.


----------



## abc1234

como es entra a tu blog para bajar los archivos d la fuente


----------



## Fogonazo

Link´s actualizados:

*Digital Power Supply 1.0*

Esquemas  y PCB
Código

*Digital Power Supply 2.0*

Esquemáticos
Archivo .HEX


----------

