Adruino 14 segment LED board
Introduction
For HAR2009 we build a 14 segment board (max to use on Arduino). It's called Blinky
The board was able to retrieve messages from http://www.randomdata.nl/blinky/ and display the letters piece by piece.
There is still a log of all the messages but the board is now down, probably we will use it on other conference like Brucon
Also the ETH0 winterevent had some company from blinky.
The board and the build
Error creating thumbnail: Unable to save thumbnail to destination Error creating thumbnail: Unable to save thumbnail to destination Error creating thumbnail: Unable to save thumbnail to destination Error creating thumbnail: Unable to save thumbnail to destination
Schema
The Arduino code
Don't look at my programming skills, it works but it can use some adjustments :-)
/* * Blink board at HAR2009, made by Fish, free for use but send me an update or picture. */ #include <Ethernet.h> byte mac[] = { 0x88, 0xED, 0xBE, 0xEF, 0xFE, 0xED }; //the arduino's mac address byte ip[] = { 87, 76, 53, 182 }; // the arduino's op address byte server[] = { 0, 0, 0, 0 }; // ip address of server to get the characters byte gateway[] = { 87, 76, 52, 1 }; //ip address of the gateway byte subnet[] = { 255, 255 ,254 ,0 }; //subnetmask Client client(server, 80 ); //Define the connect to the webserver int ledPin1 = 18; // LED connected to digital pin 1 int ledPin2 = 19; // LED connected to digital pin 2 int ledPin3 = 2; // LED connected to digital pinntf 3 int ledPin4 = 3; // LED connected to digital pin 4 int ledPin5 = 4; // LED connected to digital pin 5 int ledPin6 = 5; // LED connected to digital pin 6 int ledPin7 = 6; // LED connected to digital pin 7 int ledPin8 = 7; // LED connected to digital pin 8 int ledPin9 = 8; // LED connected to digital pin 9 int ledPin10 = 9; // LED connected to digital pin 10 int ledPin11 = 14; // LED connected to digital pin 11 int ledPin12 = 15; // LED connected to digital pin 12 int ledPin13 = 16; // LED connected to digital pin 13 int ledPin14 = 17; // LED connected to digital pin 14 int time = 500; // the time a segment should be on int timeshort = 200; //time of lights off int timebreak = 40; //time te remove all the lights void setup() // run once, when the sketch starts { Ethernet.begin(mac, ip, gateway, subnet); //starting the ethernet delay(1000); Serial.begin(9600); //for debug you can open a serial connection if (client.connect()) { Serial.println("connected"); client.println("GET /hitb2600rd.txt HTTP/1.0"); client.println(); for (int i=0; i <= 408; i++){ if (client.available()) { char c = client.read(); //skipping the first few characters caused by the HTTP header } } } pinMode(ledPin1, OUTPUT); // sets the digital pin as output pinMode(ledPin2, OUTPUT); // sets the digital pin as output pinMode(ledPin3, OUTPUT); // sets the digital pin as output pinMode(ledPin4, OUTPUT); // sets the digital pin as output pinMode(ledPin5, OUTPUT); // sets the digital pin as output pinMode(ledPin6, OUTPUT); // sets the digital pin as output pinMode(ledPin7, OUTPUT); // sets the digital pin as output pinMode(ledPin8, OUTPUT); // sets the digital pin as output pinMode(ledPin9, OUTPUT); // sets the digital pin as output pinMode(ledPin10, OUTPUT); // sets the digital pin as output pinMode(ledPin11, OUTPUT); // sets the digital pin as output pinMode(ledPin12, OUTPUT); // sets the digital pin as output pinMode(ledPin13, OUTPUT); // sets the digital pin as output pinMode(ledPin14, OUTPUT); // sets the digital pin as output } int ledoff() { delay(time); for (int i=0; i <= 9; i++){ digitalWrite(i, LOW); // sets the LEDs off delay(timebreak); } for (int i=14; i <= 19; i++){ digitalWrite(i, LOW); // sets the LEDs off } } int dig1() { digitalWrite(ledPin5, HIGH); // sets the LED on digitalWrite(ledPin6, HIGH); // sets the LED on ledoff(); } int dig2() { digitalWrite(ledPin1, HIGH); // sets the LED on digitalWrite(ledPin3, HIGH); // sets the LED on digitalWrite(ledPin4, HIGH); // sets the LED on digitalWrite(ledPin6, HIGH); // sets the LED on digitalWrite(ledPin13, HIGH); // sets the LED on digitalWrite(ledPin14, HIGH); // sets the LED on ledoff(); } int dig3() { digitalWrite(ledPin1, HIGH); // sets the LED on digitalWrite(ledPin4, HIGH); // sets the LED on digitalWrite(ledPin5, HIGH); // sets the LED on digitalWrite(ledPin6, HIGH); // sets the LED on digitalWrite(ledPin13, HIGH); // sets the LED on digitalWrite(ledPin14, HIGH); // sets the LED on ledoff(); } int dig4() { digitalWrite(ledPin2, HIGH); // sets the LED on digitalWrite(ledPin5, HIGH); // sets the LED on digitalWrite(ledPin6, HIGH); // sets the LED on digitalWrite(ledPin13, HIGH); // sets the LED on digitalWrite(ledPin14, HIGH); // sets the LED on ledoff(); } int dig5() { digitalWrite(ledPin1, HIGH); // sets the LED on digitalWrite(ledPin2, HIGH); // sets the LED on digitalWrite(ledPin4, HIGH); // sets the LED on digitalWrite(ledPin5, HIGH); // sets the LED on digitalWrite(ledPin13, HIGH); // sets the LED on digitalWrite(ledPin14, HIGH); // sets the LED on ledoff(); } int dig6() { digitalWrite(ledPin1, HIGH); // sets the LED on digitalWrite(ledPin2, HIGH); // sets the LED on digitalWrite(ledPin3, HIGH); // sets the LED on digitalWrite(ledPin4, HIGH); // sets the LED on digitalWrite(ledPin5, HIGH); // sets the LED on digitalWrite(ledPin13, HIGH); // sets the LED on digitalWrite(ledPin14, HIGH); // sets the LED on ledoff(); } int dig7() { digitalWrite(ledPin1, HIGH); // sets the LED on digitalWrite(ledPin5, HIGH); // sets the LED on digitalWrite(ledPin6, HIGH); // sets the LED on ledoff(); } int dig8() { digitalWrite(ledPin1, HIGH); // sets the LED on digitalWrite(ledPin2, HIGH); // sets the LED on digitalWrite(ledPin3, HIGH); // sets the LED on digitalWrite(ledPin4, HIGH); // sets the LED on digitalWrite(ledPin5, HIGH); // sets the LED on digitalWrite(ledPin6, HIGH); // sets the LED on digitalWrite(ledPin13, HIGH); // sets the LED on digitalWrite(ledPin14, HIGH); // sets the LED on ledoff(); } int dig9() { digitalWrite(ledPin1, HIGH); // sets the LED on digitalWrite(ledPin2, HIGH); // sets the LED on digitalWrite(ledPin4, HIGH); // sets the LED on digitalWrite(ledPin5, HIGH); // sets the LED on digitalWrite(ledPin6, HIGH); // sets the LED on digitalWrite(ledPin13, HIGH); // sets the LED on digitalWrite(ledPin14, HIGH); // sets the LED on ledoff(); } int dig0() { digitalWrite(ledPin1, HIGH); // sets the LED on digitalWrite(ledPin2, HIGH); // sets the LED on digitalWrite(ledPin3, HIGH); // sets the LED on digitalWrite(ledPin4, HIGH); // sets the LED on digitalWrite(ledPin5, HIGH); // sets the LED on digitalWrite(ledPin6, HIGH); // sets the LED on ledoff(); } int digA() { digitalWrite(ledPin1, HIGH); // sets the LED on digitalWrite(ledPin2, HIGH); // sets the LED on digitalWrite(ledPin3, HIGH); // sets the LED on digitalWrite(ledPin5, HIGH); // sets the LED on digitalWrite(ledPin6, HIGH); // sets the LED on digitalWrite(ledPin13, HIGH); // sets the LED on digitalWrite(ledPin14, HIGH); // sets the LED on ledoff(); } int digB() { digitalWrite(ledPin1, HIGH); // sets the LED on digitalWrite(ledPin4, HIGH); // sets the LED on digitalWrite(ledPin5, HIGH); // sets the LED on digitalWrite(ledPin6, HIGH); // sets the LED on digitalWrite(ledPin11, HIGH); // sets the LED on digitalWrite(ledPin12, HIGH); // sets the LED on digitalWrite(ledPin13, HIGH); // sets the LED on ledoff(); } int digC() { digitalWrite(ledPin1, HIGH); // sets the LED on digitalWrite(ledPin2, HIGH); // sets the LED on digitalWrite(ledPin3, HIGH); // sets the LED on digitalWrite(ledPin4, HIGH); // sets the LED on ledoff(); } int digD() { digitalWrite(ledPin1, HIGH); // sets the LED on digitalWrite(ledPin4, HIGH); // sets the LED on digitalWrite(ledPin5, HIGH); // sets the LED on digitalWrite(ledPin6, HIGH); // sets the LED on digitalWrite(ledPin11, HIGH); // sets the LED on digitalWrite(ledPin12, HIGH); // sets the LED on ledoff(); } int digE() { digitalWrite(ledPin1, HIGH); // sets the LED on digitalWrite(ledPin2, HIGH); // sets the LED on digitalWrite(ledPin3, HIGH); // sets the LED on digitalWrite(ledPin4, HIGH); // sets the LED on digitalWrite(ledPin13, HIGH); // sets the LED on digitalWrite(ledPin14, HIGH); // sets the LED on ledoff(); } int digF() { digitalWrite(ledPin1, HIGH); // sets the LED on digitalWrite(ledPin2, HIGH); // sets the LED on digitalWrite(ledPin3, HIGH); // sets the LED on digitalWrite(ledPin13, HIGH); // sets the LED on digitalWrite(ledPin14, HIGH); // sets the LED on ledoff(); } int digG() { digitalWrite(ledPin1, HIGH); // sets the LED on digitalWrite(ledPin2, HIGH); // sets the LED on digitalWrite(ledPin3, HIGH); // sets the LED on digitalWrite(ledPin4, HIGH); // sets the LED on digitalWrite(ledPin5, HIGH); // sets the LED on digitalWrite(ledPin13, HIGH); // sets the LED on ledoff(); } int digH() { digitalWrite(ledPin2, HIGH); // sets the LED on digitalWrite(ledPin3, HIGH); // sets the LED on digitalWrite(ledPin5, HIGH); // sets the LED on digitalWrite(ledPin6, HIGH); // sets the LED on digitalWrite(ledPin13, HIGH); // sets the LED on digitalWrite(ledPin14, HIGH); // sets the LED on ledoff(); } int digI() { digitalWrite(ledPin1, HIGH); // sets the LED on digitalWrite(ledPin4, HIGH); // sets the LED on digitalWrite(ledPin11, HIGH); // sets the LED on digitalWrite(ledPin12, HIGH); // sets the LED on ledoff(); } int digJ() { digitalWrite(ledPin3, HIGH); // sets the LED on digitalWrite(ledPin4, HIGH); // sets the LED on digitalWrite(ledPin5, HIGH); // sets the LED on digitalWrite(ledPin6, HIGH); // sets the LED on ledoff(); } int digK() { digitalWrite(ledPin2, HIGH); // sets the LED on digitalWrite(ledPin3, HIGH); // sets the LED on digitalWrite(ledPin7, HIGH); // sets the LED on digitalWrite(ledPin10, HIGH); // sets the LED on digitalWrite(ledPin14, HIGH); // sets the LED on ledoff(); } int digL() { digitalWrite(ledPin2, HIGH); // sets the LED on digitalWrite(ledPin3, HIGH); // sets the LED on digitalWrite(ledPin4, HIGH); // sets the LED on ledoff(); } int digM() { digitalWrite(ledPin2, HIGH); // sets the LED on digitalWrite(ledPin3, HIGH); // sets the LED on digitalWrite(ledPin5, HIGH); // sets the LED on digitalWrite(ledPin6, HIGH); // sets the LED on digitalWrite(ledPin7, HIGH); // sets the LED on digitalWrite(ledPin8, HIGH); // sets the LED on ledoff(); } int digN() { digitalWrite(ledPin2, HIGH); // sets the LED on digitalWrite(ledPin3, HIGH); // sets the LED on digitalWrite(ledPin5, HIGH); // sets the LED on digitalWrite(ledPin6, HIGH); // sets the LED on digitalWrite(ledPin8, HIGH); // sets the LED on digitalWrite(ledPin10, HIGH); // sets the LED on ledoff(); } int digO() { digitalWrite(ledPin1, HIGH); // sets the LED on digitalWrite(ledPin2, HIGH); // sets the LED on digitalWrite(ledPin3, HIGH); // sets the LED on digitalWrite(ledPin4, HIGH); // sets the LED on digitalWrite(ledPin5, HIGH); // sets the LED on digitalWrite(ledPin6, HIGH); // sets the LED on ledoff(); } int digP() { digitalWrite(ledPin1, HIGH); // sets the LED on digitalWrite(ledPin2, HIGH); // sets the LED on digitalWrite(ledPin3, HIGH); // sets the LED on digitalWrite(ledPin6, HIGH); // sets the LED on digitalWrite(ledPin13, HIGH); // sets the LED on digitalWrite(ledPin14, HIGH); // sets the LED on ledoff(); } int digQ() { digitalWrite(ledPin1, HIGH); // sets the LED on digitalWrite(ledPin2, HIGH); // sets the LED on digitalWrite(ledPin3, HIGH); // sets the LED on digitalWrite(ledPin4, HIGH); // sets the LED on digitalWrite(ledPin5, HIGH); // sets the LED on digitalWrite(ledPin6, HIGH); // sets the LED on digitalWrite(ledPin10, HIGH); // sets the LED on ledoff(); } int digR() { digitalWrite(ledPin1, HIGH); // sets the LED on digitalWrite(ledPin2, HIGH); // sets the LED on digitalWrite(ledPin3, HIGH); // sets the LED on digitalWrite(ledPin6, HIGH); // sets the LED on digitalWrite(ledPin10, HIGH); // sets the LED on digitalWrite(ledPin13, HIGH); // sets the LED on digitalWrite(ledPin14, HIGH); // sets the LED on ledoff(); } int digS() { digitalWrite(ledPin1, HIGH); // sets the LED on digitalWrite(ledPin2, HIGH); // sets the LED on digitalWrite(ledPin4, HIGH); // sets the LED on digitalWrite(ledPin5, HIGH); // sets the LED on digitalWrite(ledPin13, HIGH); // sets the LED on digitalWrite(ledPin14, HIGH); // sets the LED on ledoff(); } int digT() { digitalWrite(ledPin1, HIGH); // sets the LED on digitalWrite(ledPin11, HIGH); // sets the LED on digitalWrite(ledPin12, HIGH); // sets the LED on ledoff(); } int digU() { digitalWrite(ledPin2, HIGH); // sets the LED on digitalWrite(ledPin3, HIGH); // sets the LED on digitalWrite(ledPin4, HIGH); // sets the LED on digitalWrite(ledPin5, HIGH); // sets the LED on digitalWrite(ledPin6, HIGH); // sets the LED on ledoff(); } int digV() { digitalWrite(ledPin2, HIGH); // sets the LED on digitalWrite(ledPin3, HIGH); // sets the LED on digitalWrite(ledPin7, HIGH); // sets the LED on digitalWrite(ledPin9, HIGH); // sets the LED on ledoff(); } int digW() { digitalWrite(ledPin2, HIGH); // sets the LED on digitalWrite(ledPin3, HIGH); // sets the LED on digitalWrite(ledPin5, HIGH); // sets the LED on digitalWrite(ledPin6, HIGH); // sets the LED on digitalWrite(ledPin9, HIGH); // sets the LED on digitalWrite(ledPin10, HIGH); // sets the LED on ledoff(); } int digX() { digitalWrite(ledPin7, HIGH); // sets the LED on digitalWrite(ledPin8, HIGH); // sets the LED on digitalWrite(ledPin9, HIGH); // sets the LED on digitalWrite(ledPin10, HIGH); // sets the LED on ledoff(); } int digY() { digitalWrite(ledPin2, HIGH); // sets the LED on digitalWrite(ledPin6, HIGH); // sets the LED on digitalWrite(ledPin12, HIGH); // sets the LED on digitalWrite(ledPin13, HIGH); // sets the LED on digitalWrite(ledPin14, HIGH); // sets the LED on ledoff(); } int digZ() { digitalWrite(ledPin1, HIGH); // sets the LED on digitalWrite(ledPin4, HIGH); // sets the LED on digitalWrite(ledPin7, HIGH); // sets the LED on digitalWrite(ledPin9, HIGH); // sets the LED on ledoff(); } int digspace() { digitalWrite(ledPin4, HIGH); // sets the LED on ledoff(); } int digstar() { digitalWrite(ledPin11, HIGH); // sets the LED on delay(40); digitalWrite(ledPin11, LOW); // sets the LED off digitalWrite(ledPin8, HIGH); // sets the LED on delay(40); digitalWrite(ledPin8, LOW); // sets the LED off digitalWrite(ledPin14, HIGH); // sets the LED on delay(40); digitalWrite(ledPin14, LOW); // sets the LED off digitalWrite(ledPin9, HIGH); // sets the LED on delay(40); digitalWrite(ledPin9, LOW); // sets the LED off digitalWrite(ledPin12, HIGH); // sets the LED on delay(40); digitalWrite(ledPin12, LOW); // sets the LED off digitalWrite(ledPin10, HIGH); // sets the LED on delay(40); digitalWrite(ledPin10, LOW); // sets the LED off digitalWrite(ledPin13, HIGH); // sets the LED on delay(40); digitalWrite(ledPin13, LOW); // sets the LED off digitalWrite(ledPin7, HIGH); // sets the LED on delay(40); digitalWrite(ledPin7, LOW); // sets the LED off } int digsstar() { digitalWrite(ledPin11, HIGH); // sets the LED on delay(40); digitalWrite(ledPin8, HIGH); // sets the LED on delay(40); digitalWrite(ledPin14, HIGH); // sets the LED on delay(40); digitalWrite(ledPin9, HIGH); // sets the LED on delay(40); digitalWrite(ledPin12, HIGH); // sets the LED on delay(40); digitalWrite(ledPin10, HIGH); // sets the LED on delay(40); digitalWrite(ledPin13, HIGH); // sets the LED on delay(40); digitalWrite(ledPin7, HIGH); // sets the LED on delay(40); digitalWrite(ledPin11, LOW); // sets the LED on delay(40); digitalWrite(ledPin8, LOW); // sets the LED on delay(40); digitalWrite(ledPin14, LOW); // sets the LED on delay(40); digitalWrite(ledPin9, LOW); // sets the LED on delay(40); digitalWrite(ledPin12, LOW); // sets the LED on delay(40); digitalWrite(ledPin10, LOW); // sets the LED on delay(40); digitalWrite(ledPin13, LOW); // sets the LED on delay(40); digitalWrite(ledPin7, LOW); // sets the LED on delay(40); } int dighash() { digitalWrite(ledPin2, HIGH); // sets the LED on delay(40); digitalWrite(ledPin2, LOW); // sets the LED off digitalWrite(ledPin3, HIGH); // sets the LED on delay(40); digitalWrite(ledPin3, LOW); // sets the LED off digitalWrite(ledPin4, HIGH); // sets the LED on delay(40); digitalWrite(ledPin4, LOW); // sets the LED off digitalWrite(ledPin5, HIGH); // sets the LED on delay(40); digitalWrite(ledPin5, LOW); // sets the LED off digitalWrite(ledPin6, HIGH); // sets the LED on delay(40); digitalWrite(ledPin6, LOW); // sets the LED off digitalWrite(ledPin1, HIGH); // sets the LED on delay(40); digitalWrite(ledPin1, LOW); // sets the LED off } int digiq() { digitalWrite(ledPin2, HIGH); // sets the LED on delay(400); digitalWrite(ledPin1, HIGH); // sets the LED on delay(400); digitalWrite(ledPin6, HIGH); // sets the LED on delay(400); digitalWrite(ledPin13, HIGH); // sets the LED on delay(400); digitalWrite(ledPin12, HIGH); // sets the LED on delay(400); digitalWrite(ledPin2, LOW); // sets the LED on delay(400); digitalWrite(ledPin1, LOW); // sets the LED on delay(400); digitalWrite(ledPin6, LOW); // sets the LED on delay(400); digitalWrite(ledPin13, LOW); // sets the LED on delay(400); digitalWrite(ledPin12, LOW); // sets the LED on delay(400); } void loop() // run over and over again, check if the character matches and run the dig# loop { if (client.available()) { for (int i=0; i <= 100; i++){ char c = client.read(); if (c == 'A') digA(); if (c == 'B') digB(); if (c == 'C') digC(); if (c == 'D') digD(); if (c == 'E') digE(); if (c == 'F') digF(); if (c == 'G') digG(); if (c == 'H') digH(); if (c == 'I') digI(); if (c == 'J') digJ(); if (c == 'K') digK(); if (c == 'L') digL(); if (c == 'M') digM(); if (c == 'N') digN(); if (c == 'O') digO(); if (c == 'P') digP(); if (c == 'Q') digQ(); if (c == 'R') digR(); if (c == 'S') digS(); if (c == 'T') digT(); if (c == 'U') digU(); if (c == 'V') digV(); if (c == 'W') digW(); if (c == 'X') digX(); if (c == 'Y') digY(); if (c == 'Z') digZ(); if (c == '0') dig0(); if (c == '1') dig1(); if (c == '2') dig2(); if (c == '3') dig3(); if (c == '4') dig4(); if (c == '5') dig5(); if (c == '6') dig6(); if (c == '7') dig7(); if (c == '8') dig8(); if (c == '9') dig9(); if (c == ' ') digspace(); if (c == '*') digstar(); if (c == '@') digsstar(); if (c == '.') dighash(); if (c == '?') digiq(); Serial.print(c); } } else { digstar(); digstar(); digstar(); asm volatile (" jmp 0"); //reset the board after loop is finished } }
Patches
₢ The Randomdata zloty { digitalWrite(ledPin1, HIGH); // sets the LED on digitalWrite(ledPin2, HIGH); // sets the LED on digitalWrite(ledPin3, HIGH); // sets the LED on digitalWrite(ledPin4, HIGH); // sets the LED on digitalWrite(ledPin12, HIGH); // sets the LED on digitalWrite(ledPin14, HIGH); // sets the LED on ledoff(); }