Category: Scheidingstransformator V2

Scheidingstransformator V2

Bij mijn vorige scheidingstransformator had ik een gloeilamp in serie met de voedingskabel gezet om de stroom te begrenzen. Nu was er een lamp kapot gevallen tijdens het verwisselen en dacht ik er opeens aan dat die dingen binnenkort niet meer verkocht mogen worden. Daarbij kwam dat ik 140VA net iets te licht vind. Hoogtijd om een nieuwe te bouwen dus, deze keer met ingebouwde lampen zodat die niet meer kapot kunnen vallen.

Meetprint

Ik heb er deze keer voor gekozen om ook meteen een spanning en stroom meting in te bouwen. De spanningsmeting wordt gedaan door de spanning met een spanningsdeler lager te maken. Die spanning wordt dan gelijkgericht met een opamp gelijkrichter, afgevlakt met een RC filter en gaat dan in de AD converter van de pic. Bij de stroom meting wordt er spanning over een 0.1 Ohm serie weerstand gemeten. Die spanning wordt dan verstrekt, gelijkgericht, afgevlakt en ook ingelezen door de pic.

Scheidingstransformator V2 Schema Scheidingstransformator V2 print

Een foto van de meetprint:

Meetprint

 

Display

De pic stuurt op zijn beurt 6 7-segment displays aan. Om maar weinig draden naar het front paneel te moeten trekken heb ik een printje ontworpen dat met 3 draden (+2 voedingsdraden) 3 displays kan aansturen. De printjes werken op basis van 74HC595 ic’s. De ene ic stuurt de segmenten aan en de andere selecteert welk display gebruikt wordt.

Scheidingstransformator V2 Schema Scheidingstransformator V2 print

Een foto van de displayprint:

Displayprint

Displayprint

Om aan te geven of de lampen branden heb ik glasvezel gebruikt. In het frontpaneel zijn 3 gaatjes geboord waar de vezel in uitkomt, deze puntjes gaan licht geven als de lamp aangaat.

 

Voeding

Om deze 2 printen te voeden heb ik een aparte voedingsprint gemaakt. Deze levert +12V +5V en -12V. Ik heb hiervoor een transformator genomen die ik nog had liggen. Deze was echter 2*24V, om te voorkomen dat er teveel vermogen verstookt moet worden voor de displays heb ik voor de 5V gekozen voor een geschakelde spanningregelaar.

Scheidingstransformator V2 Schema Scheidingstransformator V2 print

Voeding

Algemeen schema

Zoals hierboven staat kan de stroom begrensd worden door gloeilampen in serie te zetten. Via 3 schakelaars kunnen de lampen in of uitgeschakeld worden. Met een 4 de schakelaar kunnen ze ook gewoon overbrugd worden. Om een te hoge stroom te voorkomen als de lampen overbrugd zijn en om de uitgang te schakelen heb ik een 2A automaat in serie te zetten.

Als 2 transformatoren “rug tegen rug” geschakeld worden dan verlies je spanning op de uitgang. Daarom heb ik nog een extra 60VA transformator erin gezet zodat de uitgangsspanning op + 15V of -15V gezet kan worden.

De te testen apparaten kunnen aangesloten worden via de 2 veiligheidsbussen of een stopcontact.

Kast schema

Foto:

Overzicht foto

Het frontpaneel:

Frontje

Als ik de PIC16F676 heb aangekregen kan ik beginnen met programmeren. (De 16F676 die ik had liggen blijkt niet meer te werken.)

Scheidingstransformator V2 Update

Nadat ik het dummyload project had afgemaakt, dacht ik eraan dat dit project dezelfde displays gebruikt. De code kon ik dus vrijwel compleet overnemen. Daarom heb ik dit project nu dan ook afgemaakt. De pic in dit project is uiteindelijk een 16F1825 geworden welke op 32Mhz draait.

http://image.elektronicastynus.be/58/1367676911.jpg

 

http://image.elektronicastynus.be/58/1367676912.jpg

 

De code:

