Pic reseting when switching mains current with relay


Closed Thread
Results 1 to 23 of 23
  1. #1
    Join Date
    Sep 2006
    Location
    Reading, UK
    Posts
    15

    Default Pic reseting when switching mains current with relay

    Hi,

    I'm trying to switch a mains current (240V AC) with a relay connecting via a transistor to my PIC (a 16f876a). The PIC is powered from a battery supply - 4 rechargeable AA NIMH cells providing 5V. That's powering the PIC directly - there's no regulator (I presumed there's no need for one).

    At the moment the mains supply is hooked up to a light. Everything usually works fine when switching the relay ON, but when the relay switches OFF the PIC resets almost every time.

    If I disconnect the mains supply the PIC can turn the relay on and off without any resets.

    The schematic is attached. The relays sit on a separate PCB immediately adjacent to the board with the PIC, and the two are connected with 2 inch wires. The wires with the mains current travel close by the PIC board - this isn't really avoidable. The relays are switching the Live wire of the mains supply.

    In addition to what you can see on the schematic I've added a 0.1uF cap between MCLR and ground. (Something I saw suggested somewhere.)

    I've read a lot about decoupling capacitors, zero crossing, ground planes, and so on! But I don't know where to start, short of randomly trying everything. It would be great to be able to systematically diagnose what's creating the problem, but I don't know how to go about doing this.

    Any suggestions are gratefully received.

    Thanks,

    Luke
    Attached Images Attached Images  

  2. #2
    Join Date
    Oct 2003
    Location
    holland
    Posts
    251


    Did you find this post helpful? Yes | No

    Default

    Put a snubber network over the relaiscontacts.
    (A snubber network is a resistor of 47 ohms in series with a 0,1 uF capacitor)
    Dont forget to take a capacitor what is suitable for mains voltages (240V~)
    And take a resistor of at least 1/2 watts.

  3. #3
    Join Date
    Jan 2006
    Location
    Istanbul
    Posts
    1,185


    Did you find this post helpful? Yes | No

    Default

    Luke,

    What are the fuse settings? BOD ? WDT?
    The code?


    -------------------------------
    Last edited by sayzer; - 3rd February 2007 at 14:35.
    "If the Earth were a single state, Istanbul would be its capital." Napoleon Bonaparte

  4. #4
    Join Date
    Sep 2006
    Location
    Reading, UK
    Posts
    15


    Did you find this post helpful? Yes | No

    Default

    mat: If I try what you suggest won't the resistor allow a current to flow all the time? Or have I misunderstood how it should be connected?

    sayzer: The code is definitely working ok - with no load across the relay it will switch on and off without any problems every time. It's only when there's a load across the relay that the pic will reset when the relay switches.

    The fuses are everything off except PWRT (or 0x3F31). (Incidentally I'm using a bootloader, so this is the fuse configuration it defaulted to...)

  5. #5
    Join Date
    Sep 2004
    Location
    montreal, canada
    Posts
    6,898


    Did you find this post helpful? Yes | No

    Default

    Yes the snubber will help!

    also
    • Make sure you have connected both PIC VSS pins.
    • Make sure you have disable the LVP mode
    • Set all unused i/o to input and connect ALL of them to GND
    • i would add a 47-220 uF on the PIC VDD line as well (close to the PIC)
    • Place your PIC away of your relay to see what's happen.

    How much current do you drive on the AC side?
    Steve

    It's not a bug, it's a random feature.
    There's no problem, only learning opportunities.

  6. #6
    Join Date
    Sep 2004
    Location
    montreal, canada
    Posts
    6,898


    Did you find this post helpful? Yes | No

    Default

    If you didn't change the default config fuse while loading the Bootloader firmware the first time, you can't modify them later in your code.

    Default for 16F876_04.HEX are HS OSC,Watchdog off, Power up ON, Brown out ON, LVP OFF.

    Maybe you could also try to reload the bootloader firmware but set the BrownOut to OFF... but, i think there's much more to check before...
    Last edited by mister_e; - 3rd February 2007 at 14:27.
    Steve

    It's not a bug, it's a random feature.
    There's no problem, only learning opportunities.

  7. #7
    Join Date
    Sep 2006
    Location
    Reading, UK
    Posts
    15


    Did you find this post helpful? Yes | No

    Default

    Thanks

    >> If you didn't change the default config fuse while loading the Bootloader firmware the first time, you can't modify them later in your code.

    I know! :-) But I'm quite happy with that fuse configuration right now... unless it's a factor in my problem.

    >> Yes the snubber will help!
    >>
    >>also

    >> * Make sure you have connected both PIC VSS pins.
    >> * Make sure you have disable the LVP mode
    >> * Set all unused i/o to input and connect ALL of them to GND
    >> * i would add a 47-220 uF on the PIC VDD line as well (close to the PIC)
    >> * Place your PIC away of your relay to see what's happen.

    Ok, I'll try all of the above. But I'd like to understand why connecting a 47 Ohm resistor across the relay output (as part of the snubber circuit mat suggests) is a good thing -- surely it'll allow a current to flow all the time. Or have I misunderstood something?

    Thanks again...

  8. #8
    Join Date
    Oct 2003
    Location
    holland
    Posts
    251


    Did you find this post helpful? Yes | No

    Default

    here is a drawing of a snubbernetwork .
    Attached Images Attached Images  

  9. #9
    Join Date
    Sep 2006
    Location
    Reading, UK
    Posts
    15


    Did you find this post helpful? Yes | No

    Default

    Oh! In series... Which is what you said to begin with (sorry, somehow misread your original post).

    Thanks again.

  10. #10
    Join Date
    Sep 2004
    Location
    montreal, canada
    Posts
    6,898


    Did you find this post helpful? Yes | No

    Default

    Mat suggested a RC snubber, so it's a resistor in Serie with a capacitor, so will flow only for a short period of time.

    You may find some explanation in the following document
    http://focus.ti.com/lit/an/slup100/slup100.pdf

    I would prefer to switch on the AC zero crossing to extend the relay contact lifetime...

    OR you may decide to use some SSR... a bunch more expensive...

    EDIT: ah crap, i'm late

    Also, probably a nice idea to place some 0.1 uF in parrallel with each realy coil + 100-470uF & 0.1uF on their VDD line.
    Last edited by mister_e; - 3rd February 2007 at 15:14.
    Steve

    It's not a bug, it's a random feature.
    There's no problem, only learning opportunities.

  11. #11
    Join Date
    Sep 2006
    Location
    Reading, UK
    Posts
    15


    Did you find this post helpful? Yes | No

    Default

    Thanks for all the suggestions - I'm blown away by how quickly people have responded.

    Ok, I've added the snubber and it's immediately eliminated 90% of the resets. I can now turn the relay on and off with the light connected and it works. Strangely I can still produce a reset if I switch the mains on and off at the socket, even when the light is NOT connected. And I've still had one or two random resets.

    I'll try connecting up the other VSS pin and adding the 47uF cap to the PIC power supply to see if that gets rid of the remaining resets.

    >> * Set all unused i/o to input and connect ALL of them to GND

    Is this something I should do whenever dealing with PIC, or only when dealing with mains voltages/currents? What's the rationale here? I'll try the other steps first since this is going to require me to produce a new PCB!

    >> Also, probably a nice idea to place some 0.1 uF in parrallel with each realy coil + 100-470uF & 0.1uF on their VDD line.

    ok, I'll do this too.

    One other question: While reading up on this I've heard lots of talk of ground planes. Is this simply a large area of copper on the board which is tied to ground, or does is have to be an entire layer on the board (impossible in my case since the board is single sided). And how do they help (and indeed could they help in my case)?

    Thanks again.

  12. #12
    Join Date
    Oct 2003
    Location
    holland
    Posts
    251


    Did you find this post helpful? Yes | No

    Default

    Then put also a snubber network on your mainssocket and mainswitch!

  13. #13
    Join Date
    Mar 2003
    Location
    Commerce Michigan USA
    Posts
    1,166


    Did you find this post helpful? Yes | No

    Default

    lsteele, I notice that your relays are powered by 5 volts. Is the source of the 5 volt supply the same as the PIC? If so I would have a separate supply for the relay source and a separate supply for the PIC. From what I have seen in the past you are working with electromechanical devices that have magnetic coupling and when you are opering the contacts the field is being coupled to the 5 volt supply the micro it is being powered from. If this supply for the relay source was separate and the ground paths are correct I see no problem with the operation of the relays switching the mains.

    Dave Purola,
    N8NTA

  14. #14
    Join Date
    Jan 2006
    Location
    Istanbul
    Posts
    1,185


    Did you find this post helpful? Yes | No

    Default

    I meant to say use BOD_OFF.

    Most likely!

    -----------------------
    "If the Earth were a single state, Istanbul would be its capital." Napoleon Bonaparte

  15. #15
    Join Date
    Jun 2006
    Location
    Bangalore, India
    Posts
    136


    Did you find this post helpful? Yes | No

    Question

    hello ,
    I'm having a similar problem.
    I have made a 7seg LED clock (PIC16F628 @ 4Mhz).
    The clock resets when i switch on the tube light in my room.
    The clock and the tube a not linked to one another in any way.
    I was using a wall adapter before to power it, but even after i replaced it with a 9 volt battery, the clock still resets when i switch the tube on.
    What could be the reason for this ? ? ?

  16. #16
    Join Date
    Sep 2004
    Location
    montreal, canada
    Posts
    6,898


    Did you find this post helpful? Yes | No

    Default

    without schematic and code it's hard to say.
    Steve

    It's not a bug, it's a random feature.
    There's no problem, only learning opportunities.

  17. #17
    Join Date
    Jun 2006
    Location
    Bangalore, India
    Posts
    136


    Did you find this post helpful? Yes | No

    Default

    This is the schematic . . .
    http://www.josepino.com/pic_projects...clock_4050.gif

    I have used transistors instead of the 4050 IC's .
    I have used PIC16F84A and not PIC16F628.
    I dont think its the code error cause if i keep the clock in another room, it doesn't reset.
    Last edited by shahidali55; - 11th March 2007 at 07:53.

  18. #18
    malc-c's Avatar
    malc-c Guest


    Did you find this post helpful? Yes | No

    Default

    Not sure if it has any bearing on this but I built a sequential light display that flashed mains light bulbs (240v) and didn't suffer any issues of the PIC resetting. I used solid state relays for the mains switching which are opto isolated from the mains. The only issue is that they aren't as cheap as traditional relays.

    Maybe you could use an opto isolator and thyristro / triac driver to do the same thing only a bit cheaper. Something like


    (ommit the 741 - as it wouldn't be needed for your circuit)

  19. #19
    Join Date
    Sep 2004
    Location
    montreal, canada
    Posts
    6,898


    Did you find this post helpful? Yes | No

    Default

    shahidali55

    Any capacitor close to your PIC and close to your 7 Segment display?

    Where are the current limiting resistor for the display.

    3.6-5.5V is that right?

    How about your configuration fuse?

    How the final 'gizmo' looks?

    Sure there's something that pickup noise. Is the software take care of this poor unconnected PIN 4?

    malc-c

    I think you misread something or... could be me too
    Steve

    It's not a bug, it's a random feature.
    There's no problem, only learning opportunities.

  20. #20
    malc-c's Avatar
    malc-c Guest


    Did you find this post helpful? Yes | No

    Default

    Quote Originally Posted by mister_e View Post

    malc-c

    I think you misread something or... could be me too
    Could of.. but I thought the problem was with the relay causing the PIC to reset when the lamp is switched

    Quote Originally Posted by lsteele View Post
    Hi,

    I'm trying to switch a mains current (240V AC) with a relay connecting via a transistor to my PIC (a 16f876a). The PIC is powered from a battery supply - 4 rechargeable AA NIMH cells providing 5V. That's powering the PIC directly - there's no regulator (I presumed there's no need for one).

    At the moment the mains supply is hooked up to a light. Everything usually works fine when switching the relay ON, but when the relay switches OFF the PIC resets almost every time.
    This was why I commented on the use of SSR's which I've used directly dirven from the PIC and don't suffer any issues of then PIC re-setting. However if I've missed the plot (quite plausable ) then sorry for taking the thread OT !

  21. #21
    malc-c's Avatar
    malc-c Guest


    Did you find this post helpful? Yes | No

    Default

    Just looked at the thread again and I think we're at cross purposes as there seems to be a thread with in a thread... I was responding to Luke's original question in post #1, and not shahidali55's in post #17

  22. #22
    Join Date
    Oct 2004
    Location
    Italy
    Posts
    695


    Did you find this post helpful? Yes | No

    Default

    Quote Originally Posted by lsteele View Post
    Won't the resistor allow a current to flow all the time? Or have I misunderstood how it should be connected?
    Hi,


    (Click to enlarge the picture)

    See also this PDF:
    http://www.redlion.net/Products/Grou...Docs/12027.pdf


    Best regards,

    Luciano

  23. #23
    Join Date
    Jun 2006
    Location
    Glasgow, Scotland
    Posts
    26


    Did you find this post helpful? Yes | No

    Default Pic reseting when switching mains current with relay

    Hi, There if ever I have to switch high current devices I always use an isolated supply on the pic side and a opto coupled darlington transistor to drive the power relay. This I think would solve your resetting problem

    hope this is of some help.
    kind regards john

Similar Threads

  1. Reducing PIC current to as low as possible...
    By FromTheCockpit in forum mel PIC BASIC Pro
    Replies: 6
    Last Post: - 18th November 2009, 04:28
  2. Replies: 24
    Last Post: - 7th November 2008, 04:41
  3. Serial Relays
    By tazntex in forum General
    Replies: 3
    Last Post: - 17th May 2007, 17:42
  4. Detecting mains current
    By lsteele in forum Schematics
    Replies: 3
    Last Post: - 13th January 2007, 14:48
  5. High current switching output
    By Tissy in forum mel PIC BASIC Pro
    Replies: 7
    Last Post: - 8th September 2005, 14:06

Members who have read this thread : 1

You do not have permission to view the list of names.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts