I pulled a XILINX demo board out of the bin and turned it into a badge for DEFCON.
The top of the board has a XILINX demo on it and it blinks a string of red LEDs.
The bottom of ghe board is based around an ARDUINO UNO circuit, driving two alphanumeric displays. (SLG 2016, green displays)
The wifi adapter on the right is only for show. (I ran out of pins on the microcontroller) IR LED and IR transistor are also not used.
Camera module on the top left is also just for show.
CODE for Arduino is shown below:
const int LED = 2; // TEST LED
const int WRLOW = 3; // chip pin 1
const int WRHIGH = 4; // chip pin 1
const int ADD1 = 5; // chip pin 2
const int ADD0 = 6; // chip pin 3
const int D0 = 7; // chip pin 5
const int D1 = 8; // chip pin 6
const int D2 = 9; // chip pin 7
const int D3 = 10; // chip pin 8
const int D4 = 11; // chip pin 9
const int D5 = 12; // chip pin 10
const int D6 = 13; // chip pin 11
const int LEFT = 1;
const int RIGHT = 0;
//const char Str1[9] = "BADGES??"; // 8 chars plus a terminating NULL
// A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z,
// 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26
// 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, . ? ! SPACE '
// 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
char Str1[9] = "BADGES??";
char Str2[9] = "WE DON T";
char Str3[9] = "NEED NO ";
char Str4[9] = "STINKING";
char Str5[9] = "BADGES! ";
char Str6[9] = "VAMANOS!";
char Str7[9] = "DEFCON24";
char Str8[9] = "WORK ";
char Str9[9] = " WORK";
char Str10[9] = "HELLO ";
char Str11[9] = " BOYS!";
char Str12[9] = "DID YOU ";
char Str13[9] = "MISS ME?";
char Str14[9] = " !FED ";
char Str15[9] = "IS THAT ";
char Str16[9] = "A PLEDGE";
char Str17[9] = " PIN ??";
char Str18[9] = "ITS NOT ";
char Str19[9] = " OVER ";
char Str20[9] = "UNTIL WE";
char Str21[9] = "DECIDE ";
char Str22[9] = "IT IS !!";
char Str23[9] = "216.58. ";
char Str24[9] = "217.142 ";
char Str25[9] = " I MADE ";
char Str26[9] = " MY OWN ";
char Str27[9] = "STINKING";
char Str28[9] = " DEFCON ";
char Str29[9] = " BADGE! ";
char Str30[9] = "WHAT IN ";
char Str31[9] = " THE ";
char Str32[9] = "WIDE ";
char Str33[9] = " WIDE ";
char Str34[9] = "WORLD OF";
char Str35[9] = " SPORTS ";
char Str36[9] = "IS GOING";
char Str37[9] = "ON HERE?";
char Str38[9] = " TELL ";
char Str39[9] = " THAT ";
char Str40[9] = " TO ";
char Str41[9] = " KANJI ";
char Str42[9] = " CLUB! ";
void setup()
{
pinMode(LED, OUTPUT);
pinMode(WRLOW, OUTPUT); // initialize the digital pin as an output.
pinMode(WRHIGH, OUTPUT); // initialize the digital pin as an output.
pinMode(ADD1, OUTPUT); // initialize the digital pin as an output.
pinMode(ADD0, OUTPUT); // initialize the digital pin as an output.
pinMode(D0, OUTPUT); // initialize the digital pin as an output.
pinMode(D1, OUTPUT); // initialize the digital pin as an output.
pinMode(D2, OUTPUT); // initialize the digital pin as an output.
pinMode(D3, OUTPUT); // initialize the digital pin as an output.
pinMode(D4, OUTPUT); // initialize the digital pin as an output.
pinMode(D5, OUTPUT); // initialize the digital pin as an output.
pinMode(D6, OUTPUT); // initialize the digital pin as an output.
digitalWrite(WRLOW, HIGH);
digitalWrite(WRHIGH, HIGH);
//CLEARDISPLAY(); // clear the display but first turn on all the pixels
CLEARDIS();
}
//*************************************************************************
//*************************************************************************
//********************* MAIN LOOP ***************************************
//*************************************************************************
void loop()
{
// DEFCON23
DisplayMSG(Str7);
delay(5000);
CLEARDIS();
delay(4000);
// BADGES?? WE DONT NEED NO...
DisplayMSG(Str1);
delay(900);
CLEARDIS();
DisplayMSG(Str2);
delay(700);
CLEARDIS();
DisplayMSG(Str3);
delay(700);
CLEARDIS();
DisplayMSG(Str4);
delay(700);
CLEARDIS();
DisplayMSG(Str5);
delay(1200);
CLEARDIS();
DisplayMSG(Str6);
delay(1200);
CLEARDIS();
delay(4000);
// WORK WORK WORK WORK... HELLO BOYS
DisplayMSG(Str8);
delay(200);
CLEARDIS();
DisplayMSG(Str9);
delay(200);
CLEARDIS();
DisplayMSG(Str8);
delay(200);
CLEARDIS();
DisplayMSG(Str9);
delay(200);
CLEARDIS();
DisplayMSG(Str8);
delay(200);
CLEARDIS();
DisplayMSG(Str9);
delay(600);
CLEARDIS();
DisplayMSG(Str10);
delay(800);
CLEARDIS();
DisplayMSG(Str11);
delay(500);
CLEARDIS();
DisplayMSG(Str12);
delay(500);
CLEARDIS();
DisplayMSG(Str13);
delay(800);
CLEARDIS();
delay(4000);
// ! FED
DisplayMSG(Str14);
delay(2000);
CLEARDIS();
delay(4000);
// IS THAT A PLEGE PIN???
DisplayMSG(Str15);
delay(600);
CLEARDIS();
DisplayMSG(Str16);
delay(600);
CLEARDIS();
DisplayMSG(Str17);
delay(1500);
CLEARDIS();
delay(4000);
// ITS NOT OVER UNTIL WE DECIDE IT IS
DisplayMSG(Str18);
delay(500);
CLEARDIS();
DisplayMSG(Str19);
delay(1100);
CLEARDIS();
DisplayMSG(Str20);
delay(500);
CLEARDIS();
DisplayMSG(Str21);
delay(500);
CLEARDIS();
DisplayMSG(Str22);
delay(1500);
CLEARDIS();
delay(4000);
// 148.23.44.1
DisplayMSG(Str23);
delay(900);
CLEARDIS();
DisplayMSG(Str24);
delay(900);
CLEARDIS();
delay(4000);
// I made my own stinking defcon badge
DisplayMSG(Str25);
delay(600);
CLEARDIS();
DisplayMSG(Str26);
delay(800);
CLEARDIS();
DisplayMSG(Str27);
delay(500);
CLEARDIS();
DisplayMSG(Str28);
delay(500);
CLEARDIS();
DisplayMSG(Str29);
delay(1000);
CLEARDIS();
delay(4000);
// WHAT IN THE WIDE WIDE WORLD OF SPORTS IS GOING ON HERE?
DisplayMSG(Str30);
delay(600);
CLEARDIS();
DisplayMSG(Str31);
delay(800);
CLEARDIS();
DisplayMSG(Str32);
delay(500);
CLEARDIS();
DisplayMSG(Str33);
delay(600);
CLEARDIS();
DisplayMSG(Str34);
delay(800);
CLEARDIS();
DisplayMSG(Str35);
delay(500);
CLEARDIS();
DisplayMSG(Str36);
delay(500);
CLEARDIS();
DisplayMSG(Str37);
delay(900);
CLEARDIS();
delay(9000);
// TELL THAT TO KANJI CLUB!
DisplayMSG(Str38);
delay(600);
CLEARDIS();
DisplayMSG(Str39);
delay(800);
CLEARDIS();
DisplayMSG(Str40);
delay(500);
CLEARDIS();
DisplayMSG(Str41);
delay(500);
CLEARDIS();
DisplayMSG(Str42);
delay(1000);
CLEARDIS();
delay(4000);
CLEARDISPLAY();
delay(1000);
}
//*************************************************************************
//*************************************************************************
//*************************************************************************
void DisplayMSG(char str[9]) // display each character in message
{
for(int DISPOS=0; DISPOS < 8; DISPOS++)
{
char ch = str[DISPOS];
if (ch == 'A') // A
{
digitalWrite(D0, HIGH);
delay(1); // wait one ms
digitalWrite(D1, LOW);
delay(1); // wait one ms
digitalWrite(D2, LOW);
delay(1); // wait one ms
digitalWrite(D3, LOW);
delay(1); // wait one ms
digitalWrite(D4,LOW);
delay(1); // wait one ms
digitalWrite(D5, LOW);
delay(1); // wait one ms
digitalWrite(D6, HIGH);
delay(1); // wait one ms
}
//else if (ch == 42) //B
else if (ch == 'B') //B
{
digitalWrite(D0, LOW);
delay(1); // wait one ms
digitalWrite(D1, HIGH);
delay(1); // wait one ms
digitalWrite(D2, LOW);
delay(1); // wait one ms
digitalWrite(D3, LOW);
delay(1); // wait one ms
digitalWrite(D4,LOW);
delay(1); // wait one ms
digitalWrite(D5, LOW);
delay(1); // wait one ms
digitalWrite(D6, HIGH);
delay(1); // wait one ms
}
else if (ch == 'C') // C
{
digitalWrite(D0, HIGH);
delay(1); // wait one ms
digitalWrite(D1, HIGH);
delay(1); // wait one ms
digitalWrite(D2, LOW);
delay(1); // wait one ms
digitalWrite(D3, LOW);
delay(1); // wait one ms
digitalWrite(D4,LOW);
delay(1); // wait one ms
digitalWrite(D5, LOW);
delay(1); // wait one ms
digitalWrite(D6, HIGH);
delay(1); // wait one ms
}
else if (ch == 'D') // D
{
digitalWrite(D0, LOW);
delay(1); // wait one ms
digitalWrite(D1, LOW);
delay(1); // wait one ms
digitalWrite(D2, HIGH);
delay(1); // wait one ms
digitalWrite(D3, LOW);
delay(1); // wait one ms
digitalWrite(D4,LOW);
delay(1); // wait one ms
digitalWrite(D5, LOW);
delay(1); // wait one ms
digitalWrite(D6, HIGH);
delay(1); // wait one ms
}
else if (ch == 'E') // E
{
digitalWrite(D0, HIGH);
delay(1); // wait one ms
digitalWrite(D1, LOW);
delay(1); // wait one ms
digitalWrite(D2, HIGH);
delay(1); // wait one ms
digitalWrite(D3, LOW);
delay(1); // wait one ms
digitalWrite(D4,LOW);
delay(1); // wait one ms
digitalWrite(D5, LOW);
delay(1); // wait one ms
digitalWrite(D6, HIGH);
delay(1); // wait one ms
}
else if (ch == 'F') // F
{
digitalWrite(D0, LOW);
delay(1); // wait one ms
digitalWrite(D1, HIGH);
delay(1); // wait one ms
digitalWrite(D2, HIGH);
delay(1); // wait one ms
digitalWrite(D3, LOW);
delay(1); // wait one ms
digitalWrite(D4,LOW);
delay(1); // wait one ms
digitalWrite(D5, LOW);
delay(1); // wait one ms
digitalWrite(D6, HIGH);
delay(1); // wait one ms
}
else if (ch == 'G') // G
{
digitalWrite(D0, HIGH);
delay(1); // wait one ms
digitalWrite(D1, HIGH);
delay(1); // wait one ms
digitalWrite(D2, HIGH);
delay(1); // wait one ms
digitalWrite(D3, LOW);
delay(1); // wait one ms
digitalWrite(D4,LOW);
delay(1); // wait one ms
digitalWrite(D5, LOW);
delay(1); // wait one ms
digitalWrite(D6, HIGH);
delay(1); // wait one ms
}
else if (ch == 'H') // H
{
digitalWrite(D0, LOW);
delay(1); // wait one ms
digitalWrite(D1, LOW);
delay(1); // wait one ms
digitalWrite(D2, LOW);
delay(1); // wait one ms
digitalWrite(D3, HIGH);
delay(1); // wait one ms
digitalWrite(D4,LOW);
delay(1); // wait one ms
digitalWrite(D5, LOW);
delay(1); // wait one ms
digitalWrite(D6, HIGH);
delay(1); // wait one ms
}
else if (ch == 'I') // I
{
digitalWrite(D0, HIGH);
delay(1); // wait one ms
digitalWrite(D1, LOW);
delay(1); // wait one ms
digitalWrite(D2, LOW);
delay(1); // wait one ms
digitalWrite(D3, HIGH);
delay(1); // wait one ms
digitalWrite(D4,LOW);
delay(1); // wait one ms
digitalWrite(D5, LOW);
delay(1); // wait one ms
digitalWrite(D6, HIGH);
delay(1); // wait one ms
}
else if (ch == 'J') // J
{
digitalWrite(D0, LOW);
delay(1); // wait one ms
digitalWrite(D1, HIGH);
delay(1); // wait one ms
digitalWrite(D2, LOW);
delay(1); // wait one ms
digitalWrite(D3, HIGH);
delay(1); // wait one ms
digitalWrite(D4,LOW);
delay(1); // wait one ms
digitalWrite(D5, LOW);
delay(1); // wait one ms
digitalWrite(D6, HIGH);
delay(1); // wait one ms
}
//***********
else if (ch == 'K') // K
{
digitalWrite(D0, HIGH);
delay(1); // wait one ms
digitalWrite(D1, HIGH);
delay(1); // wait one ms
digitalWrite(D2, LOW);
delay(1); // wait one ms
digitalWrite(D3, HIGH);
delay(1); // wait one ms
digitalWrite(D4,LOW);
delay(1); // wait one ms
digitalWrite(D5, LOW);
delay(1); // wait one ms
digitalWrite(D6, HIGH);
delay(1); // wait one ms
}
else if (ch == 'L') // L
{
digitalWrite(D0, LOW);
delay(1); // wait one ms
digitalWrite(D1, LOW);
delay(1); // wait one ms
digitalWrite(D2, HIGH);
delay(1); // wait one ms
digitalWrite(D3, HIGH);
delay(1); // wait one ms
digitalWrite(D4,LOW);
delay(1); // wait one ms
digitalWrite(D5, LOW);
delay(1); // wait one ms
digitalWrite(D6, HIGH);
delay(1); // wait one ms
}
else if (ch == 'M') // M
{
digitalWrite(D0, HIGH);
delay(1); // wait one ms
digitalWrite(D1, LOW);
delay(1); // wait one ms
digitalWrite(D2, HIGH);
delay(1); // wait one ms
digitalWrite(D3, HIGH);
delay(1); // wait one ms
digitalWrite(D4,LOW);
delay(1); // wait one ms
digitalWrite(D5, LOW);
delay(1); // wait one ms
digitalWrite(D6, HIGH);
delay(1); // wait one ms
}
else if (ch == 'N') // N
{
digitalWrite(D0, LOW);
delay(1); // wait one ms
digitalWrite(D1, HIGH);
delay(1); // wait one ms
digitalWrite(D2, HIGH);
delay(1); // wait one ms
digitalWrite(D3, HIGH);
delay(1); // wait one ms
digitalWrite(D4,LOW);
delay(1); // wait one ms
digitalWrite(D5, LOW);
delay(1); // wait one ms
digitalWrite(D6, HIGH);
delay(1); // wait one ms
}
else if (ch == 'O') // O
{
digitalWrite(D0, HIGH);
delay(1); // wait one ms
digitalWrite(D1, HIGH);
delay(1); // wait one ms
digitalWrite(D2, HIGH);
delay(1); // wait one ms
digitalWrite(D3, HIGH);
delay(1); // wait one ms
digitalWrite(D4,LOW);
delay(1); // wait one ms
digitalWrite(D5, LOW);
delay(1); // wait one ms
digitalWrite(D6, HIGH);
delay(1); // wait one ms
}
else if (ch == 'P') // P
{
digitalWrite(D0, LOW);
delay(1); // wait one ms
digitalWrite(D1, LOW);
delay(1); // wait one ms
digitalWrite(D2, LOW);
delay(1); // wait one ms
digitalWrite(D3, LOW);
delay(1); // wait one ms
digitalWrite(D4,HIGH);
delay(1); // wait one ms
digitalWrite(D5, LOW);
delay(1); // wait one ms
digitalWrite(D6, HIGH);
delay(1); // wait one ms
}
else if (ch == 'Q') // Q
{
digitalWrite(D0, HIGH);
delay(1); // wait one ms
digitalWrite(D1, LOW);
delay(1); // wait one ms
digitalWrite(D2, LOW);
delay(1); // wait one ms
digitalWrite(D3, LOW);
delay(1); // wait one ms
digitalWrite(D4,HIGH);
delay(1); // wait one ms
digitalWrite(D5, LOW);
delay(1); // wait one ms
digitalWrite(D6, HIGH);
delay(1); // wait one ms
}
else if (ch == 'R') // R
{
digitalWrite(D0, LOW);
delay(1); // wait one ms
digitalWrite(D1, HIGH);
delay(1); // wait one ms
digitalWrite(D2, LOW);
delay(1); // wait one ms
digitalWrite(D3, LOW);
delay(1); // wait one ms
digitalWrite(D4,HIGH);
delay(1); // wait one ms
digitalWrite(D5, LOW);
delay(1); // wait one ms
digitalWrite(D6, HIGH);
delay(1); // wait one ms
}
else if (ch == 'S') // S
{
digitalWrite(D0, HIGH);
delay(1); // wait one ms
digitalWrite(D1, HIGH);
delay(1); // wait one ms
digitalWrite(D2, LOW);
delay(1); // wait one ms
digitalWrite(D3, LOW);
delay(1); // wait one ms
digitalWrite(D4,HIGH);
delay(1); // wait one ms
digitalWrite(D5, LOW);
delay(1); // wait one ms
digitalWrite(D6, HIGH);
delay(1); // wait one ms
}
else if (ch == 'T') // T
{
digitalWrite(D0, LOW);
delay(1); // wait one ms
digitalWrite(D1, LOW);
delay(1); // wait one ms
digitalWrite(D2, HIGH);
delay(1); // wait one ms
digitalWrite(D3, LOW);
delay(1); // wait one ms
digitalWrite(D4,HIGH);
delay(1); // wait one ms
digitalWrite(D5, LOW);
delay(1); // wait one ms
digitalWrite(D6, HIGH);
delay(1); // wait one ms
}
else if (ch == 'U') // U
{
digitalWrite(D0, HIGH);
delay(1); // wait one ms
digitalWrite(D1, LOW);
delay(1); // wait one ms
digitalWrite(D2, HIGH);
delay(1); // wait one ms
digitalWrite(D3, LOW);
delay(1); // wait one ms
digitalWrite(D4,HIGH);
delay(1); // wait one ms
digitalWrite(D5, LOW);
delay(1); // wait one ms
digitalWrite(D6, HIGH);
delay(1); // wait one ms
}
else if (ch == 'V') // V
{
digitalWrite(D0, LOW);
delay(1); // wait one ms
digitalWrite(D1, HIGH);
delay(1); // wait one ms
digitalWrite(D2, HIGH);
delay(1); // wait one ms
digitalWrite(D3, LOW);
delay(1); // wait one ms
digitalWrite(D4,HIGH);
delay(1); // wait one ms
digitalWrite(D5, LOW);
delay(1); // wait one ms
digitalWrite(D6, HIGH);
delay(1); // wait one ms
}
else if (ch == 'W') // W
{
digitalWrite(D0, HIGH);
delay(1); // wait one ms
digitalWrite(D1, HIGH);
delay(1); // wait one ms
digitalWrite(D2, HIGH);
delay(1); // wait one ms
digitalWrite(D3, LOW);
delay(1); // wait one ms
digitalWrite(D4,HIGH);
delay(1); // wait one ms
digitalWrite(D5, LOW);
delay(1); // wait one ms
digitalWrite(D6, HIGH);
delay(1); // wait one ms
}
else if (ch == 'X') // X
{
digitalWrite(D0, LOW);
delay(1); // wait one ms
digitalWrite(D1, LOW);
delay(1); // wait one ms
digitalWrite(D2, LOW);
delay(1); // wait one ms
digitalWrite(D3, HIGH);
delay(1); // wait one ms
digitalWrite(D4,HIGH);
delay(1); // wait one ms
digitalWrite(D5, LOW);
delay(1); // wait one ms
digitalWrite(D6, HIGH);
delay(1); // wait one ms
}
else if (ch == 'Y') // Y
{
digitalWrite(D0, HIGH);
delay(1); // wait one ms
digitalWrite(D1, LOW);
delay(1); // wait one ms
digitalWrite(D2, LOW);
delay(1); // wait one ms
digitalWrite(D3, HIGH);
delay(1); // wait one ms
digitalWrite(D4,HIGH);
delay(1); // wait one ms
digitalWrite(D5, LOW);
delay(1); // wait one ms
digitalWrite(D6, HIGH);
delay(1); // wait one ms
}
else if (ch == 'Z') // Z
{
digitalWrite(D0, LOW);
delay(1); // wait one ms
digitalWrite(D1, HIGH);
delay(1); // wait one ms
digitalWrite(D2, LOW);
delay(1); // wait one ms
digitalWrite(D3, HIGH);
delay(1); // wait one ms
digitalWrite(D4,HIGH);
delay(1); // wait one ms
digitalWrite(D5, LOW);
delay(1); // wait one ms
digitalWrite(D6, HIGH);
delay(1); // wait one ms
}
else if (ch == '1') // 1
{
digitalWrite(D0, HIGH);
delay(1); // wait one ms
digitalWrite(D1, LOW);
delay(1); // wait one ms
digitalWrite(D2, LOW);
delay(1); // wait one ms
digitalWrite(D3, LOW);
delay(1); // wait one ms
digitalWrite(D4, HIGH);
delay(1); // wait one ms
digitalWrite(D5, HIGH);
delay(1); // wait one ms
digitalWrite(D6, LOW);
delay(1); // wait one ms
}
else if (ch == '2') // 2
{
digitalWrite(D0, LOW);
delay(1); // wait one ms
digitalWrite(D1, HIGH);
delay(1); // wait one ms
digitalWrite(D2, LOW);
delay(1); // wait one ms
digitalWrite(D3, LOW);
delay(1); // wait one ms
digitalWrite(D4, HIGH);
delay(1); // wait one ms
digitalWrite(D5, HIGH);
delay(1); // wait one ms
digitalWrite(D6, LOW);
delay(1); // wait one ms
}
else if (ch == '3') // 3
{
digitalWrite(D0, HIGH);
delay(1); // wait one ms
digitalWrite(D1, HIGH);
delay(1); // wait one ms
digitalWrite(D2, LOW);
delay(1); // wait one ms
digitalWrite(D3, LOW);
delay(1); // wait one ms
digitalWrite(D4, HIGH);
delay(1); // wait one ms
digitalWrite(D5, HIGH);
delay(1); // wait one ms
digitalWrite(D6, LOW);
delay(1); // wait one ms
}
else if (ch == '4') // 4
{
digitalWrite(D0, LOW);
delay(1); // wait one ms
digitalWrite(D1, LOW);
delay(1); // wait one ms
digitalWrite(D2, HIGH);
delay(1); // wait one ms
digitalWrite(D3, LOW);
delay(1); // wait one ms
digitalWrite(D4, HIGH);
delay(1); // wait one ms
digitalWrite(D5, HIGH);
delay(1); // wait one ms
digitalWrite(D6, LOW);
delay(1); // wait one ms
}
else if (ch == '5') // 5
{
digitalWrite(D0, HIGH);
delay(1); // wait one ms
digitalWrite(D1, LOW);
delay(1); // wait one ms
digitalWrite(D2, HIGH);
delay(1); // wait one ms
digitalWrite(D3, LOW);
delay(1); // wait one ms
digitalWrite(D4, HIGH);
delay(1); // wait one ms
digitalWrite(D5, HIGH);
delay(1); // wait one ms
digitalWrite(D6, LOW);
delay(1); // wait one ms
}
else if (ch == '6') // 6
{
digitalWrite(D0, LOW);
delay(1); // wait one ms
digitalWrite(D1, HIGH);
delay(1); // wait one ms
digitalWrite(D2, HIGH);
delay(1); // wait one ms
digitalWrite(D3, LOW);
delay(1); // wait one ms
digitalWrite(D4, HIGH);
delay(1); // wait one ms
digitalWrite(D5, HIGH);
delay(1); // wait one ms
digitalWrite(D6, LOW);
delay(1); // wait one ms
}
else if (ch == '7') // 7
{
digitalWrite(D0, HIGH);
delay(1); // wait one ms
digitalWrite(D1, HIGH);
delay(1); // wait one ms
digitalWrite(D2, HIGH);
delay(1); // wait one ms
digitalWrite(D3, LOW);
delay(1); // wait one ms
digitalWrite(D4, HIGH);
delay(1); // wait one ms
digitalWrite(D5, HIGH);
delay(1); // wait one ms
digitalWrite(D6, LOW);
delay(1); // wait one ms
}
else if (ch == '8') // 8
{
digitalWrite(D0, LOW);
delay(1); // wait one ms
digitalWrite(D1, LOW);
delay(1); // wait one ms
digitalWrite(D2, LOW);
delay(1); // wait one ms
digitalWrite(D3, HIGH);
delay(1); // wait one ms
digitalWrite(D4, HIGH);
delay(1); // wait one ms
digitalWrite(D5, HIGH);
delay(1); // wait one ms
digitalWrite(D6, LOW);
delay(1); // wait one ms
}
else if (ch == '9') // 9
{
digitalWrite(D0, HIGH);
delay(1); // wait one ms
digitalWrite(D1, LOW);
delay(1); // wait one ms
digitalWrite(D2, LOW);
delay(1); // wait one ms
digitalWrite(D3, HIGH);
delay(1); // wait one ms
digitalWrite(D4, HIGH);
delay(1); // wait one ms
digitalWrite(D5, HIGH);
delay(1); // wait one ms
digitalWrite(D6, LOW);
delay(1); // wait one ms
}
else if (ch == '0') // 0
{
digitalWrite(D0, LOW);
delay(1); // wait one ms
digitalWrite(D1, LOW);
delay(1); // wait one ms
digitalWrite(D2, LOW);
delay(1); // wait one ms
digitalWrite(D3, LOW);
delay(1); // wait one ms
digitalWrite(D4, HIGH);
delay(1); // wait one ms
digitalWrite(D5, HIGH);
delay(1); // wait one ms
digitalWrite(D6, LOW);
delay(1); // wait one ms
}
else if (ch == '.') // .
{
digitalWrite(D0, LOW);
delay(1); // wait one ms
digitalWrite(D1, HIGH);
delay(1); // wait one ms
digitalWrite(D2, HIGH);
delay(1); // wait one ms
digitalWrite(D3, HIGH);
delay(1); // wait one ms
digitalWrite(D4, LOW);
delay(1); // wait one ms
digitalWrite(D5, HIGH);
delay(1); // wait one ms
digitalWrite(D6, LOW);
delay(1); // wait one ms
}
else if (ch == '?') // ?
{
digitalWrite(D0, HIGH);
delay(1); // wait one ms
digitalWrite(D1, HIGH);
delay(1); // wait one ms
digitalWrite(D2, HIGH);
delay(1); // wait one ms
digitalWrite(D3, HIGH);
delay(1); // wait one ms
digitalWrite(D4, HIGH);
delay(1); // wait one ms
digitalWrite(D5, HIGH);
delay(1); // wait one ms
digitalWrite(D6, LOW);
delay(1); // wait one ms
}
else if (ch == '!') // !
{
digitalWrite(D0, HIGH);
delay(1); // wait one ms
digitalWrite(D1, LOW);
delay(1); // wait one ms
digitalWrite(D2, LOW);
delay(1); // wait one ms
digitalWrite(D3, LOW);
delay(1); // wait one ms
digitalWrite(D4, LOW);
delay(1); // wait one ms
digitalWrite(D5, HIGH);
delay(1); // wait one ms
digitalWrite(D6, LOW);
delay(1); // wait one ms
}
else if (ch == ' ') // space
{
digitalWrite(D0, LOW);
delay(1); // wait one ms
digitalWrite(D1, LOW);
delay(1); // wait one ms
digitalWrite(D2, LOW);
delay(1); // wait one ms
digitalWrite(D3, LOW);
delay(1); // wait one ms
digitalWrite(D4, LOW);
delay(1); // wait one ms
digitalWrite(D5, HIGH);
delay(1); // wait one ms
digitalWrite(D6, LOW);
delay(1); // wait one ms
}
if ((DISPOS == 0) | (DISPOS == 4)) // set the ADDRESS LINES
{
digitalWrite(ADD0, HIGH);
digitalWrite(ADD1, HIGH);
}
if ((DISPOS == 1) | (DISPOS == 5))
{
digitalWrite(ADD0, LOW);
digitalWrite(ADD1, HIGH);
}
if ((DISPOS == 2) | (DISPOS == 6))
{
digitalWrite(ADD0, HIGH);
digitalWrite(ADD1, LOW);
}
if ((DISPOS == 3) | (DISPOS == 7))
{
digitalWrite(ADD0, LOW);
digitalWrite(ADD1, LOW);
}
delay(5);
if (DISPOS < 4) // write to LEFT display
{
delay(1);
digitalWrite(WRHIGH, LOW);
delay(2);
digitalWrite(WRHIGH, HIGH);
delay(2);
}
else // write to RIGHT display
{
delay(1);
digitalWrite(WRLOW, LOW);
delay(2);
digitalWrite(WRLOW, HIGH);
delay(2);
}
//DISPOS = 8;
// increment to the next position (done by the for loop)
delay(1);
}
}
//digitalWrite(LED, HIGH); // DIT DAH DIT
//delay(200);
//digitalWrite(LED, LOW);
//delay(200);
//digitalWrite(LED, HIGH);
//delay(450);
//digitalWrite(LED, LOW);
//delay(200);
//digitalWrite(LED, HIGH);
//delay(200);
//digitalWrite(LED, LOW);
void CLEARDISPLAY(){ // writes all pixels and then spaces to all segmets of the display 010 0000
digitalWrite(D0, HIGH);
delay(1); // wait one ms
digitalWrite(D1, HIGH);
delay(1); // wait one ms
digitalWrite(D2, HIGH);
delay(1); // wait one ms
digitalWrite(D3, HIGH);
delay(1); // wait one ms
digitalWrite(D4,HIGH);
delay(1); // wait one ms
digitalWrite(D5, HIGH);
delay(1); // wait one ms
digitalWrite(D6, HIGH);
delay(1); // wait one ms
digitalWrite(ADD0, HIGH);
digitalWrite(ADD1, HIGH);
PULSEBOTHWRLINES();
delay(3);
digitalWrite(ADD0, LOW);
digitalWrite(ADD1, HIGH);
PULSEBOTHWRLINES();
delay(3);
digitalWrite(ADD0, HIGH);
digitalWrite(ADD1, LOW);
PULSEBOTHWRLINES();
delay(3);
digitalWrite(ADD0, LOW);
digitalWrite(ADD1, LOW);
PULSEBOTHWRLINES();
delay(3);
delay(450);
digitalWrite(D0, LOW);
delay(1); // wait one ms
digitalWrite(D1, LOW);
delay(1); // wait one ms
digitalWrite(D2, LOW);
delay(1); // wait one ms
digitalWrite(D3, LOW);
delay(1); // wait one ms
digitalWrite(D4,LOW);
delay(1); // wait one ms
digitalWrite(D5, HIGH);
delay(1); // wait one ms
digitalWrite(D6, LOW);
delay(1); // wait one ms
delay(100);
digitalWrite(ADD0, HIGH); // clear HIGH DISPLAY CHAR 3
digitalWrite(ADD1, HIGH);
delay(1);
digitalWrite(WRHIGH, LOW);
delay(2);
digitalWrite(WRHIGH, HIGH);
delay(2);
digitalWrite(ADD0, LOW); // clear LOW DISPLAY CHAR 0
digitalWrite(ADD1, LOW);
delay(1);
digitalWrite(WRLOW, LOW);
delay(2);
digitalWrite(WRLOW, HIGH);
delay(2);
delay(10);
digitalWrite(ADD0, LOW); // clear HIGH DISPLAY CHAR 2
digitalWrite(ADD1, HIGH);
delay(1);
digitalWrite(WRHIGH, LOW);
delay(2);
digitalWrite(WRHIGH, HIGH);
delay(2);
digitalWrite(ADD0, HIGH); // clear LOW DISPLAY CHAR 1
digitalWrite(ADD1, LOW);
delay(1);
digitalWrite(WRLOW, LOW);
delay(2);
digitalWrite(WRLOW, HIGH);
delay(2);
delay(10);
digitalWrite(ADD0, HIGH); // clear HIGH DISPLAY CHAR 1
digitalWrite(ADD1, LOW);
delay(1);
digitalWrite(WRHIGH, LOW);
delay(2);
digitalWrite(WRHIGH, HIGH);
delay(2);
digitalWrite(ADD0, LOW); // clear LOW DISPLAY CHAR 2
digitalWrite(ADD1, HIGH);
delay(1);
digitalWrite(WRLOW, LOW);
delay(2);
digitalWrite(WRLOW, HIGH);
delay(2);
delay(10);
digitalWrite(ADD0, LOW); // clear HIGH DISPLAY CHAR 0
digitalWrite(ADD1, LOW);
delay(1);
digitalWrite(WRHIGH, LOW);
delay(2);
digitalWrite(WRHIGH, HIGH);
delay(2);
digitalWrite(ADD0, HIGH); // clear LOW DISPLAY CHAR 3
digitalWrite(ADD1, HIGH);
delay(1);
digitalWrite(WRLOW, LOW);
delay(2);
digitalWrite(WRLOW, HIGH);
delay(2);
// delay(140);
}
void PULSEBOTHWRLINES()
{
digitalWrite(WRLOW, LOW); // pulse the write line for BOTH chips
digitalWrite(WRHIGH, LOW);
delay(5);
digitalWrite(WRLOW, HIGH);
digitalWrite(WRHIGH, HIGH);
delay(5);
}
void CLEARDIS(void) // clears the entire display
{
digitalWrite(D0, LOW);
delay(1); // wait one ms
digitalWrite(D1, LOW);
delay(1); // wait one ms
digitalWrite(D2, LOW);
delay(1); // wait one ms
digitalWrite(D3, LOW);
delay(1); // wait one ms
digitalWrite(D4,LOW);
delay(1); // wait one ms
digitalWrite(D5, HIGH);
delay(1); // wait one ms
digitalWrite(D6, LOW);
delay(1); // wait one ms
digitalWrite(ADD0, HIGH);
digitalWrite(ADD1, HIGH);
PULSEBOTHWRLINES();
delay(3);
digitalWrite(ADD0, LOW);
digitalWrite(ADD1, HIGH);
PULSEBOTHWRLINES();
delay(3);
digitalWrite(ADD0, HIGH);
digitalWrite(ADD1, LOW);
PULSEBOTHWRLINES();
delay(3);
digitalWrite(ADD0, LOW);
digitalWrite(ADD1, LOW);
PULSEBOTHWRLINES();
delay(3);
}