Difference between revisions of "RGB LED HAT"

From Waveshare Wiki
Jump to: navigation, search
Line 90: Line 90:
 
Running the demo ws2812.py, you can see the RGB LED display the gradient color.
 
Running the demo ws2812.py, you can see the RGB LED display the gradient color.
 
  cd RGB_LED_HAT
 
  cd RGB_LED_HAT
  sudo python ws2812.py
+
  sudo python3 ws2812.py
 
: [[File:rgb-led-hat-user-manual-4.png]]
 
: [[File:rgb-led-hat-user-manual-4.png]]
 
# <code>from neopixel import *</code> import the library rpi-ws281x
 
# <code>from neopixel import *</code> import the library rpi-ws281x

Revision as of 08:01, 4 May 2023

RGB LED HAT
True color RGB LED HAT for Raspberry Pi, colorful display
Rgb-led-hat-intro 1.jpg

True color RGB LED HAT for Raspberry Pi, colorful display
{{{name2}}}

{{{name3}}}

{{{name4}}}

{{{name5}}}

Introduction

True color RGB LED HAT for Raspberry Pi, colorful display

More

Interfaces

  1. For Raspberry Pi, you only need to insert the product to the corresponding interface on the Pi;
  2. For other devices, you'd better to solder the pin headers to the pads of 5V, GND, DIN and DOUT for wiring.
Symbols Pin descriptions
5V 5V power supply
GND Ground
DIN Control signal input
DOUT Control signal output

Description

WS2812B is an intelligent LED controller of which the control circuit and the RGB chip are integrated in a package of 5050 components. It internally includes an intelligent digital port, a data latch and a signal reshaping amplification drive circuit. To ensure the color brightness consistent of the pixel light, it also contains a precision internal oscillator and a 12V voltage programmable constant current control part.

Its data transfer protocol uses a single NZR communication mode. After the pixel is power-on and reset, the DIN port receives the data from the controller. The first 24-bit data is collected by the first pixel and then sent to the internal data latch. The other data are reshaped by the internal signal reshaping amplification circuit and sent to the next cascade pixel through the DO port. After the transmission for all pixels, the signal may reduce to 24bit. The pixel adopts auto reshaping transmit technology, which allows the pixel cascade number is up to the speed of the signal transmission but not bound by the signal transmission restriction. For more information about auto reshaping transmit technology, please refer to the section data transfer protocol.

Sequence chart

Sequence chart
  • Data transfer time( TH+TL=1.25µs±600ns)
T0H 0 code, high voltage time 0.4µs ±150ns
T1H 1 code, high voltage time 0.8µs ±150ns
T0L 0 code, low voltage time 0.85µs ±150ns
T1L 1 code, low voltage time 0.45 µs ±150ns
RES The unit of frame, low voltage time Above 50µs

Data transmission method

Data transmission method

On the base of the data sequence, we can easily complete data transfer with the communication protocol.

Note: The data of D1 is send by MCU, and D2, D3, D4 are transmitted through pixel internal reshaping amplification.

  • Composition of 24bit data:
G7 G6 G5 G4 G3 G2 G1 G0 R7 R6 R5 R4 R3 R2 R1 R0 B7 B6 B5 B4 B3 B2 B1 B0
Note: The data is sent in the order of GRB and the high bit is sent at first.

How to use

Libraries installation

Install the libraries with the following commands:

sudo apt-get install python3-pip -y
sudo pip3 install rpi_ws281x -y

For the latest libraries, you can visit the website: https://github.com/jgarff/rpi_ws281x

Download the examples and run them for a try

wget https://www.waveshare.net/w/upload/b/b2/RGB_LED_HAT.zip
unzip RGB_LED_HAT.zip
sudo chmod 777 -R RGB_LED_HAT
cd RGB_LED_HAT
sudo python3 ws2812.py
  • If the library is installed successfully, you can see the RGB LED flickering.

  • If the LED displays the wrong color, please add the lines below into the file /boot/config.txt, and restart the Pi to take the effect.
  • RGB LED adopts DMA control, which may occupy the video output DMA channel on the Raspberry Pi. Therefore, adding these lines may cause the earphone connector unusable.

hdmi_force_hotplug=1
hdmi_force_edid_audio=1

Demo descriptions

Running the demo ws2812.py, you can see the RGB LED display the gradient color.

cd RGB_LED_HAT
sudo python3 ws2812.py
Rgb-led-hat-user-manual-4.png
  1. from neopixel import * import the library rpi-ws281x
  2. Adafruit_NeoPixel creates an object strip, sets the number of the LEDs to 32, the pin to 18, and the frequency to 800000. The parameter LED_BRIGHTNESS is the brightness of the LED.
  3. begin() RGB LED initialization function.
  4. setPixelColor(pos, color) This sets the pixel, of which pos are the LED position, and the color is the RGB color
  5. color(r, g, b) This converts the RGB value to a 24-bit color.
  6. show() This transfers data, showing the set LED color.
  7. For more information about the functions, please see rpi_ws281x-master/python/neopixel.py

Web control with Bottle

controlled by browser

The bottle is a fast, simple, and lightweight WSGI micro web-framework for Python. By Bottle, you can fast and easily implement Web control.

Install the library

sudo apt-get install python3-bottle
cd RGB_LED_HAT/web/
sudo python3 main.py

Perform web control RGB LED via Bottle.

Then, enter the IP address of your Pi and port number 8000 into the address bar of the browser. Clicking different positions of the palette, the LEDs will display different colors. There are 3 display modes selectable, static, breath, and flash.

  • Note: This web-RGB program only supports the mobile phone browser. It is unavailable for PC browsers.

Resources

Documentation

Software

Others

Support

If you require technical support, please go to the Support page and open a ticket.,