The Waveshare Pico-Sensor-Kit is designed as a bridge between beginner coding and advanced hardware integration. The board is divided into logical zones, with the Raspberry Pi Pico acting as the brain in the center.
Getting Started: How to Use the Kit
-
Preparation: Plug the included Raspberry Pi Pico into the center slot. Connect the kit to your computer via the USB cable.
-
Coding Environment: Use an IDE like Thonny to program in MicroPython or Arduino IDE for C++.
-
Communication: Most sensors on this board communicate via the I2C protocol. Notice the specific addresses (e.g.,
0x3Dfor OLED) printed directly on the PCB next to the modules. -
Separation: If you want to build a standalone device (like a small robot), you can physically snap the modules off the board and reconnect them using the provided 4-pin cables.
Module Breakdown & Usage Guide
Pin Layout & Communication
The kit is intelligently routed so that multiple sensors share the I2C bus without conflict.
-
I2C0 Bus: Controls the Motor Driver, EEPROM, and Temp/Humidity sensors.
-
I2C1 Bus: Controls the OLED and Motion sensors.
-
ADC Pins: Used by the Potentiometer, LDR, and Sound sensor to provide variable voltage readings from to .
How to use every module?
To keep your code organized, ensure you have the Raspberry Pi Pico firmware installed. Since many of these modules use I2C, we first initialize the I2C bus.
Most modules on this board are hard-wired to specific pins. For the examples below, we assume standard Pico-Sensor-Kit wiring: I2C0 (SDA GP0, SCL GP1) and I2C1 (SDA GP6, SCL GP7).
1. OLED Display (Module 1)
Note: Requires the ssd1306.py library.
Python
from machine import Pin, I2C
import ssd1306
i2c = I2C(1, sda=Pin(6), scl=Pin(7)) # I2C1 for OLED
display = ssd1306.SSD1306_I2C(128, 64, i2c, addr=0x3D)
display.text('Hello Pico!', 0, 0)
display.show()
2. 6-Axis Motion & VOC (Modules 2 & 3)
These return raw hex data over I2C.
Python
# Scan for addresses to ensure they are seen (Motion: 0x68, VOC: 0x59)
print("I2C Scan:", [hex(i) for i in i2c.scan()])
3. Potentiometer, LDR, & Sound (Modules 4, 5, 6)
These use the Analog-to-Digital Converter (ADC).
Python
from machine import ADC
import time
pot = ADC(26) # Potentiometer (ADC0)
ldr = ADC(27) # Light Sensor (ADC1)
while True:
print("Pot:", pot.read_u16(), "Light:", ldr.read_u16())
time.sleep(0.5)
4. RGB LED (Module 7)
Uses PWM to mix colors.
Python
from machine import Pin, PWM
red = PWM(Pin(16)) # Example pin
red.freq(1000)
red.duty_u16(32768) # 50% brightness
5. Passive Buzzer (Module 8)
Python
from machine import Pin, PWM
import time
buzzer = PWM(Pin(18))
def play_tone(freq):
buzzer.freq(freq)
buzzer.duty_u16(1000) # Volume
time.sleep(0.5)
buzzer.duty_u16(0)
play_tone(440) # Play Note A
6. Button & LED (Modules 11 & 12)
Classic digital input and output.
Python
from machine import Pin
led = Pin(20, Pin.OUT)
button = Pin(21, Pin.IN, Pin.PULL_UP)
while True:
if not button.value(): # If button pressed
led.on()
else:
led.off()
7. Temperature & Humidity (Module 13)
Note: Uses I2C0 (Addr: 0x70).
Python
i2c0 = I2C(0, sda=Pin(0), scl=Pin(1))
# Sending measurement command to SHTC3
i2c0.writeto(0x70, b'\x7C\xA2')
8. Motor Driver (Module 15)
The motor driver uses an I2C-to-PWM chip (usually PCA9685 at 0x40).
Python
# Basic logic to set a motor pin high via I2C0
i2c0.writeto_mem(0x40, 0x06, b'\x00\x00\xff\x07') # Example full-on command
Summary of Pin Connections



Reviews
Clear filtersThere are no reviews yet.