Skip to content

Instantly share code, notes, and snippets.

@patrickod
Created February 27, 2010 20:11
Show Gist options
  • Save patrickod/316919 to your computer and use it in GitHub Desktop.
Save patrickod/316919 to your computer and use it in GitHub Desktop.
#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