View previous topic :: View next topic |
Author |
Message |
s_mack
Joined: 04 Jun 2009 Posts: 107
|
Question about input (button) and variable resistance |
Posted: Fri Apr 02, 2010 12:23 pm |
|
|
Hi.
PIC18F4480
PIN_B4 input is connected to a simple momentary pushbutton switch and our code treats it as a simple on/off. Can it be used for a variable resistance type switch? I'm not sure exactly how to describe/word my question. Basically, a customer has a different physical switch that they want to hook up to our device. They sent me the switch for testing and I see (using a simple ohmeter) that instead of going to zero ohms like our original switch, it brings it down to 85. With our setup as-is, it doesn't recognize the button push. This switch also has two other buttons on the same wires and they bring the values to 215 and 400 respectively. I'm really intrigued because if I can make 3 switches out of one, it opens up a whole world of possibilities for our device. But I don't want to change anything physically... just with firmware.
I'm sorry... I'm not the engineer that designed it and I really have very limited knowledge of the electronics side. I have modest skills with the firmware programming though. My hope here is that, with guidance, I can make the changes necessary if it is in fact possible to do what I describe with the current hardware.
I'm sure I need to post more info for you to answer but I don't know what to post.
Thanks for any guidance and pointers.
Steven |
|
|
PCM programmer
Joined: 06 Sep 2003 Posts: 21708
|
|
Posted: Fri Apr 02, 2010 1:14 pm |
|
|
Right, but what's manufacturer and part number of the switch ?
Post a description of the existing external circuit used with the switch.
Does your client want some kind of 3-way switch, or is this simply
a switch that has a higher "on" resistance because it's a very low cost
switch ? |
|
|
s_mack
Joined: 04 Jun 2009 Posts: 107
|
Re: Question about input (button) and variable resistance |
Posted: Fri Apr 02, 2010 1:30 pm |
|
|
As stated initially: s_mack wrote: | I'm sorry... I'm not the engineer that designed it and I really have very limited knowledge of the electronics side. I have modest skills with the firmware programming though. My hope here is that, with guidance, I can make the changes necessary if it is in fact possible to do what I describe with the current hardware.
I'm sure I need to post more info for you to answer but I don't know what to post.
|
So please bear with me
Quote: | Right, but what's manufacturer and part number of the switch ? |
This is the simple one originally designed for the device
As for the "3-way" one... proprietary. Its an automotive switch made specifically for a certain car by Delphi.
Quote: | What's the description of the existing external circuit used with the switch ? | I'm sorry, I don't really know what you're asking.
Quote: | Does your client want some kind of 3-way switch, or is this simply
a switch that has a higher "on" resistance because it's a very low cost
switch ? |
Well, both... sort of. The customer has a very expensive (but free since he already has it) 3-way switch that fits his car and wants to use it for our device. He's actually wanting to ignore the other 2 buttons and just use it as a simple pushbutton in place of ours. It won't because it has a higher "on" resistance. But when I saw how it worked, and saw that there might be a possibility of having 3 buttons where we previously only had one... well, if that is possible then it opens up a world of new possibilities with how our device works. But the point of posting here is that I don't want to go back to the drawing board and redesign the unit... just if there is some way for me to "tap into" that 3-button world, then I can re-do the code with more features, functions, etc than I can with a single on/off.
So I guess I'm asking, "how do I read what the input voltage [resistance?] is to PIN_B4?". Or can I? Searching through the help files it appears like its only able to differentiate between high and low... ie. on and off. But I thought I'd ask anyway in case I'm just missing something.
- Steven |
|
|
SherpaDoug
Joined: 07 Sep 2003 Posts: 1640 Location: Cape Cod Mass USA
|
|
Posted: Fri Apr 02, 2010 1:30 pm |
|
|
Sometimes you put multiple switches on a single line by putting resistors in series with the switches to give different voltages against the common pull-up resistor. But this arrangement has to be read by an A/D or by careful timing measurement with a capacitor.
Is this the sort of arrangement you are looking for? _________________ The search for better is endless. Instead simply find very good and get the job done. |
|
|
s_mack
Joined: 04 Jun 2009 Posts: 107
|
|
Posted: Fri Apr 02, 2010 1:35 pm |
|
|
SherpaDoug wrote: | Sometimes you put multiple switches on a single line by putting resistors in series with the switches to give different voltages against the common pull-up resistor. But this arrangement has to be read by an A/D or by careful timing measurement with a capacitor.
Is this the sort of arrangement you are looking for? |
It sure does!
But then I guess the million dollar questions is, "Can I?". And I'm hoping you can answer that with the info I already provided (PIC is 18F4480) but I imagine you'd need to know much more about the cicuitry in total.
I could post code and I can probably dig up diagrams if that helps. In the code, I see this about pull-up:
Code: | port_b_pullups(FALSE); // we dont need pullups |
That probably doesn't help, does it
Sorry... I really wish I understood the electronics side of it better.
- Steven |
|
|
FvM
Joined: 27 Aug 2008 Posts: 2337 Location: Germany
|
|
Posted: Fri Apr 02, 2010 2:19 pm |
|
|
B4 is an analog Pin, so it can basically work. You have to connect a resistor externally (if it's not already there),
according to the switch operation mode either pull-up or pull-down, that allows to detect the different switch resistances
by a different voltage drop. You can check this with a multimeter, without writing code. |
|
|
Humberto
Joined: 08 Sep 2003 Posts: 1215 Location: Buenos Aires, La Reina del Plata
|
|
Posted: Sat Apr 03, 2010 8:39 am |
|
|
This arrangement is used widely in automotive industries. The windshield wiper delay selector,
cruise speed control buttons are examples of using of this technique, where minimizing the wiring
is a must.
I do not see major problems in replacing a single pushbutton with this kind of switch in an Analog
input. Of course there are a little job to do it, it is not a matter of suppressing some pull ups resistors.
regards,
Humberto |
|
|
s_mack
Joined: 04 Jun 2009 Posts: 107
|
|
Posted: Sat Apr 03, 2010 10:44 am |
|
|
So what I think I'm getting from the last few replies... is that it is possible (I figured that) but not without hardware modification, right?
I was hoping it could be done with the existing hardware and just access it by changing the firmware. Sort of like using the code to ask, "what is the voltage of" rather than, "is it on or off".
- Steven |
|
|
FvM
Joined: 27 Aug 2008 Posts: 2337 Location: Germany
|
|
Posted: Sat Apr 03, 2010 10:50 am |
|
|
Also a single on/off switch will use a pull-up or pull-down resistor. Depending on the resistance value and other
circuit details, the multi-level switch function may be implementable without hardware modifications. |
|
|
s_mack
Joined: 04 Jun 2009 Posts: 107
|
|
Posted: Sat Apr 03, 2010 12:42 pm |
|
|
FvM wrote: | Also a single on/off switch will use a pull-up or pull-down resistor. Depending on the resistance value and other
circuit details, the multi-level switch function may be implementable without hardware modifications. |
I don't suppose I could dig up schematics and post it here? I mean, I fully appreciate that this forum is about helping people to figure out stuff on their own, but I fear I'm out of my league on this entirely. Still, I don't want to overstep bounds. |
|
|
|