// make an array to save Sev Seg pin configuration of numbers // A B C D E F G int num_array[16][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 { 1,1,1,0,1,1,1 }, // A { 0,0,1,1,1,1,1 }, // b { 0,0,0,1,1,0,1 }, // c { 0,1,1,1,1,0,1 }, // d { 1,0,0,1,1,1,1 }, // E { 1,0,0,0,1,1,1 } // F }; //function header void WriteNumber(int); #define pinSW 10 void setup() { // set pin modes pinMode(2, OUTPUT); pinMode(3, OUTPUT); pinMode(4, OUTPUT); pinMode(5, OUTPUT); pinMode(6, OUTPUT); pinMode(7, OUTPUT); pinMode(8, OUTPUT); pinMode(pinSW, INPUT); Serial.begin(9600); // open the serial port at 9600 bps, used for the console communication randomSeed(analogRead(0)); } int rnd; void loop() { int sw; //read the digital input from in a variable sw = digitalRead(pinSW); // Serial.println(sw); if ( sw == 1) { rnd = random(0, 10); // write the value to the console // Serial.println(rnd); WriteNumber(rnd); } delay(30); } // this functions writes values to the sev seg pins void WriteNumber(int number) { int pin= 2; for (int j=0; j < 7; j++) { digitalWrite(pin, num_array[number][j]); pin++; } }