Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Noise handling algorithm in 8 wire touch screen

Status
Not open for further replies.

hanhao

Newbie level 2
Joined
Apr 26, 2007
Messages
2
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Activity points
1,297
Noise handling algorithm in 8 wire touch screen
here's how a touch screen work https://focus.ti.com/lit/an/slaa298/slaa298.pdf


Problem:
when the touch pen is stationary on a point and reading ADC values from a touch screen using the micro controller, the ADC values are never the same
eg, 1st reading might be 500, 2nd reading is 510, 3rd is 505. This causes the the cursor to drift about the touch point, not something nice for the user

Proposed solution:
Now what i did was to create a boundary circle around the point, effectively locking all other bad readings into the circle.

**broken link removed**

**broken link removed**
but the problem is that
- for slow moving touch pen speed movements, due to this boundary circle, the cursor jumps from 1 circle to another. very ugly and it disallows slow movement.
- the size of the boundary circle has to be expanded when the touch screen wears out because of more noise

does anyone have a better solution?
thanks in advance
- hanhao
 

Hi

Very interesting problem. I am afraid I have not read the linked file for lack of time, but I am giving you my opinion.

usually these noise related problems are solved averaging the sampled values during a time interval T. This time need to be calculated according to your needs, and you can make it adaptive, I mean, you can implement an algorithm to detect movement and make the time T smaller, (this can be applied also to your circles) and when it is static keep a longer T,

Now, it seems that for bad you have too much accuracy, I mean if you have a 8 bit ADC, you can try ignoring the last bit and using only 7.

since your application is real-time, you can not appy more developed techineques such as filtering.

Sal
 

thank u all for your suggestions! i managed to solve the problem with an alternate averaging method without any hardware alterations
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top