Continue to Site

Welcome to our site!

Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

  • Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

16 X 2 LCD Noise Issue

Status
Not open for further replies.
So here is the summary I'll do the changes & let you know.

*Add an electrolytic cap 100uF on 5V side of the 7805

*Add a 1K resistor from the Enable line to GND on the LCD

*Tristate the LCD data & control pins after sending data

*Cut the GND track from the PCB & connect to 24V supply GND
 
Last edited:
...

*Cut the GND track from the PCB & connect to 24V supply GND

Do the same with the +24V feed to the relays. Do everything such that none of the relay coil current (or load currents being switched by the relays) flows along any trace or wiring on the PIC circuit board. The only common tie point for the relay circuits and the PIC circuits should be at the + and - of the 24V supply.

Do my fix first, and likely you won't have to do any of the others...

Or make it a science project. Do them one at time, and then undo them, noting if any single fix cures the problem. Inquiring minds want to know. If you add them cumulatively, then we won't know which might have fixed it alone...
 
Last edited:
Hi friends

I redesign the circuit & used optocouplers & made two grounds & gave two power supplies.One supply is driving PIC & other supply driving relays.From relays it will drive 230V contactors.

Still I got the problem, after finally I added snubbers across the contactor then the problem solved.But I have another 230V solenoid which is driving from 24V relay.When it operates the LCD still get blanked.I think the snubber values I used is not matching.

I used 120R & 0.1uF/400V cap,I also checked 120R & 1uF/400V but nothing helped.

Now I can drive the contactors without blanking the display.

But when it operated the solenoid the display gets blanked.

How can I solve my problem.
 
Did you try my fix first, or did you just go to the 2 power-supplies/opto-isolator directly?

You are sure that the pic/lcd assembly is powered via a transformer power supply where the pic Vss is isolated from earth ground? If you use an Ohmmeter to measure between Pic Vss and earth ground you should see ∞Ω.

How close is the pic/lcd to the solenoid? Is it practical to put the pic/lcd in it's own steel enclosure so that it is magnetically shielded from the solenoid?
 
Last edited:
Hi mike I tried the method you suggest but still I got the problem.

Note that whatever the noise comes the PIC never gets reset.I can see the other functions working well inside the program.But the LCD is blanked.

I can say the LCD is triggering due to noise.There is no doubt on that.

In my next deisgn I'm planing to put R/W pin to connect to PIC instead of connecting to GND.So after sending data to the LCD I can keep the R/W pin to read mode so false trigger will get omitted.

Your steel enclosure idea also great.

Some say put 4 pull-ups on LCD data lines (4bit mode).I don't know whats the point of that.You send logic highs to data lines & make trigger so the LCD shows characters.But when you fix pull ups its already having data so even a small noise on "E" line it will show incorrect data.I don't know whats the point of using pull-ups.
 
Last edited:
Don't know how many lines you have in the cable, but if you have enough you might try making it ground signal ground. Where each signal line has a grounds on each side of the signal.
 
What value pull-down resistor do you run on the E line, and does your micro keep the E line as an output at all times?

Also how have you handled the MCLR pin of the micro?
 
Hi ronv & Mr RB

I used LCD in 4bit mode.R/W pin always GND & my micro keep "E" & R/S pins & 4 data lines always as an output.I used 1K pull down resister on "E" line.

I use a ribbon cable 1feet from controller board to LCD board.Finally I also added a 68pF cap on "E" line near the LCD along with 1K pull down.

I use PIC 16F886 MCLR = 0, pin is floating in that case it is internally tied to Vdd.Note that my PIC is not resetting due to noise.It is working nicely during noise.
 
Last edited:
I think it is much more likely your PIC is resetting or glitching during noise than the LCD with your existing setup. :)

How have you decoupled the PIC 5v PSU from all the relay coil power and drivers?

Have you put a large delay from PIC reset before it initialises the LCD and writes to it? A 0.5 second delay there will tell you a lot.
 
As I said before the PIC never gets reseted.
I have a start button. If I press it only all the functions working. LEDs, Relays, LCD etc….

After a noise the LCD will blanked out. But all the other functions working LEDs, Relays etc…

I have a 2sec delay before I initializing the LCD after power up.

Is there any chance TRISTATING the PIC lines which goes to the LCD?
 
I still doubt you know what the problem actually is? Those LCDs are extremely stable, if your 5v to the display is stable. The data in the LCD can only change (be written) when you have the E line high, and since the E line is a PIC output pin and is low impedance (and you have a pulldown resistor and cap on E line) and your PIC holds the E line low at all times (unless writing) then there is another reason the LCD is getting bad data.

I would look at the 5v PSU rail, which s why I asked how you are decoupling the PIC and LCD 5v power from the rest of the equipment, a schematic would help a lot.

Then if the 5v is very good, and if you are sure the PIC is not resetting or brownout glitching etc, it becomes very likely there is a software issue. You should show your LCD code which shows the order you operate E,RS,RW etc and the time delays you are using.

It's also possible you have an actual bug in software that is simply writing trash characters to the LCD, and you thought it was a noise issue.
 
Hi Mr RB.

I was planing to get the control of the LCD "R/W pin" to the PIC (now just grounded directly).
Means after sending data to the LCD I'll make that pin "High" so it will be in "read mode".So even from a noise the LCD will not blanked.

I feel no use of with the new idea.Because the noise can even make it "low state" & change mode to write mode.

I just checked for decoupling caps I have used 0.1uF Mylar caps not ceramic caps. :(

Here is the decoupling circuit.I never used ceramic caps.
 
Last edited:
Maybe a few experiments:

Can you cover the cable with foil and ground the foil with a short wire?
Can you make a shorter cable to test if it is better?
You didn't respond to the ground signal ground idea so I guess you don't have spare wires in the cable?

If it is noise and not ground shift you only have two options:
Reduce the noise (snubbers)
Filter the noise. (shields. lower impedance lines, etc.)
 
Maybe a few experiments:

Can you cover the cable with foil and ground the foil with a short wire?
Can you make a shorter cable to test if it is better?
You didn't respond to the ground signal ground idea so I guess you don't have spare wires in the cable?

If it is noise and not ground shift you only have two options:
Reduce the noise (snubbers)
Filter the noise. (shields. lower impedance lines, etc.)

Very nice ronv.

I already cover the ribbon cable with a foil but didn't ground it :(
1Feet is the minimum length I can reduce down to :(
Ground Signal Ground is not possible because I don't have spare wires :(
 
You could try adding a resistor between C3 and the 7805 input. The resistor should drop about 1v (or even better 2v) when everything is running (so choose a resistor value to do that), then put another 1000uF cap directly between the 7805 input pin and gnd pin.

After that, it's software time.
 
You could try adding a resistor between C3 and the 7805 input. The resistor should drop about 1v (or even better 2v) when everything is running (so choose a resistor value to do that), then put another 1000uF cap directly between the 7805 input pin and gnd pin.

After that, it's software time.

Ok I'll add them.Whats the purpose of adding that resistor!!

I also finally noted not enough smoothing as well.I'll replace that 1000uF to 2200uF.
 
The resistor provides a high impedance against power pulses on the incoming power line. It is very little cost and can be helpful.

I'm still thinking you have a software issue and should show code where the relays and controlled and things are writtne to the LCD. :)
 
Status
Not open for further replies.

Latest threads

New Articles From Microcontroller Tips

Back
Top