Main Site Documentation

Button Shield


#1

What pins do the button shield (http://www.coolcomponents.co.uk/catalog/product_info.php?products_id=524) use, from what i’m reading they’re digital pins but there’s two modes and I’d like to know the exact pinnage but can’t seem to find the required information :confused:


#2

[quote]The ButtonShield relays button information along 6 different pins. Each button in
a given mode is represented by a 6-digit binary value, with each digit transmitted
along a single pin. A 6-digit binary value allows for a total of 64 different values
to be passed to the Arduino in this fashion.[/quote]

I cannot find anything more specific, but from what I can see these are used:

*5V
*GND

*Di9
*Di10

Please note: this might not be correct. This is what I have seen on the image in the datasheet!
I will try to find more when I get back from a birthday party.


#3

Why not ask the guys who made it about what pins are used? Liquidware?


#4

already done, no response, yet :wink:


#5

Yeh I haven’t had much luck with response from them either.

I’m curious, given something like http://www.youtube.com/watch?v=McswyCexflk&feature=player_embedded, how do they get so many shields to work together, I mean surely there’s a finite limit on what you can do due to the limit of pins on the master board, or am I missing some basic understanding?


#6

Ahh just found something on serial buses, interesting…


#7

I’ve worked with Liquidware a lot, if they haven’t responded yet they’re probably just back logged. I know they had a few faires in the states lately. I could tell you more about the ButtonPAD but here’s what I know about the ButtonSHIELD:

Mode A: Pins 4-7, 18 & 19
Mode B: Pins 8-11, 16 & 17

There’s a micro switch on the back to change modes.

Determining the button is done by bit-shifting the digital read values of each of the pins. So say you’re using mode A: pinList[0] = 4, pinList[5] = 19; use the following:


int ButtonShield::readButtons() {

    uint8_t button = 0;

    for (uint8_t pin=0; pin<6; pin++) {
        button |= digitalRead(pinList[pin]) << pin;
    }

    return button;
}

SOURCE: Liquidware’s library source code for the ButtonShield.