Difference between revisions of "Sensor-Color LED"

From Microduino Wiki
Jump to: navigation, search
(Programming)
 
(37 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
{{Language|Microduino-Color led}}
 
{{Language|Microduino-Color led}}
{| style="width: 800px;"
+
{| style="width: 80%;"
 
|-
 
|-
 
|
 
|
 
[[File: Microduino-WS2812-rect-v1.jpg|400px|thumb|right| Microduino-Color led]]
 
[[File: Microduino-WS2812-rect-v1.jpg|400px|thumb|right| Microduino-Color led]]
 +
The product number of Sensor-Color LED is: '''MSDL11'''
  
Microduino-Color LED is a colored LED light with an built-in IC control chip, which can be cascaded arbitrarily. With only one I/O port, you can control all the lights. Each light can be controlled separately.  
+
Sensor-Color LED is full color LED, adopting single serial cascade protocol.
  
 +
Only one I/O port can control the RGB color of each LED on the line.
  
 +
If the power supply supports, it can support the cascade of as many as 1024 LEDs.
  
  
  
  
 +
==Introduction of Sensor Pin==
 +
{{ST_Pinout
 +
|st_name=Color LED
 +
|pin3=Digital Output (One-wire communication)
 +
}}
  
 +
==Features==
 +
*With small size which is easy to install;
 +
*Adopts single serial cascade protocol, which makes it cascadable;
 +
*Only one I/O port can control the RGB color of each LED on the line;
 +
*Can achieve 256-grade (1600W) toning of RGB, and the scanning frequency is not less then 400Hz/s
 +
 +
==Specification==
 +
*Sensor voltage
 +
**5V working voltage
 +
 +
*Size of the sensor
 +
**Size of the board: 23.5mm*13mm
 +
**1.27mm-spacing 4Pin interface connected with sensorhub
 +
**CAD drawing of the sensor: '''[[File:Sensor_CAD.zip]]'''
 +
 +
*Function description
 +
**Adopts WS2812 lampwick
 +
**Adopts single serial cascade protocol, which makes it cascadable
 +
**Only one I/O port can control the RGB color of each LED on the line
 +
**Can achieve 256-grade (1600W) toning or RGB, and the scanning frequency is not less then 400Hz/s
 +
**When the updating speed is 30 frame/s, the cascading number is no less than 1024
 +
 +
*Connection
 +
**This sensor can be connected to the following interfaces of the core: '''D2~D13''','''A0~A7'''
 +
**Multiple sensors cascade: Connect the '''(<big>OUT</big>)''' of the former Sensor-Color LED to the '''(<big>IN</big>)''' of the latter Sensor-Color LED.
 +
 +
==Documents==
 +
*Schematic diagram: '''[[File: Sensor-Color_LED.Zip]]'''
 +
*Main chip: '''[[File: WS2812 datasheet.pdf]]'''
 +
*You can use the sample programs in the following IDE libraries to do experiment on your own: [https://github.com/wasdpkj/Microduino-IDE-Support/tree/master/arduino-ide-Support/%5B1.6.x%5D-hardware(library)/hardware/Microduino/avr/libraries '''_07_Sensor_LED_WS2812''']
 +
 +
==Usage==
 +
 +
===Basic Functionality===
 +
The ColorLED is a trinket which emits different colors based on the set red, green, and blue values. A Core module can control the ColorLED to output the desired colors.
 +
 +
Note: ColorLEDs can be connected together in a daisy chain fashion, and each ColorLED can be addressed individually using the index number. First ColorLED being 0, second ColorLED being 1, etc.
 +
===Programming===
 +
<tab name="Arduino for Microduino" style="width:100%;">
 +
==Introduction==
 +
The ColorLED is used as an output pin. The library is based on the Adafruit_NeoPixel library '''([https://learn.adafruit.com/adafruit-neopixel-uberguide/arduino-library Read more])''' is used to control the ColorLED. Most of the functions are similar.
 +
==Key Functions==
 +
*Required Libraries: '''Microduino_ColorLED.h'''
 +
*Key Functions:
 +
** Constructor: '''ColorLED strip = ColorLED(num_colorleds, colorled_pin)''' - creates the ColorLED object
 +
***'''num_colorleds''' - defines the number of ColorLEDs connected to the '''colorled_pin'''
 +
***'''colorled_pin''' - defines the pin the ColorLEDs is connected to
 +
** '''strip.begin()''' - initializes the ColorLED object
 +
** '''strip.setPixelColor(colorled_index, red_value, green_value, blue_value)''' - configures the color value for that colorled index, must call '''strip.show()''' for the ColorLED to actually display the change
 +
***'''colorled_index''' - is the index of the ColorLED to configure, first in the chain is 0, second is 1, etc
 +
***'''red_value''' - red value to set, between 0 (off) and 255 (maximum on)
 +
***'''green_value''' - green value to set, between 0 (off) and 255 (maximum on)
 +
***'''blue_value''' - blue value to set, between 0 (off) and 255 (maximum on)
 +
** '''strip.show()''' - call this function after setting the color values for the ColorLED to actually display the color
 +
 +
==Example==
 +
This is a simple example which:
 +
*Turns the ColorLED to red
 +
*Waits 1 second.
 +
*Turns the ColorLED to green
 +
*Wait 1 second.
 +
*Turns the ColorLED to blue
 +
*Waits 1 second.
 +
 +
'''Note''': Important lines of code are highlighted.
 +
 +
<syntaxhighlight lang="cpp" highlight="1-3,5,6,8,9,11,12,20,21,23,24,30-33,38-41,46-49">
 +
//Include the required libraries to control the ColorLED
 +
//Based on: https://learn.adafruit.com/adafruit-neopixel-uberguide/arduino-library
 +
#include <Microduino_ColorLED.h>
 +
 +
//Define the pin the ColorLED is connected to
 +
const int COLORLED_PIN = 6;
 +
 +
//Define the number of ColorLEDs daisy chained together
 +
const int COLORLED_NUM = 1;
  
 +
//Declare and initialize the ColorLED object
 +
ColorLED strip = ColorLED(COLORLED_NUM, COLORLED_PIN);
  
==Features==
+
void setup() {
*The chip adopts 5050 package, including control circuit and RGB chip inside.  
+
  // put your setup code here, to run once:
*With single bus control, you only need one I/O port to receive data and decode;
+
 
*With built-in IC control, serial cascading interface, it can have cascade control.
+
  //Initial serial communication port at 9600 baud
*Each pixel's trichromatic color can achieve 256-level brightness control, completing full display of 16,777,216 colors and the scanning frequency is not less than 400Hz/s;  
+
  Serial.begin(9600);
*With built-in power-on and off reset circuits;
+
 
*ultra low power and ultra long life.
+
  //Initialize the ColorLED class object
 +
  strip.begin();
 +
 
 +
  //Initialize all ColorLEDs to 'off'
 +
  strip.show();
 +
}
 +
 
 +
void loop() {
 +
  // put your main code here, to run repeatedly:
 +
 
 +
  //Configure the first ColorLED to maximum red
 +
  strip.setPixelColor(0, 255, 0, 0);
 +
  //Set the ColorLED
 +
  strip.show();
 +
 
 +
  //wait 1 second
 +
  delay(1000);
 +
 
 +
  //Configure the first ColorLED to maximum green
 +
  strip.setPixelColor(0, 0, 255, 0);
 +
  //Set the ColorLED
 +
  strip.show();
 +
 
 +
  //wait 1 second
 +
  delay(1000);
 +
 
 +
  //Configure the first ColorLED to maximum blue
 +
  strip.setPixelColor(0, 0, 0, 255);
 +
  //Set the ColorLED
 +
  strip.show();
 +
 
 +
  //wait 1 second
 +
  delay(1000);
 +
}
 +
</syntaxhighlight>
 +
Copy and paste the code above to the Arduino IDE or
 +
 
 +
Download the above example: n/a
 +
</tab>
  
==Specification==
+
===Program Download===
* Electrical specification
+
*Download and unzip the program '''[[File:Sensor-Color-LED.zip]]'''
**Operation voltage: 3.3V~5V
 
**Output device
 
*Tech parameter
 
**Adopt WS2812 integrated light source control;
 
**Each pixel's RGB can realize 256-level brightness display.
 
**When refresh rate is 30 frame/s, the cascade number is not less than 1,024 points.
 
**When the transmission distance of any two points is within three meters, there is no need to add any circuit.
 
*Size
 
**Size of LED:5mm*5mm,
 
**Size of the board:20mm*20mm
 
**1.27mm-pitch 4Pin interface connects with Sensorhub.
 
*Connection method
 
**System and LED(<big>IN</big>):System LED control needs to connect the signal of Sensorhub to the " big>IN</big>" base board of the LED.  
 
**LED Cascade(<big>OUT</big>): The first LED's <big>OUT</big> connects to the next LED's  <big>IN</big>.
 
  
[[File: CoreUSB_Ble_steup11.jpg|600px|center]]
+
===Programming===
 +
{{Upload
 +
|nameA=[[Microduino-Core]], [[Microduino-USBTTL]]
 +
|nameB=[[Microduino-USBTTL]]
 +
|boardName=Microduino/mCookie-Core(328p), Atmega328P@16M,5V
 +
|fileName=Microduino_Sensor-Color_LED_Test.ino
 +
}}
  
==Document==
+
===Hardware Setup===
[[File:ws2812.pdf]]
+
*Referring to the following diagram, connect the Sensor-Color LED to the digital port D6 of '''[[Microduino-Sensorhub]]'''.
 +
<br>
 +
[[file:Microduino-sensorhub_Shake.JPG|thumb|400px|left]]
 +
<br style="clear: left"/>
  
==Development==
+
===Results===
===Preparation===
+
*After download, observe the LED strip..
*Make sure you build Microduino development environment. If not, please refer to: [[Microduino Getting started]]
+
*LED flashes in red and green successively with the interval of 1s.
*Core selection
 
**1. Adopt [[Microduino-CoreUSB]] or [[mCookie-CoreUSB]].
 
**2.Adopt [[Microduino-Core]] or [[Microduino-Core+]] as the core board and use  [[Microduino-USBTTL]] to download program.
 
===Program===
 
*Open " strandtext " in the libraries.
 
[[file:mCookie-strandtext.JPG|thumb|800px|center]]
 
*"#define PIN 6" defines the pin which controls LED. "6" means Microduino's D6 pin, which can be converted by Sensorhub. Users can also change that according to personal needs.
 
*The number "60" in " Adafruit_NeoPixel strip = Adafruit_NeoPixel(60, PIN, NEO_GRB + NEO_KHZ800);" is the light number you want to cascade.
 
*" colorWipe(uint32_t c, uint8_t wait)" Function Description:
 
**" uint32_t c " defines the color of the lights and the format is " strip.Color(R, G, B)".
 
***R:Value of red(0-255)
 
***G:Value of green(0-255)
 
***B:Value of green(0-255)
 
**" uint8_t wait " defines delay time of a single light. The light number is defined at the beginning.
 
**Example: colorWipe(strip.Color(255, 0, 0), 50); Display red.
 
**Users can adopt the related tools to change color
 
*“rainbow()” and “rainbowCycle()” are cool color pattern.  
 
  
===Hardware Buildup===
+
==Application==
*Connect '''IN''' port on the back of the color LED to the D6 digital port of Sensorhub, which is also the definition and control of LED pins mentioned above. (Users can change according to personal needs.)
+
*LED full color light source
[[Microduino-Sensorhub]]
 
[[file:Microduino-sensorhub_6.JPG|thumb|400px|center]]
 
[[mCookie-Hub]]
 
[[file:mCookie-sensorhub_6.JPG|thumb|400px|center]]
 
*Connect the core board, Sensorhub and LED to a computer via a USB cable.
 
*Select the right board and COM port, compile and download. Please refer to: [[AVR Core:Getting started]]
 
[[file:upload.JPG|thumb|800px|center]]
 
*You can see result after download.
 
  
 
==Project==
 
==Project==
Line 83: Line 177:
 
* '''[[Applause Enthusiasm Detection]]'''
 
* '''[[Applause Enthusiasm Detection]]'''
 
* '''[[Colored LED]]'''
 
* '''[[Colored LED]]'''
 
==Purchase==
 
 
 
==History==
 
==History==
  
==Picture==
+
==Gallery==
*Front
+
{| border="0" cellpadding="10" width="100%"
[[file: Microduino-Lantern-F.JPG|thumb|600px|center|Microduino-Cube-Station Front]]
+
|-
*Back
+
|width="50%" valign="top" align="left"|
[[file: Microduino-Lantern -b.JPG|thumb|600px|center|Microduino-Cube-Station Back]]
+
[[file: MicroduinoColorLED-F.JPG|thumb|480px|center|mCookie-Color_LED-Front]]
 +
|width="50%" valign="top" align="left"|
 +
[[file: Microduino-ColorLED-b.JPG|thumb|480px|center|mCookie-Color_LED-Back]]
 +
|}
 
|}
 
|}

Latest revision as of 20:06, 1 December 2017

Language: English  • 中文
Microduino-Color led

The product number of Sensor-Color LED is: MSDL11

Sensor-Color LED is full color LED, adopting single serial cascade protocol.

Only one I/O port can control the RGB color of each LED on the line.

If the power supply supports, it can support the cascade of as many as 1024 LEDs.



Introduction of Sensor Pin

Sensor backpin.png

Color LED
General Pin Out Sensor / Trinket's Pin Out
PIN1 (GND) GND
PIN2 (VCC) VCC
PIN3 (SIGNAL-A) Digital Output (One-wire communication)
PIN4 (SIGNAL-B) Not Connected
  • General Pin Out is the standard pin out of a Sensor / Trinket connector.
  • Sensor / Trinket's Pin Out is this specific Sensor / Trinket's wiring in relation to the General Pin Out.
  • SIGNAL-A / SIGNAL-B are signals that could be digital input, digital output, analog input or analog output. Or special signals such as serial communication (SoftwareSerial, IIC (I2C), etc) or other special signals.
  • Not Connected refers to the Pin not being used for this particular Sensor / Trinket.
  • Read more about the hub module.

Features

  • With small size which is easy to install;
  • Adopts single serial cascade protocol, which makes it cascadable;
  • Only one I/O port can control the RGB color of each LED on the line;
  • Can achieve 256-grade (1600W) toning of RGB, and the scanning frequency is not less then 400Hz/s

Specification

  • Sensor voltage
    • 5V working voltage
  • Size of the sensor
    • Size of the board: 23.5mm*13mm
    • 1.27mm-spacing 4Pin interface connected with sensorhub
    • CAD drawing of the sensor: File:Sensor CAD.zip
  • Function description
    • Adopts WS2812 lampwick
    • Adopts single serial cascade protocol, which makes it cascadable
    • Only one I/O port can control the RGB color of each LED on the line
    • Can achieve 256-grade (1600W) toning or RGB, and the scanning frequency is not less then 400Hz/s
    • When the updating speed is 30 frame/s, the cascading number is no less than 1024
  • Connection
    • This sensor can be connected to the following interfaces of the core: D2~D13,A0~A7
    • Multiple sensors cascade: Connect the (OUT) of the former Sensor-Color LED to the (IN) of the latter Sensor-Color LED.

Documents

Usage

Basic Functionality

The ColorLED is a trinket which emits different colors based on the set red, green, and blue values. A Core module can control the ColorLED to output the desired colors.

Note: ColorLEDs can be connected together in a daisy chain fashion, and each ColorLED can be addressed individually using the index number. First ColorLED being 0, second ColorLED being 1, etc.

Programming

Introduction

The ColorLED is used as an output pin. The library is based on the Adafruit_NeoPixel library (Read more) is used to control the ColorLED. Most of the functions are similar.

Key Functions

  • Required Libraries: Microduino_ColorLED.h
  • Key Functions:
    • Constructor: ColorLED strip = ColorLED(num_colorleds, colorled_pin) - creates the ColorLED object
      • num_colorleds - defines the number of ColorLEDs connected to the colorled_pin
      • colorled_pin - defines the pin the ColorLEDs is connected to
    • strip.begin() - initializes the ColorLED object
    • strip.setPixelColor(colorled_index, red_value, green_value, blue_value) - configures the color value for that colorled index, must call strip.show() for the ColorLED to actually display the change
      • colorled_index - is the index of the ColorLED to configure, first in the chain is 0, second is 1, etc
      • red_value - red value to set, between 0 (off) and 255 (maximum on)
      • green_value - green value to set, between 0 (off) and 255 (maximum on)
      • blue_value - blue value to set, between 0 (off) and 255 (maximum on)
    • strip.show() - call this function after setting the color values for the ColorLED to actually display the color

Example

This is a simple example which:

  • Turns the ColorLED to red
  • Waits 1 second.
  • Turns the ColorLED to green
  • Wait 1 second.
  • Turns the ColorLED to blue
  • Waits 1 second.

Note: Important lines of code are highlighted.

//Include the required libraries to control the ColorLED
//Based on: https://learn.adafruit.com/adafruit-neopixel-uberguide/arduino-library
#include <Microduino_ColorLED.h>

//Define the pin the ColorLED is connected to
const int COLORLED_PIN = 6;

//Define the number of ColorLEDs daisy chained together
const int COLORLED_NUM = 1;

//Declare and initialize the ColorLED object
ColorLED strip = ColorLED(COLORLED_NUM, COLORLED_PIN);

void setup() {
  // put your setup code here, to run once:

  //Initial serial communication port at 9600 baud
  Serial.begin(9600);

  //Initialize the ColorLED class object
  strip.begin();

  //Initialize all ColorLEDs to 'off'
  strip.show();
}

void loop() {
  // put your main code here, to run repeatedly:

  //Configure the first ColorLED to maximum red
  strip.setPixelColor(0, 255, 0, 0);
  //Set the ColorLED
  strip.show();

  //wait 1 second
  delay(1000);

  //Configure the first ColorLED to maximum green
  strip.setPixelColor(0, 0, 255, 0);
  //Set the ColorLED
  strip.show();

  //wait 1 second
  delay(1000);

  //Configure the first ColorLED to maximum blue
  strip.setPixelColor(0, 0, 0, 255);
  //Set the ColorLED
  strip.show();

  //wait 1 second
  delay(1000);
}

Copy and paste the code above to the Arduino IDE or

Download the above example: n/a

Program Download

Programming

  • Follow the Software Getting Started Guide.
  • Select the Board, Processor and Port.
  • Click [File]->[Open], browse to the project program address, and click "Microduino_Sensor-Color_LED_Test.ino" to open the program.
  • After confirming all these items are correct, click "→" to download the program to the development board.

Hardware Setup

  • Referring to the following diagram, connect the Sensor-Color LED to the digital port D6 of Microduino-Sensorhub.


Microduino-sensorhub Shake.JPG


Results

  • After download, observe the LED strip..
  • LED flashes in red and green successively with the interval of 1s.

Application

  • LED full color light source

Project

History

Gallery

File:MicroduinoColorLED-F.JPG
mCookie-Color_LED-Front
File:Microduino-ColorLED-b.JPG
mCookie-Color_LED-Back
Retrieved from "https://wiki.microduinoinc.com/index.php?title=Sensor-Color_LED&oldid=21716"