LED displays on Arduinos - a collection | Arduino Pro Mini - 8x8 DIY matrix - Version 2
2016-10-14 11:44:30
I used some sanding paper to diffuse the displays but stripped of the grey stuff as well. still looks nice though. It's possible to daisy them with I2C and put them next to each other to get an even bigger matrix. Works as a micro badge.
Here's the pinout of those tiny matrices. Had to google the name on the PCB to find stuff. Funky trap when checking the pinouts, it's not like an IC where the first row - first col LED is on the top left, it's on the bottom.
Here's some code to start:
int col_pins[8] = {
5, A1, A0, 8, 12, 7, 3, 2
};
int row_pins[8] = {
9, 4, 10, 6, A3, 11, A2, 13
};
byte img[8] =
{
B11000011,
B11000011,
B00111100,
B00111100,
B00111100,
B00111100,
B11000011,
B11000011
};
void setup() {
for (int i=0; i<8; i++)
{
pinMode(col_pins[i], OUTPUT);
pinMode(row_pins[i], OUTPUT);
}
for (int i=0; i<8; i++)
{
digitalWrite(col_pins[i], HIGH);
digitalWrite(row_pins[i], LOW);
}
}
void loop()
{
for (int j=0; j<8; j++)
{
digitalWrite(col_pins[j], LOW);
int i = 0;
for (byte mask = B00000001; mask>0; mask <<= 1)
{
if (img[j] & mask)
{
digitalWrite(row_pins[i], HIGH);
delayMicroseconds(15);
digitalWrite(row_pins[i], LOW);
delayMicroseconds(5);
}
else
{
digitalWrite(row_pins[i], LOW);
delayMicroseconds(20);
}
i++;
}
digitalWrite(col_pins[j], HIGH);
}
}
https://cdn.hackaday.io/images/3990331476437873048.png
https://cdn.hackaday.io/images/2189991476437733925.jpg
LED displays on Arduinos - a collection | Arduino Pro Mini - 8x8 DIY matrix - Version 2
2016-10-14 11:44:30
I used some sanding paper to diffuse the displays but stripped of the grey stuff as well. still looks nice though. It's possible to daisy them with I2C and put them next to each other to get an even bigger matrix. Works as a micro badge.
Here's the pinout of those tiny matrices. Had to google the name on the PCB to find stuff. Funky trap when checking the pinouts, it's not like an IC where the first row - first col LED is on the top left, it's on the bottom.
Here's some code to start:
int col_pins[8] = {
5, A1, A0, 8, 12, 7, 3, 2
};
int row_pins[8] = {
9, 4, 10, 6, A3, 11, A2, 13
};
byte img[8] =
{
B11000011,
B11000011,
B00111100,
B00111100,
B00111100,
B00111100,
B11000011,
B11000011
};
void setup() {
for (int i=0; i<8; i++)
{
pinMode(col_pins[i], OUTPUT);
pinMode(row_pins[i], OUTPUT);
}
for (int i=0; i<8; i++)
{
digitalWrite(col_pins[i], HIGH);
digitalWrite(row_pins[i], LOW);
}
}
void loop()
{
for (int j=0; j<8; j++)
{
digitalWrite(col_pins[j], LOW);
int i = 0;
for (byte mask = B00000001; mask>0; mask <<= 1)
{
if (img[j] & mask)
{
digitalWrite(row_pins[i], HIGH);
delayMicroseconds(15);
digitalWrite(row_pins[i], LOW);
delayMicroseconds(5);
}
else
{
digitalWrite(row_pins[i], LOW);
delayMicroseconds(20);
}
i++;
}
digitalWrite(col_pins[j], HIGH);
}
}
https://cdn.hackaday.io/images/3990331476437873048.png
https://cdn.hackaday.io/images/2189991476437733925.jpg
LED displays on Arduinos - a collection | Arduino Pro Mini - 8x8 DIY matrix
2016-10-04 17:07:44
[Update] hand soldered board
This one is almost as big as the small 20mm x 20mm, inspired by @al1 's visit at my place, showing of his colourful and tiny RGB displays. I plan on putting this on arduinos and just run and hope for the best with blue or white LEDs.
don't be cheap, use fresh solder paste :D first heatgun station (858D) clone test.
I needed something to calm down my nerves - the annoying colleague was annoying - so I hand soldered the board with the today arrived UV LEDs. I wanted purple leds on a purple board...
https://cdn.hackaday.io/images/4761181475593431718.png
https://cdn.hackaday.io/images/7614731475593443140.png
https://cdn.hackaday.io/images/9268151477224343773.jpg
https://cdn.hackaday.io/images/6771531477408611744.png
LED displays on Arduinos - a collection | Arduino Pro Mini - 8x8 DIY matrix
2016-10-04 17:07:44
[Update] hand soldered board
This one is almost as big as the small 20mm x 20mm, inspired by @al1 's visit at my place, showing of his colourful and tiny RGB displays. I plan on putting this on arduinos and just run and hope for the best with blue or white LEDs.
don't be cheap, use fresh solder paste :D first heatgun station (858D) clone test.
I needed something to calm down my nerves - the annoying colleague was annoying - so I hand soldered the board with the today arrived UV LEDs. I wanted purple leds on a purple board...
https://cdn.hackaday.io/images/4761181475593431718.png
https://cdn.hackaday.io/images/7614731475593443140.png
https://cdn.hackaday.io/images/9268151477224343773.jpg
https://cdn.hackaday.io/images/6771531477408611744.png
LED displays on Arduinos - a collection | arduino pro mini shield for 2 5x7 LED displays
2016-10-03 10:37:54
I have those 0.7" knockoffs for the longest time now and never made something with them. The cheapest mcu board I could think of (as always) was an arduino pro mini and I have an idea how I could connect them a bit differently so that I might be able to make it a watch.
https://cdn.hackaday.io/images/3039121475482660983.png
https://cdn.hackaday.io/images/2864921475482684840.png
https://cdn.hackaday.io/images/4295261475483856915.jpg
LED displays on Arduinos - a collection | arduino pro mini shield for 2 5x7 LED displays
2016-10-03 10:37:54
I have those 0.7" knockoffs for the longest time now and never made something with them. The cheapest mcu board I could think of (as always) was an arduino pro mini and I have an idea how I could connect them a bit differently so that I might be able to make it a watch.
https://cdn.hackaday.io/images/3039121475482660983.png
https://cdn.hackaday.io/images/2864921475482684840.png
https://cdn.hackaday.io/images/4295261475483856915.jpg
LED displays on Arduinos - a collection | display stuff
2015-10-07 15:09:57
this slowly turns into a "look what display I've bought this time" project...
I bought 2 5x7 old school vintage LED matrices, called MAN-2A. They are hopefully pin compatible to TIL305 from Texas Instruments. The plan is to make a little time piece with 3x5 digits, so that I would only need two of these displays to get hours and minutes displayed.
http://www.ti.com/lit/ds/sods002/sods002.pdf
LED displays on Arduinos - a collection | display stuff
2015-10-07 15:09:57
this slowly turns into a "look what display I've bought this time" project...
I bought 2 5x7 old school vintage LED matrices, called MAN-2A. They are hopefully pin compatible to TIL305 from Texas Instruments. The plan is to make a little time piece with 3x5 digits, so that I would only need two of these displays to get hours and minutes displayed.
http://www.ti.com/lit/ds/sods002/sods002.pdf
LED displays on Arduinos - a collection | first version boards are in
2015-10-02 00:56:43
and here is the code for the LM75 on board the trinket shield, which finally works.
#include <Wire.h>
#include "SevSeg.h"
SevSeg myDisplay;
unsigned long timer;
int deciSecond = 0;
int f;
void setup()
{
Wire.begin();
Serial.begin(9600);
int displayType = COMMON_CATHODE;
int digit1 = 3;
int digit2 = 4;
int digit3 = 5;
int digit4 = 6;
int segA = 8;
int segB = 9;
int segC = 10;
int segD = 11;
int segE = 12;
int segF = 13;
int segG = 14;
int segDP= 15;
int numberOfDigits = 4;
myDisplay.Begin(displayType, numberOfDigits, digit1, digit2, digit3, digit4, segA, segB, segC, segD, segE, segF, segG, segDP);
myDisplay.SetBrightness(100);
}
void loop()
{
char tempString[10];
sprintf(tempString, "%4d", f);
myDisplay.DisplayString(tempString, 4);
if (millis() - timer >= 1000)
{
Wire.write(0x00);
Wire.requestFrom(72, 2);
while(Wire.available())
{
int8_t msb = Wire.read();
int8_t lsb = Wire.read();
lsb = (lsb & 0x80 ) >> 7;
f = msb * 10 + 5 * lsb;
Serial.println(f,1);
}
timer = millis();
}
}
LED displays on Arduinos - a collection | first version boards are in
2015-10-02 00:56:43
and here is the code for the LM75 on board the trinket shield, which finally works.
#include <Wire.h>
#include "SevSeg.h"
SevSeg myDisplay;
unsigned long timer;
int deciSecond = 0;
int f;
void setup()
{
Wire.begin();
Serial.begin(9600);
int displayType = COMMON_CATHODE;
int digit1 = 3;
int digit2 = 4;
int digit3 = 5;
int digit4 = 6;
int segA = 8;
int segB = 9;
int segC = 10;
int segD = 11;
int segE = 12;
int segF = 13;
int segG = 14;
int segDP= 15;
int numberOfDigits = 4;
myDisplay.Begin(displayType, numberOfDigits, digit1, digit2, digit3, digit4, segA, segB, segC, segD, segE, segF, segG, segDP);
myDisplay.SetBrightness(100);
}
void loop()
{
char tempString[10];
sprintf(tempString, "%4d", f);
myDisplay.DisplayString(tempString, 4);
if (millis() - timer >= 1000)
{
Wire.write(0x00);
Wire.requestFrom(72, 2);
while(Wire.available())
{
int8_t msb = Wire.read();
int8_t lsb = Wire.read();
lsb = (lsb & 0x80 ) >> 7;
f = msb * 10 + 5 * lsb;
Serial.println(f,1);
}
timer = millis();
}
}
LED displays on Arduinos - a collection | Arduino Pro Mini - DL1414
2015-09-26 13:10:32
[UPDATE] changed the picture showing the display put on the wrong way to the correct one
So I had this little fellow in my drawers and wasn't really using it because it was so special and also a bit pricey. But yesterday I wanted to check if it still works and I have way to many dev kits and arduinos and stuff, so I just tried it. I looked up the datasheet and checked the pinout - I was so lucky that the arduino pro mini is an excellent candidate for this display, since the power supply pins happened to be on the same position and the rest was IO. Unfortunately I soldered it the other way around. The black, marked with G pin was not pin 7 GND but pin 1. I was able to cross over the supply pins and rotate the data pins for the display. Luckily the highest databits where set in a way that I was able to access the alphabet characters. I have to de- and re-solder it to get numbers too. It's a really smart little device, you have 2 address pins and 7 data pins for ascii code and one write WR pin.
There are at least two versions as it seems, one Siemems DL-1414T and a HP DL-1414.
As always, if anyone knows a better way for getting bits out of bytes to set pins (in an arduino scope) please tell me, this is what I did:
void set_char(byte digit, byte ascii)
{
digitalWrite(LED_WR, HIGH);
digitalWrite(LED_A0, 1 & digit);
digitalWrite(LED_A1, 1 & digit>>1);
digitalWrite(LED_D0, 1 & ascii>>0);
digitalWrite(LED_D1, 1 & ascii>>1);
digitalWrite(LED_D2, 1 & ascii>>2);
digitalWrite(LED_D3, 1 & ascii>>3);
digitalWrite(LED_D4, 1 & ascii>>4);
digitalWrite(LED_D5, 1 & ascii>>5);
digitalWrite(LED_D6, 1 & ascii>>6);
digitalWrite(LED_WR, LOW);
delay(5);
digitalWrite(LED_WR, HIGH);
delay(5);
}
https://cdn.hackaday.io/images/5406051475503730142.png
LED displays on Arduinos - a collection | Arduino Pro Mini - DL1414
2015-09-26 13:10:32
[UPDATE] changed the picture showing the display put on the wrong way to the correct one
So I had this little fellow in my drawers and wasn't really using it because it was so special and also a bit pricey. But yesterday I wanted to check if it still works and I have way to many dev kits and arduinos and stuff, so I just tried it. I looked up the datasheet and checked the pinout - I was so lucky that the arduino pro mini is an excellent candidate for this display, since the power supply pins happened to be on the same position and the rest was IO. Unfortunately I soldered it the other way around. The black, marked with G pin was not pin 7 GND but pin 1. I was able to cross over the supply pins and rotate the data pins for the display. Luckily the highest databits where set in a way that I was able to access the alphabet characters. I have to de- and re-solder it to get numbers too. It's a really smart little device, you have 2 address pins and 7 data pins for ascii code and one write WR pin.
There are at least two versions as it seems, one Siemems DL-1414T and a HP DL-1414.
As always, if anyone knows a better way for getting bits out of bytes to set pins (in an arduino scope) please tell me, this is what I did:
void set_char(byte digit, byte ascii)
{
digitalWrite(LED_WR, HIGH);
digitalWrite(LED_A0, 1 & digit);
digitalWrite(LED_A1, 1 & digit>>1);
digitalWrite(LED_D0, 1 & ascii>>0);
digitalWrite(LED_D1, 1 & ascii>>1);
digitalWrite(LED_D2, 1 & ascii>>2);
digitalWrite(LED_D3, 1 & ascii>>3);
digitalWrite(LED_D4, 1 & ascii>>4);
digitalWrite(LED_D5, 1 & ascii>>5);
digitalWrite(LED_D6, 1 & ascii>>6);
digitalWrite(LED_WR, LOW);
delay(5);
digitalWrite(LED_WR, HIGH);
delay(5);
}
https://cdn.hackaday.io/images/5406051475503730142.png
LED displays on Arduinos - a collection | Arduino Trinket - dual display board
2015-09-21 10:34:16
so I started this wiring mess, and I think for doing this I should reassign the pins first for better connecting. So whenever I remember to print this, I'll update and upload the designs. Just looking at it, I could remove the A6 and A7 pins out of that messy area. This setup would leave me with two analog inputs and a serial connection. I also ordered some IC sockets for the displays, 12pins where hard (read: not) to find, 24 where to special for my taste - so I ordered 8pin IC sockets that are chainable.
After some awesome iterations and mouse clicks of other persons (see comments for credit) - we got this result:
https://cdn.hackaday.io/images/1792131475502622602.png
https://cdn.hackaday.io/images/4129031475503097299.png
https://cdn.hackaday.io/images/3417111475503037053.png
https://cdn.hackaday.io/images/9115681475503017213.png
LED displays on Arduinos - a collection | Arduino Trinket - dual display board
2015-09-21 10:34:16
so I started this wiring mess, and I think for doing this I should reassign the pins first for better connecting. So whenever I remember to print this, I'll update and upload the designs. Just looking at it, I could remove the A6 and A7 pins out of that messy area. This setup would leave me with two analog inputs and a serial connection. I also ordered some IC sockets for the displays, 12pins where hard (read: not) to find, 24 where to special for my taste - so I ordered 8pin IC sockets that are chainable.
After some awesome iterations and mouse clicks of other persons (see comments for credit) - we got this result:
https://cdn.hackaday.io/images/1792131475502622602.png
https://cdn.hackaday.io/images/4129031475503097299.png
https://cdn.hackaday.io/images/3417111475503037053.png
https://cdn.hackaday.io/images/9115681475503017213.png
LED displays on Arduinos - a collection | Arduino Pro Trinket - bubble display
2015-09-17 11:32:25
With 4 of HP QDSP-6064 bubble displays in a drawer I felt ready to do something with them and the "Clocks for Social Good" - call on hackaday.com finally got me going. It took me 2 hours to design this little shield, nice practice! It also costs me only about 5USD, since I have all the other parts around. Sorry for mixing 1206 and 0603 parts, but that was what I had - feel free to change it, if you want to use this.
Since this project was created around the whole "Ahmed takes a clock apart, brings it to school and get's arrested" - incident, there's the obligatory hashtag for that period of time on it.
Revision Notes
[UPDATE - 1] And of course, I forgot to connect the IIC lines from the LM75 to the arduino. It is now fixed in the github files.
[UPDATE - 2] you didn't actually think I took the right pins on the pro trinket for that, did you? it's now connected to A4 and A5, not A6 and A7 - sorry for that.
https://cdn.hackaday.io/images/7551951475502128886.png
https://cdn.hackaday.io/images/6636731475501729038.png
https://cdn.hackaday.io/images/7532071475501763001.png
LED displays on Arduinos - a collection | Arduino Pro Trinket - bubble display
2015-09-17 11:32:25
With 4 of HP QDSP-6064 bubble displays in a drawer I felt ready to do something with them and the "Clocks for Social Good" - call on hackaday.com finally got me going. It took me 2 hours to design this little shield, nice practice! It also costs me only about 5USD, since I have all the other parts around. Sorry for mixing 1206 and 0603 parts, but that was what I had - feel free to change it, if you want to use this.
Since this project was created around the whole "Ahmed takes a clock apart, brings it to school and get's arrested" - incident, there's the obligatory hashtag for that period of time on it.
Revision Notes
[UPDATE - 1] And of course, I forgot to connect the IIC lines from the LM75 to the arduino. It is now fixed in the github files.
[UPDATE - 2] you didn't actually think I took the right pins on the pro trinket for that, did you? it's now connected to A4 and A5, not A6 and A7 - sorry for that.
https://cdn.hackaday.io/images/7551951475502128886.png
https://cdn.hackaday.io/images/6636731475501729038.png
https://cdn.hackaday.io/images/7532071475501763001.png