'****************************************************************
'*  Name    : Scheidingstransformator V2                        *
'*  Author  : Stijn Coenen ElektronicaStynus.be                 *
'*  Notice  : Copyright (c) 2013 Stijn Coenen (Stynus)          *
'*          : All Rights Reserved                               *
'*  Date    : 01/05/2013                                        *
'*  Version : 1.3                                               *
'*  Notes   : This code is provided to you as is, without       *
'*          : warranty of any kind.Use at own risk!!            *
'****************************************************************
Device = 16F1825
Config1 FOSC_INTOSC, WDTE_OFF, PWRTE_ON, MCLRE_OFF, CP_OFF, CPD_OFF, BOREN_OFF, CLKOUTEN_OFF, IESO_ON, FCMEN_ON
Config2 WRT_OFF, PLLEN_ON, STVREN_OFF, BORV_19, LVP_OFF
Xtal = 8
'****************************************************************    
'EN: Declarations
'NL: Declaraties
    'Displays
        Symbol  Disp_klok       = LATC.5
        Symbol  Spanning_Data   = LATC.4
        Symbol  Spanning_Latch  = LATC.3
        Symbol  Stroom_Data     = LATC.2
        Symbol  Stroom_Latch    = LATC.1
        
    'EN: Measurement values
    'NL: Meetwaardes
        Dim     Spanning        As Word
        Dim     Stroom          As Word      
                  
        Symbol  N_Samp_U        = 15          
        Dim     GemU[N_Samp_U]  As Word          
        Symbol  N_Samp_I        = 15         
        Dim     GemI[N_Samp_I]  As Word
        
    'EN: Display values
    'NL: Display waardes  
        Dim     DispSpanning    As Byte
        Dim     DispStroom      As Byte
    
        Dim     DispArU[3]      As Byte 
        Dim     DispArI[3]      As Byte              
        
        Dim     IntCase         As Byte
        Dim     IntX            As Byte
        Dim     IntDisp         As Byte       
        
        Dim     X               As Byte
        Dim     Temp            As Byte
        
    'EN: Settings AD converter
    'NL: Instellingen AD converter 
        Declare Adin_Res        10 
        Declare Adin_Tad        FRC  
        Declare Adin_Stime      250         
        
    'EN: Connections 7 segment displays on the 74HC595 pcb's
    'NL: Aansluitingen 7 segment displays aan de 74HC595 op de printjes    
                            'dPecgbfa
        Symbol  Nul       = %01001000      '       a        '0         
        Symbol  Een       = %11101011      '     #####      '1
        Symbol  Twee      = %01010010      '     #   #      '2
        Symbol  Drie      = %01100010      '   f # g # b    '3
        Symbol  Vier      = %11100001      '     #####      '4
        Symbol  Vijf      = %01100100      '     #   #      '5
        Symbol  Zes       = %01000100      '   e # d # c    '6
        Symbol  Zeven     = %11101010      '     #####      '7
        Symbol  Acht      = %01000000                       '8
        Symbol  Negen     = %01100000                       '9
        Symbol  Uit       = %11111111                       'Out
        Symbol  Streep    = %11110111                       'Bar
    'EN: Connections of the transistors On the 74HC595 pcb's
    'NL: Aansluitingen Transistoren aan de 74HC595 op de printjes
        Symbol  disp1     = %00001100  
        Symbol  disp2     = %00001010  
        Symbol  disp3     = %00000110             
       
    'EN: Misc
    'NL: Diverse
        Symbol  TMR0IF    = INTCON.2
        
        'Tris registers 
        TRISA             = %11111111
        TRISC             = %00000000
         
        All_Digital       = true        
    
        On_Hardware_Interrupt GoTo Interrupts
'****************************************************************    
Opstarten:     
    'EN: Set clock to 64 Mhz
    'NL: klok instellen op 64 Mhz
    OSCCON  = %11110010

    Clear 'ram

    'EN: Timer0 setup to drive the displays
    'NL: Timer0 instellen om de displays aan te sturen
    OPTION_REG  = %00000111
    
    INTCON      = %10100000
    
    'EN: Settings AD converter
    'NL: Instellingen AD converter     
    ADCON1  = %10110000
    
