- some sample code commited

- README added
master
Steve Clement 2013-07-24 11:17:27 +02:00
parent b52a35356d
commit 60c69a902b
3 changed files with 129 additions and 0 deletions

55
PoC/7seg.ino Normal file
View File

@ -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);
}

18
PoC/README Normal file
View File

@ -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

56
PoC/testcolors_16x32.ino Normal file
View File

@ -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 <Adafruit_GFX.h> // Core graphics library
#include <RGBmatrixPanel.h> // 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
}