Description:
This Arduino compatible board is specifically designed to drive a 3 colour RGB LED dot matrix displays and uses an ATmega328p device loaded with the Arduino bootloader. This allows the development board to be programmed directly from the Arduino development environment (via a suitable TTL serial adaptor). A constant current LED driver provides a PWM hardware interface to to an attached LED module. Designed to be used in conjunction with our RGB LED matrix module (HCMODU0053), this will allow display of any full colour (24bit) 8x8 pattern. To aid in writing your own sketches we have also created our own library which will allow you control the display including scrolling of text and numbers with the minimum of effort.
Besides priding header sockets for the RGB LED module, there are additional interfaces for serial and I2C which allow for programming the board via the freely available Arduino development environment and are arranged in a way so that multiple development boards can be 'daisy-chained' to make up larger displays.
Features:
Full 24bit RGB colour control with 6 bit colour correction
Includes hardware constant current PWM driver
Serial and I2C interfaces allowing for daisy-chaining of additional modules
Specifications:
PCB size: 60mm X 60mm
Microprocessor: Atmega328P
Power supply: 5V
Program interface: UART/ISP
Communication protocols UART/I2C
Example Sketch:
Code: Select all
/* FILE: Hello_World.cpp
DATE: 16/07/14
VERSION: 0.1
AUTHOR: Andrew Davies
This is a basic example of how to use the ColourDuino module (HCDVBD0015 & HCMODU0053)
together with the HCColorDuino library to display a simple scrolling text message.
You may copy, alter and reuse this code in any way you like, but please leave
reference to HobbyComponents.com in your comments if you redistribute this code.
This software may not be used directly for the purpose of selling products that
directly compete with Hobby Components Ltd's own range of products.
THIS SOFTWARE IS PROVIDED "AS IS". HOBBY COMPONENTS MAKES NO WARRANTIES, WHETHER
EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ACCURACY OR LACK OF NEGLIGENCE.
HOBBY COMPONENTS SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR ANY DAMAGES,
INCLUDING, BUT NOT LIMITED TO, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY
REASON WHATSOEVER.
*/
/* Include the HCColorDuino library */
#include "HCColorDuino.h"
/* Create an instance of the library */
HCColorDuino HCColorDuino;
void setup()
{
/* Calibrate the LED matrix display for differences in RGB luminace */
HCColorDuino.RGBColourCorrection(25, 63, 63);
/* Set the RGB colour of the font. Valid values are from 0 to 255 for
each colour */
HCColorDuino.SetFontFG(0,0,255);
/* Set the RGB colour of the fonts background. */
HCColorDuino.SetFontBG(10,0,0);
/* Turn on continuous auto-scrolling. Scroll from position 0 to 111
at a scroll speed of 230 (255 max) */
HCColorDuino.ScrollOn(0, 111, 230, CONTINUOUS);
}
/* Main program */
void loop()
{
/* Write some text to the character buffer */
HCColorDuino.print("HELLO WORLD!");
while(1)
{
/* Continuously refresh the the LED matrix */
HCColorDuino.Refresh();
delay(1);
}
}
Code: Select all
/* FILE: Hello_World_Using_HCTimer2.cpp
DATE: 16/07/14
VERSION: 0.1
AUTHOR: Andrew Davies
16/07/14 version 0.1: Original version
27/11/17 version 0.2: Moved HCColorDuino.print() function into setup() and removed
while(1) from main loop as it was being optimised out.
This is a basic example of how to use the ColourDuino module (HCDVBD0015 & HCMODU0053)
together with the HCColorDuino and HCTimer2 library to display a simple scrolling text
message. By using the HCTimer2 library the hardware timer 2 can be re-tasked to refresh
the matrix display in the background.
You may copy, alter and reuse this code in any way you like, but please leave
reference to HobbyComponents.com in your comments if you redistribute this code.
This software may not be used directly for the purpose of selling products that
directly compete with Hobby Components Ltd's own range of products.
THIS SOFTWARE IS PROVIDED "AS IS". HOBBY COMPONENTS MAKES NO WARRANTIES, WHETHER
EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ACCURACY OR LACK OF NEGLIGENCE.
HOBBY COMPONENTS SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR ANY DAMAGES,
INCLUDING, BUT NOT LIMITED TO, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY
REASON WHATSOEVER.
*/
/* Include the HCTimer2 library */
#include <HCTimer2.h>
/* Include the HCColorDuino library */
#include "HCColorDuino.h"
/* Create an instance of the library */
HCColorDuino HCColorDuino;
void setup()
{
/* Initialise the HCTimer2 library with a 2.4mS interval */
HCTimer2Init(T2_CLK_DIV_256, 150);
/* Calibrate the LED matrix display for differences in RGB luminace */
HCColorDuino.RGBColourCorrection(25, 63, 63);
/* Set the RGB colour of the font. Valid values are from 0 to 255 for
each colour */
HCColorDuino.SetFontFG(0,0,255);
/* Set the RGB colour of the fonts background. */
HCColorDuino.SetFontBG(10,0,0);
/* Turn on continuous auto-scrolling. Scroll from position 0 to 111
at a scroll speed of 230 (255 max) */
HCColorDuino.ScrollOn(0, 111, 230, CONTINUOUS);
/* Display some text */
HCColorDuino.print("HELLO WORLD!");
}
/* Main program */
void loop()
{
// Put your own code in here !
}
/* Refresh the matrix display in the background */
void HCTimer2()
{
HCColorDuino.Refresh();
}
http://forum.hobbycomponents.com/viewto ... =43&t=1675
HCTimer2 library (required for some of the example sketches):
http://forum.hobbycomponents.com/viewto ... =43&t=1336
Schematic and datasheet:
Order Yours Here.