Simple Inputs on the Raspberry Pi

Introduction: Simple Inputs on the Raspberry Pi

This is not the only way of making three inputs or more for the Raspberry Pi but it is the simplest.

The inputs are three little tactile switches.

The rest is one 2 kohm resistor.

The good news is that it costs pence, the bad news is that the switches and the resistor usually have to be bought in 100's!

The Raspberry Pi pins (pin 3, 5,7) that are suitable are SDA, SCL, and GPIO4

Pin 3 and 5 (SDA and SCL) already have a 1.6 kohm pull-up resistor on them. That is because they are used for I2C. When used as an input they are defined by the software as a GPIO. Pin 7 is a GPIO but it does not have a pull-up (unless the software has programmed a pull-up) That what the 2 kohm resistor is for It goes between the pin 7 and pin 1 (3v3). Each of the switches are connected between a input pin and 0v. The switches have four (curly?) legs The pair on the each end are the switches; the pair on each side are connected together. The legs will need to be straightened to go in the plugin board, or three tactile switches will fit into an 18pin Dual In Line socket and that can be plugged into the board.

On a plugin breadboard connect to Pins 1,(3v3) 3,(SDA)5, (SCL)7, (GPIO4) and 9 (0v). Connect the 2 kohm resistor from GPIO4 to 3v3, then the switches, one side of each switch to each Raspberry Pi input, the other side joined to each other and then to 0v.

The software will define the pins as GPIOs and as inputs and test each input to see if it is 0v. (Hint. give these inputs values of 1, 2 and 4 (yes binary) and add them) Then the software should do something (e.g. light a LEDs on pins 11,13,15 ? or write a message on the screen). There is no software for this instructable unless you write it. There is excellent advice on writing programs in Python on other instructables and

More Inputs? Let's have three more for example

A. Three more GPIOs each with a resistor (10 kohm) and a switch. (cost more than doubles!)

B. With working software, pressing "1" and "2" at the same time gives 3. So put two more switches close together with one connected as "1" and one connected as "2" and carefully glue a matchstick across the two little pips. Do it again for "2" and "4", and "1" and "4". .........There has got to be a better way!

C. Let's try out a little electronic (inverting) buffer. Connect a NPN transistor (any little one will do!) with its emitter to 0v, its collector to the "1" switch / Raspberry Pii input, and the base to 10 kohm; then other end of the resistor to one side of this extra switch The other side of this switch goes to 3v3. Pressing the switch just put in should have the same effect as pressing the "1" switch. Note that the buffer inverts, logic "0" becomes "1", logic "1" becomes" 0".

Put another NPN transistor to the "2" switch in the same way, but this time the resistor joins the transistor base to the other resistor /switch join Now press the new switch. "3"? Both Raspberry Pi inputs with one switch. With a little bit of electronic trickery, the three more switches that read as 3, 5, 6 can be added, and still only use three inputs to the Raspberry Pi. (cost soars to 25p!).

D Use a triple three input NOR (CA4025) (or a triple three input AND (CA4073)), six switches with 6 resistors to 3v3.(and the 2 kohm resistor). Use the switches wire ( like in C above), that is, the switch connected to 3v3 and its resistor connected to 0v. . The connection of the switch and resistor goes to the input pin of the NOR gate Pressing a switch puts "1" on the NOR gate's input. With all the inputs unpressed "0"s, the outputs of the NOR are all "1" Press any one switch, the output it is connected to will become "0" .

Connecting the three input three output NOR (CA4025):--

Switch 1 to an input going to output 1 on the NOR gate (connected to input 1 on Raspberry Pi )

Switch 2 to output 2 on the NOR gate (and the input 2 on the Raspberry Pi)

Switch 3 ic connected to another input (to output 1) and another input going to output 2.

Switch 4 to the input going to the third output of the NOR gate (and the third input on the Raspberry Pi )

Switch 5 to output 1 and 4

Switch 6 to 4 and 2

.Connect 0v to Vss (pin 7). Connect 3v3 to Vdd (pin 14).

If the software is displaying the sum of the key presses (as in hint), then it should work straight away

And AND gates? If the switches are connected to the 0v, and the resistors to the 3v3, then the voltage at the resistor /switch join when the switch is pressed will go to 0v = "0" . With all unpressed switches giving "1"s (giving a "1" AND output) when any pin is pressed it will give a "0" . (the CA4025 and the CA4073 have identical pin connections )

That's De Morgan's Theorem:- Invert the inputs , then change the OR to AND ( or AND to OR) and invert the output. (If an inverted logic signal is inverted, it is back to what is was.)


Software Quote:- A (Monty) Python line " 7?? don't be silly don't do 7s be =0". Now how did that happen?

Step 1: Figures

Step 2:

Be the First to Share


    • Puzzles Speed Challenge

      Puzzles Speed Challenge
    • "Can't Touch This" Family Contest

      "Can't Touch This" Family Contest
    • CNC Contest 2020

      CNC Contest 2020

    3 Discussions


    3 years ago

    Great info! Thanks for sharing and welcome to the community!


    Reply 3 years ago

    a belated thank you for your welcome



    3 years ago

    Australian method!

    Suggested to me;--- Put three tactile switches in a triangle (about 2.5cm side) and wire up to Raspberry Pi . It works better with the bigger tactile switches. Then place a triangle same size on top. Pressing the triangle points should give 1, 2, 4. Pressing the edges of triangle should give 3, 5, 6. Press whole triangle down .............?

    Australian? turn the triangle of switches over. Works much better so I'm told