I have been using the Arduino for a few years now and recently curiosity got the better of me with the excitement around the Raspberry Pi. I purchased my first Raspberry Pi and since my interest is more in line with interacting with the physical than just having a small computer, I needed a second project. Of course, the first project was to blink an LED!
For my second project, I decided to expand on the first. I still use output to blink an LED, but now I also use input to decide when to blink the LED. The way this project works is by sensing motion using a PIR, Passive Infra-Red, sensor.
Using the Adafruit Raspberry Pi Cobbler, here’s how I connected the Raspberry Pi GPIO pins to the breadboard and wired up the PIR sensor and LED
Download the Fritzing diagram. This requires the AdafruitFritzing library.
Here’s the code!
import RPi.GPIO as GPIO
import time
PIR = 23
LED = 24
pirState = False # we start, assuming no motion detected
pirVal = False # we start, assuming no motion detected
GPIO.setmode(GPIO.BCM)
GPIO.setup(PIR, GPIO.IN)
GPIO.setup(LED, GPIO.OUT)
while True:
pirVal = GPIO.input(PIR) # read input value
if (pirVal == True): # check if the input is HIGH
GPIO.output(LED, True) # turn LED ON
if (pirState == False):
# we have _just_ turned on
pirState = True
else:
GPIO.output(LED, False) # turn LED OFF
if (pirState == True):
# we have _just_ turned off
time.sleep(2)
pirState = False;
Parts List / BOM (Bill of Materials) – Excluding Raspberry PI
| Part | Source | Image | Approx Price |
|---|---|---|---|
| 1/2 Size breadboard | Adafruit | ![]() |
$5.00 |
| Pi Cobbler Breakout Kit for Raspberry Pi | Adafruit | ![]() |
$7.95 |
| PIR (motion) sensor | Adafruit | ![]() |
$10.00 |
| 220 ohm resistor | RadioShack | ![]() |
$1.19 |
| Green LED | RadioShack | ![]() |
$1.69 |
| Breadboarding Wire | Adafruit | ![]() |
$6.00 |
| Total | $31.83* |
* = Prices are the best information from the time this tutorial was written. Prices do not include
shipping.






