Skip to content

Instantly share code, notes, and snippets.

@lpereira
Created August 5, 2012 20:47
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save lpereira/3267085 to your computer and use it in GitHub Desktop.
Save lpereira/3267085 to your computer and use it in GitHub Desktop.
Pinball Display Driver
/*
* Pinball Display Driver
* Arudino version by Leandro Pereira
*
* Based on code by Daniel Quadros, available at
* http://dqsoft.blogspot.com.br/2011/06/projeto-epoch-parte4-software-cont.html
*/
#define DISP_S0 8
#define DISP_S1 9
#define DISP_S2 10
char valor[16];
void setup()
{
for (char i = 0; i <= 10; i++) {
pinMode(i, OUTPUT);
}
for (char i = 0; i < 16; i++) {
valor[15 - i] = i & 7;
}
}
void loop()
{
static unsigned char disp = 0;
digitalWrite(DISP_S0, disp & 1);
digitalWrite(DISP_S1, disp & 2);
digitalWrite(DISP_S2, disp & 4);
char digito = valor[15 - disp] << 4 | valor[disp];
/* Display esquerdo */
digitalWrite(0, digito & (1<<0));
digitalWrite(1, digito & (1<<1));
digitalWrite(2, digito & (1<<2));
digitalWrite(3, digito & (1<<3));
/* Display direito */
digitalWrite(4, digito & (1<<4));
digitalWrite(5, digito & (1<<5));
digitalWrite(6, digito & (1<<6));
digitalWrite(7, digito & (1<<7));
disp = (disp + 1) & 7;
delay(1);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment