From 60c69a902bd8c7af81bc0663ff1b9957ba571f91 Mon Sep 17 00:00:00 2001 From: Steve Clement Date: Wed, 24 Jul 2013 11:17:27 +0200 Subject: [PATCH] - some sample code commited - README added --- PoC/7seg.ino | 55 +++++++++++++++++++++++++++++++++++++++ PoC/README | 18 +++++++++++++ PoC/testcolors_16x32.ino | 56 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 129 insertions(+) create mode 100644 PoC/7seg.ino create mode 100644 PoC/README create mode 100644 PoC/testcolors_16x32.ino diff --git a/PoC/7seg.ino b/PoC/7seg.ino new file mode 100644 index 0000000..b06c49a --- /dev/null +++ b/PoC/7seg.ino @@ -0,0 +1,55 @@ +// Arduino 7 segment display example software +// http://www.hacktronics.com/Tutorials/arduino-and-7-segment-led.html +// License: http://www.opensource.org/licenses/mit-license.php (Go crazy) + +// Define the LED digit patters, from 0 - 9 +// Note that these patterns are for common cathode displays +// For common anode displays, change the 1's to 0's and 0's to 1's +// 1 = LED on, 0 = LED off, in this order: +// Arduino pin: 2,3,4,5,6,7,8 + +// Src: http://www.hacktronics.com/Tutorials/arduino-and-7-segment-led.html + +byte seven_seg_digits[10][7] = { { 1,1,1,1,1,1,0 }, // = 0 + { 0,1,1,0,0,0,0 }, // = 1 + { 1,1,0,1,1,0,1 }, // = 2 + { 1,1,1,1,0,0,1 }, // = 3 + { 0,1,1,0,0,1,1 }, // = 4 + { 1,0,1,1,0,1,1 }, // = 5 + { 1,0,1,1,1,1,1 }, // = 6 + { 1,1,1,0,0,0,0 }, // = 7 + { 1,1,1,1,1,1,1 }, // = 8 + { 1,1,1,0,0,1,1 } // = 9 + }; + +void setup() { + pinMode(2, OUTPUT); + pinMode(3, OUTPUT); + pinMode(4, OUTPUT); + pinMode(5, OUTPUT); + pinMode(6, OUTPUT); + pinMode(7, OUTPUT); + pinMode(8, OUTPUT); + pinMode(9, OUTPUT); + writeDot(0); // start with the "dot" off +} + +void writeDot(byte dot) { + digitalWrite(9, dot); +} + +void sevenSegWrite(byte digit) { + byte pin = 2; + for (byte segCount = 0; segCount < 7; ++segCount) { + digitalWrite(pin, seven_seg_digits[digit][segCount]); + ++pin; + } +} + +void loop() { + for (byte count = 10; count > 0; --count) { + delay(1000); + sevenSegWrite(count - 1); + } + delay(4000); +} diff --git a/PoC/README b/PoC/README new file mode 100644 index 0000000..99e6758 --- /dev/null +++ b/PoC/README @@ -0,0 +1,18 @@ +This is the Proof of Concept code for the 4x5 Windows mock-up. +With a 4-7Segment Display + +It is a static mockup that should be used to make a Video and show off the theory of the project. + +The shift Array code is from this Tutorial page: + +http://arduino.cc/en/Tutorial/ShiftOut + +General information about shift registers: http://en.wikipedia.org/wiki/Shift_register + +The one used for driving the 7 segment LED is a standard (SN)74HC595 which is an 8bit Shift register. +Datasheet: http://www.nxp.com/documents/data_sheet/74HC_HCT595.pdf + +The used module is a 16 segment element with one decimal dot (http://www.adafruit.com/datasheets/BL-S80A-13.PDF) +UHR (Ultra High Red) version + +We used a single in-line i(SIL) resistor to make our lives easy. http://en.wikipedia.org/wiki/Resistor diff --git a/PoC/testcolors_16x32.ino b/PoC/testcolors_16x32.ino new file mode 100644 index 0000000..01bd155 --- /dev/null +++ b/PoC/testcolors_16x32.ino @@ -0,0 +1,56 @@ +// testcolors demo for RGBmatrixPanel library. +// Renders 512 colors on a 16x32 RGB LED matrix. +// Library supports 4096 colors, but there aren't that many pixels! + +#include // Core graphics library +#include // Hardware-specific library + +#define CLK 8 // MUST be on PORTB! +#define LAT A3 +#define OE 9 +#define A A0 +#define B A1 +#define C A2 + +RGBmatrixPanel matrix(A, B, C, CLK, LAT, OE, false); + +void setup() { + matrix.begin(); + uint8_t r=0, g=0, b=0; + + // Draw top half + for (uint8_t x=0; x < 32; x++) { + for (uint8_t y=0; y < 8; y++) { + matrix.drawPixel(x, y, matrix.Color333(r, g, b)); + r++; + if (r == 8) { + r = 0; + g++; + if (g == 8) { + g = 0; + b++; + } + } + } + } + + // Draw bottom half + for (uint8_t x=0; x < 32; x++) { + for (uint8_t y=8; y < 16; y++) { + matrix.drawPixel(x, y, matrix.Color333(r, g, b)); + r++; + if (r == 8) { + r = 0; + g++; + if (g == 8) { + g = 0; + b++; + } + } + } + } +} + +void loop() { + // do nothing +}