Important changes to forums and questions
All forums and questions are now archived. To start a new conversation or read the latest updates go to forums.mbed.com.
12 years, 7 months ago.
Switch connection problem
Hello, guys. I have problem on the switch connection and I have no idea why it is wrong. I connected an encoded switch to mbed: 3.3V (VOUT on mbed) to 10KΩ to position 1,2,4 on the switch; position 1,2,4 are connected to pin15,16,17 on mbed and common connected to GND on mbed
I only receive '0' for switch 1 to 7, but when I switch to position 0 and 8 the value is '7'.
Could anyone help me? Great thanks!
My code is
#include "mbed.h"
Serial pc(USBTX, USBRX);
DigitalIn in1(p15);
DigitalIn in2(p16);
DigitalIn in4(p17);
int main()
{
int inchoice;
inchoice=in4*4+in2*2+in1;
printf("in Value is %d\n\r", inchoice);
while(1) {
switch (inchoice)
{
case 1:
led1 = 1;
wait(0.2);
led1 = 0;
wait(0.2);
break;
case 2:
led2 = 1;
wait(0.2);
led2 = 0;
wait(0.2);
break;
case 3:
led3 = 1;
wait(0.2);
led3 = 0;
wait(0.2);
break;
}
}
}
1 Answer
12 years, 7 months ago.
Try changing the common connection to VOUT (pin 40) on the mbed, this would also let you use BusIn.
#include "mbed.h"
BusIn bus(p15, p16, p17);
int main()
{
while(1) {
printf("in Value is %d\n\r", bus.read());
wait(1);
}
}
Your circuit is like this
effectively pins 15, 16 & 17 are connected together, this is why you get either 0 or 7.