GoTo Main         
'****************************************************************   
Interrupts:
    Context Save
    If TMR0IF = 1 Then
        TMR0IF = 0      'Reset flag
        TMR0   = 230'   'Preloard timer

        'EN: Loading data for the display that is driven this interrupt
        'NL: Data inladen voor het display dat deze interrupt wordt aangestuurd
        DispSpanning    = DispArU[IntCase]
        DispStroom      = DispArI[IntCase]
        
        'EN: Get the transistor settings and set the decimal point
        'NL: Transistoren info uitlezen en de comma aanzetten
        Select IntCase 
            Case 0
                IntDisp = disp1       
            Case 1          
                IntDisp = disp2 
            Case 2          
                IntDisp = disp3         
                DispStroom.6    = 0 
            Case Else
                IntDisp = 255
                IntCase = 0                
        EndSelect
                           
        'EN: Outputting transistors data 
        'NL: Transistor data inklokken
        For IntX  = 0 To 7
            Spanning_Data   = IntDisp.7
            Stroom_Data     = IntDisp.7
            Disp_klok       = 1           
            IntDisp         = IntDisp * 2             
            Disp_klok       = 0
        Next    
        'EN: Outputting display data 
        'NL: Display data inklokken
        For IntX  = 0 To 7
            Spanning_Data   = DispSpanning.7
            Stroom_Data     = DispStroom.7
            Disp_klok       = 1
            DispSpanning    = DispSpanning << 1
            DispStroom      = DispStroom << 1     
            Disp_klok       = 0
        Next               
             
        'EN: Latch data to the outputs of the 74hc595 ic's
        'NL: Data naar de uitgangen van de 74hc595 ic's latchen
        Spanning_Latch  = 1
        Stroom_Latch    = 1     
        
        'EN: Set counter for next interrupt
        'NL: Teller bijtellen voor volgende interrupt
        Inc IntCase
        If IntCase > 2 Then
            IntCase = 0
        EndIf
        
        Spanning_Latch  = 0
        Stroom_Latch    = 0 
    EndIf
               
    Context Restore
Return
'****************************************************************     
Main:
    While 1 = 1        
        'EN: Voltage measurement
        'NL: Spannings meting
        For X = (N_Samp_U - 1) To 1 Step -1    
            GemU[X]     = GemU[X-1]      
        Next
        Spanning        = ADIn 0
        Spanning        = Spanning /10 
        Spanning        = Spanning - 4.95 
        GemU[0]         = Spanning * 3.25'3.03
        Spanning        = 0
        For X = 0 To (N_Samp_U - 1)    
            Spanning    = Spanning + GemU[X]
        Next 
        Spanning        = Spanning / N_Samp_U
        
        'EN: Current measurement
        'NL: Stroom meting    
        For X = (N_Samp_I - 1) To 1 Step -1    
            GemI[X]     = GemI[X-1]      
        Next
        Stroom          = ADIn 1   
        Stroom          = Stroom - 55 'Offset
        
        GemI[0]         = Stroom /4.28
        Stroom          = 0
        For X = 0 To (N_Samp_I - 1)    
            Stroom      = Stroom + GemI[X]
        Next 
        Stroom          = Stroom / N_Samp_I

        'EN: Calculate value's for on the display
        'NL: Meetwaardes naar display berekenen
        For X = 0 To 2 
            Temp = Dig Spanning, X
            DispArU[X] = LRead Cijfers + Temp       
            Temp = Dig Stroom, X 
            DispArI[X] = LRead Cijfers + Temp
        Next 
        
        'EN: Delay for slower display update
        'NL: Wachten om het display niet te snel te updaten
        DelayMS 75
    Wend
'****************************************************************   
Cijfers:-  
LData Nul, Een, Twee, Drie, Vier, Vijf, Zes, Zeven, Acht, Negen, Uit, Streep     
End

Bestanden:

Code file: Download

Hex file: Download

PCB bestanden meter print: Download