Added notes, photos and code for the first step: driving the displays using basic multiplexing

This commit is contained in:
Mark van Renswoude 2016-09-24 14:12:19 +02:00
commit 16a33e26c9
8 changed files with 90 additions and 0 deletions

55
NerfStatTrek.ino Normal file
View File

@ -0,0 +1,55 @@
const int PinBottom = 2;
const int PinTop = 5;
const int PinDigit3 = 3;
const int PinDigit2 = 4;
void setup()
{
pinMode(PinTop, OUTPUT);
pinMode(PinBottom, OUTPUT);
pinMode(PinDigit3, OUTPUT);
pinMode(PinDigit2, OUTPUT);
digitalWrite(PinTop, LOW);
digitalWrite(PinBottom, LOW);
}
int lastTime = 0;
bool top = true;
void loop()
{
int currentTime = millis();
if (currentTime - lastTime > 1000)
{
top = !top;
lastTime = currentTime;
}
// Digit 3 (right) - switch between top and bottom
digitalWrite(PinDigit3, HIGH);
if (top)
{
digitalWrite(PinTop, HIGH);
delay(1);
digitalWrite(PinTop, LOW);
}
else
{
digitalWrite(PinBottom, HIGH);
delay(1);
digitalWrite(PinBottom, LOW);
}
digitalWrite(PinDigit3, LOW);
// Digit 2 (middle) - always bottom
digitalWrite(PinDigit2, HIGH);
digitalWrite(PinBottom, HIGH);
delay(1);
digitalWrite(PinBottom, LOW);
digitalWrite(PinDigit2, LOW);
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 204 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 219 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 222 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 138 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 158 KiB

22
guide/notes.txt Normal file
View File

@ -0,0 +1,22 @@
00 - Planning and getting parts
-------------------------------
Since most tutorials favored a 9V battery as a power source I opted for this route.
Later I discovered it's about the worst thing you can get and will only power the
Arduino for a day while wasting half the battery's potential. Oh well. For now it'll
do. I decided to get some cheap power switches instead so I can turn it off manually.
This means we definitely need to store the values in EEPROM, neat!
01 - Basic multiplexing test
----------------------------
Since the 5V regulator, shift registers and DIP transistors weren't in yet I started
off using the regular NPN transistors, powering the Arduino from the USB connection
and the display using two AA batteries. Using 4 transistors will allow switching between
two digits and two segments, to get a feel for how it'll work in the end.
I didn't want to solder the Arduino just yet but the pins were making aweful connections,
so I lifted it up and stretched the connectors to reach the next row. Similarly, the
batteries are simply stuck together using electrical tape. This whole thing's a bodge at
the moment, but it works!

View File

@ -0,0 +1,13 @@
Pin Assignment
1 E (Bottom Left)
2 D (Bottom)
3 Dot
4 C (Bottom Right)
5 G (Middle)
6 B (Top Right)
7 Digit 3 anode (Right)
8 Digit 2 anode (Middle)
9 F (Top Left)
10 A (Top)
11 Digit 1 anode (Left)