Created
February 27, 2010 20:11
-
-
Save patrickod/316919 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <Keypad.h> | |
long ra = 0; //random var for keypad | |
int converted; | |
int g = 22;// led segments | |
int f = 23; | |
int a = 24; | |
int b = 25; | |
int e = 26; | |
int d = 27; | |
int c = 28; | |
int point = 29; | |
const byte ROWS = 4; //four rows | |
const byte COLS = 3; //three columns | |
char keys[ROWS][COLS] = { | |
{'1','2','3'}, | |
{'4','5','6'}, | |
{'7','8','9'}, | |
{'#','0','*'} | |
}; | |
//connect to the row pinouts of the keypad | |
byte rowPins[ROWS] = {7, 2, 3, 5}; | |
byte colPins[COLS] = {6, 8, 4}; | |
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS ); | |
void setup(){ | |
pinMode(g, OUTPUT); | |
pinMode(f, OUTPUT); | |
pinMode(a, OUTPUT); | |
pinMode(b, OUTPUT); | |
pinMode(e, OUTPUT); | |
pinMode(d, OUTPUT); | |
pinMode(c, OUTPUT); | |
pinMode(point, OUTPUT); | |
ledalloff(); | |
Serial.begin(57600);// begin the serial connection to the tellymate | |
reset_number(); | |
} | |
void loop(){ // begin the loop | |
char key = keypad.getKey(); // get the key pressed | |
int converted = atoi(&key); | |
if (key != NO_KEY){ | |
Serial.print(key); | |
switch (converted) { | |
case 0: | |
led0(); | |
break; | |
case 1: | |
led1(); | |
break; | |
case 2: | |
led2(); | |
break; | |
case 3: | |
led3(); | |
break; | |
case 4: | |
led4(); | |
break; | |
case 5: | |
led5(); | |
break; | |
case 6: | |
led6(); | |
break; | |
case 7: | |
led7(); | |
break; | |
case 8: | |
led8(); | |
break; | |
case 9: | |
led9(); | |
break; | |
default: | |
ledalloff(); | |
} | |
if (converted == ra) { | |
Serial.println(" "); | |
Serial.println("KABOOM"); | |
ledexplode(6); | |
Serial.println(" "); | |
reset_number(); | |
} | |
} | |
} | |
void reset_number(){ | |
delay(2000); | |
Serial.println("loading"); | |
ledloading(4); | |
ledalloff(); | |
Serial.println("nEw nUmbEr Chosen"); | |
// Seed the generator with static from the analog input | |
randomSeed(analogRead(0)); | |
ra = random(10); | |
} | |
void ledalloff() { | |
digitalWrite(g, HIGH); | |
digitalWrite(f, HIGH); | |
digitalWrite(a, HIGH); | |
digitalWrite(b, HIGH); | |
digitalWrite(e, HIGH); | |
digitalWrite(d, HIGH); | |
digitalWrite(c, HIGH); | |
digitalWrite(point, HIGH); | |
} | |
void led0() { | |
digitalWrite(g, HIGH); | |
digitalWrite(f, LOW); | |
digitalWrite(a, LOW); | |
digitalWrite(b, LOW); | |
digitalWrite(e, LOW); | |
digitalWrite(d, LOW); | |
digitalWrite(c, LOW); | |
digitalWrite(point, HIGH); | |
} | |
void led1() { | |
digitalWrite(g, HIGH); | |
digitalWrite(f, HIGH); | |
digitalWrite(a, HIGH); | |
digitalWrite(b, LOW); | |
digitalWrite(e, HIGH); | |
digitalWrite(d, HIGH); | |
digitalWrite(c, LOW); | |
digitalWrite(point, HIGH); | |
} | |
void led2() { | |
digitalWrite(g, LOW); | |
digitalWrite(f, HIGH); | |
digitalWrite(a, LOW); | |
digitalWrite(b, LOW); | |
digitalWrite(e, LOW); | |
digitalWrite(d, LOW); | |
digitalWrite(c, HIGH); | |
digitalWrite(point, HIGH); | |
} | |
void led3() { | |
digitalWrite(g, LOW); | |
digitalWrite(f, HIGH); | |
digitalWrite(a, LOW); | |
digitalWrite(b, LOW); | |
digitalWrite(e, HIGH); | |
digitalWrite(d, LOW); | |
digitalWrite(c, LOW); | |
digitalWrite(point, HIGH); | |
} | |
void led4() { | |
digitalWrite(g, LOW); | |
digitalWrite(f, LOW); | |
digitalWrite(a, HIGH); | |
digitalWrite(b, LOW); | |
digitalWrite(e, HIGH); | |
digitalWrite(d, HIGH); | |
digitalWrite(c, LOW); | |
digitalWrite(point, HIGH); | |
} | |
void led5() { | |
digitalWrite(g, LOW); | |
digitalWrite(f, LOW); | |
digitalWrite(a, LOW); | |
digitalWrite(b, HIGH); | |
digitalWrite(e, HIGH); | |
digitalWrite(d, LOW); | |
digitalWrite(c, LOW); | |
digitalWrite(point, HIGH); | |
} | |
void led6() { | |
digitalWrite(g, LOW); | |
digitalWrite(f, LOW); | |
digitalWrite(a, LOW); | |
digitalWrite(b, HIGH); | |
digitalWrite(e, LOW); | |
digitalWrite(d, LOW); | |
digitalWrite(c, LOW); | |
digitalWrite(point, HIGH); | |
} | |
void led7() { | |
digitalWrite(g, HIGH); | |
digitalWrite(f, HIGH); | |
digitalWrite(a, LOW); | |
digitalWrite(b, LOW); | |
digitalWrite(e, HIGH); | |
digitalWrite(d, HIGH); | |
digitalWrite(c, LOW); | |
digitalWrite(point, HIGH); | |
} | |
void led8() { | |
digitalWrite(g, LOW); | |
digitalWrite(f, LOW); | |
digitalWrite(a, LOW); | |
digitalWrite(b, LOW); | |
digitalWrite(e, LOW); | |
digitalWrite(d, LOW); | |
digitalWrite(c, LOW); | |
digitalWrite(point, HIGH); | |
} | |
void led9() { | |
digitalWrite(g, LOW); | |
digitalWrite(f, LOW); | |
digitalWrite(a, LOW); | |
digitalWrite(b, LOW); | |
digitalWrite(e, HIGH); | |
digitalWrite(d, HIGH); | |
digitalWrite(c, LOW); | |
digitalWrite(point, HIGH); | |
} | |
void ledstar() { | |
digitalWrite(g, LOW); | |
digitalWrite(f, LOW); | |
digitalWrite(a, HIGH); | |
digitalWrite(b, HIGH); | |
digitalWrite(e, HIGH); | |
digitalWrite(d, HIGH); | |
digitalWrite(c, LOW); | |
digitalWrite(point, HIGH); | |
} | |
void ledhash() { | |
digitalWrite(g, LOW); | |
digitalWrite(f, HIGH); | |
digitalWrite(a, HIGH); | |
digitalWrite(b, HIGH); | |
digitalWrite(e, LOW); | |
digitalWrite(d, LOW); | |
digitalWrite(c, LOW); | |
digitalWrite(point, HIGH); | |
} | |
void ledexplode(int counter) { | |
int z = 0; | |
for(z = 0; z < counter; z++) | |
{ | |
ledalloff(); | |
digitalWrite (d, LOW); | |
delay(80); | |
digitalWrite (g, LOW); | |
delay(80); | |
digitalWrite (a, LOW); | |
delay(80); | |
digitalWrite (d, HIGH); | |
delay(80); | |
digitalWrite (g, HIGH); | |
delay(80); | |
digitalWrite (a, HIGH); | |
delay(80); | |
delay(230); | |
} | |
} | |
// called with ledloading(4) | |
void ledloading(int counter) { | |
int z = 0; | |
for (z = 0; z < counter; z++) | |
{ | |
ledalloff(); | |
digitalWrite(a, LOW); | |
digitalWrite(d, LOW); | |
digitalWrite(f, HIGH); | |
digitalWrite(c, HIGH); | |
delay(80); | |
digitalWrite(a, HIGH); | |
digitalWrite(d, HIGH); | |
digitalWrite(b, LOW); | |
digitalWrite(e, LOW); | |
delay(80); | |
digitalWrite(b, HIGH); | |
digitalWrite(e, HIGH); | |
digitalWrite(f, LOW); | |
digitalWrite(c, LOW); | |
delay(80); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment