|
Rasbery Pi Pico |
x 1 | |
|
Addressable (WS8212B) 8X8 64 Pixels LED Matrix Panel |
x 1 | |
|
Jumper wires male to male |
x 3 | |
|
Project Board |
x 1 | |
|
Micro USB Cable |
x 1 |
RGB LED Light for Mini Photo Studio
RGB LED Light for Mini Photo Studio
This project is about RGB LED Light which is used for Mini Photo Study. The color of the LED can be adjusted as desired. With this LED I can give a unique color to my photos and videos
As content creators, we need to make photos and videos as attractive as possible. One way is to add color effects to the photos we make. That's why I made this RGB LED Light.
I use the WS8212B LED because this led is quite simple and easy to use. To turn on and adjust the color of the LED, only one pin is needed. The color produced from this LED is also quite accurate.
1. Required components
a. Hardware Components :
- Rasbery Pi Pico x1
- Addressable (WS8212B) 8X8 64 Pixels LED Matrix Panel x1
- Jumper wires male to male x1
- Project Board
- Micro USB Cable
b. Software Components
- Thonny
2. how does it work
I assume, your Rasbery Pi Pico board is ready to use and you have mastered the basics of using the Thonny application.
a. Connection
LED -> Rasbery Pi Pico
- IN -> GPIO22
- V+ -> VCC
- V- -> GND
b. Code
here is the code for this project
# Example using PIO to drive a set of WS2812 LEDs.
import array, time
from machine import Pin
import rp2
# Configure the number of WS2812 LEDs.
NUM_LEDS = 64
PIN_NUM = 22
brightness = 0.1
@rp2.asm_pio(sideset_init=rp2.PIO.OUT_LOW, out_shiftdir=rp2.PIO.SHIFT_LEFT, autopull=True, pull_thresh=24)
def ws2812():
T1 = 2
T2 = 5
T3 = 3
wrap_target()
label("bitloop")
out(x, 1) .side(0) [T3 - 1]
jmp(not_x, "do_zero") .side(1) [T1 - 1]
jmp("bitloop") .side(1) [T2 - 1]
label("do_zero")
nop() .side(0) [T2 - 1]
wrap()
# Create the StateMachine with the ws2812 program, outputting on pin
sm = rp2.StateMachine(0, ws2812, freq=8_000_000, sideset_base=Pin(PIN_NUM))
# Start the StateMachine, it will wait for data on its FIFO.
sm.active(1)
# Display a pattern on the LEDs via an array of LED RGB values.
ar = array.array("I", [0 for _ in range(NUM_LEDS)])
##########################################################################
def pixels_show():
dimmer_ar = array.array("I", [0 for _ in range(NUM_LEDS)])
for i,c in enumerate(ar):
r = int(((c >> 8) & 0xFF) * brightness)
g = int(((c >> 16) & 0xFF) * brightness)
b = int((c & 0xFF) * brightness)
dimmer_ar[i] = (g<<16) + (r<<8) + b
sm.put(dimmer_ar, 8)
time.sleep_ms(10)
def pixels_set(i, color):
ar[i] = (color[1]<<16) + (color[0]<<8) + color[2]
def pixels_fill(color):
for i in range(len(ar)):
pixels_set(i, color)
def color_chase(color, wait):
for i in range(NUM_LEDS):
pixels_set(i, color)
time.sleep(wait)
pixels_show()
time.sleep(0.2)
def wheel(pos):
# Input a value 0 to 255 to get a color value.
# The colours are a transition r - g - b - back to r.
if pos < 0 or pos > 255:
return (0, 0, 0)
if pos < 85:
return (255 - pos * 3, pos * 3, 0)
if pos < 170:
pos -= 85
return (0, 255 - pos * 3, pos * 3)
pos -= 170
return (pos * 3, 0, 255 - pos * 3)
def rainbow_cycle(wait):
for j in range(255):
for i in range(NUM_LEDS):
rc_index = (i * 256 // NUM_LEDS) + j
pixels_set(i, wheel(rc_index & 255))
pixels_show()
time.sleep(wait)
BLACK = (0, 0, 0)
RED = (255, 0, 0)
YELLOW = (255, 150, 0)
GREEN = (0, 255, 0)
CYAN = (0, 255, 255)
BLUE = (0, 0, 255)
PURPLE = (180, 0, 255)
WHITE = (255, 255, 255)
PINK = (255, 0, 203)
ORANGE = (255, 69, 0)
COLORS = (BLACK, RED, YELLOW, GREEN, CYAN, BLUE, PURPLE, WHITE)
print("fills")
for color in COLORS:
pixels_fill(PINK)
pixels_show()
time.sleep(0.2)
- Configure the number of WS2812 LEDs.
- NUM_LEDS = the number of leds used
- PIN_NUM = The Pin of Rasbery Pi Used
- brightness = adjust LED brightness from 0 to 1
NUM_LEDS = 64
PIN_NUM = 22
brightness = 0.1
- Change color
- pixels_fill(PINK) = replace the variable name with the color that was created in the previous line
pixels_fill(PINK)
3. Photo Results
RGB LED Light for Mini Photo Studio
- Comments(0)
- Likes(1)
- Engineer May 30,2024
- 0 USER VOTES
- YOUR VOTE 0.00 0.00
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
More by Mr. Sottong
- Pop Noise Remover For TPA116D2 Amplifier So on my YouTube channel, I reviewed the TPA3116d2 V1 amplifier. I think the amplifier has a pretty ...
- Pocket RGB Light | Arduino & WS2812B In this article "How to Controls WS2812B Using ESP-01 Arduino (ESP8266)". I made a custom module for...
- DC Power Meter / Logger Using ESP8266 In this article I will make a DC power meter / logger using the ESP8266. This tool can be used to me...
- Automatic Fish Feeder Using Arduino Nano In this article I will make an automatic feeding device for fish in an aquarium. This tool uses ardu...
- Bluetooth Audio Receiver + Pop Noise Remover for Amplifier TPA3116D2 2.1 In this article I will make a special audio receiver bluetooth module for the TPA3116d2 2.1 Amplifie...
- RGB LED Light for Mini Photo Studio RGB LED Light for Mini Photo Studio This project is about RGB LED Light which is used for Mini Photo...
-
-
-
kmMiniSchield MIDI I/O - IN/OUT/THROUGH MIDI extension for kmMidiMini
113 0 0 -
DIY Laser Power Meter with Arduino
163 0 2 -
-
-
Box & Bolt, 3D Printed Cardboard Crafting Tools
156 0 2 -
-
A DIY Soldering Station Perfect for Learning (Floppy Soldering Station 3.0)
566 0 3