Table Tennis poäng ombord (2 / 2 steg)
Steg 2: koden...
#define MAX7219_DIN 5
#define MAX7219_CS 6
#define MAX7219_CLK 7
#define VÄNSTERB 8
#define HÖGERB 9
#define RESETb 10
int vänster, höger, rightPlay, leftPlay = 0;
booleska changeIndc = false;
int SRead;
void initialise()
{
digitalWrite (MAX7219_CS, hög);
pinMode (MAX7219_DIN, OUTPUT);
pinMode (MAX7219_CS, OUTPUT);
pinMode (MAX7219_CLK, OUTPUT);
}
void utdata (byte adress, byte data)
{
digitalWrite (MAX7219_CS, låg);
shiftOut (MAX7219_DIN, MAX7219_CLK, MSBFIRST, adress);
shiftOut (MAX7219_DIN, MAX7219_CLK, MSBFIRST, data);
digitalWrite (MAX7219_CS, hög);
}
void setup() {
Serial.BEGIN (9600);
pinMode (VÄNSTERB, ingång);
pinMode (HÖGERB, ingång);
sätta din installation kod här, om du vill köra en gång:
initialise();
output(0x0F, 0x00); Visa test register - testläge off
output(0x0C, 0x01); Shutdown register - normal drift
output(0x0B, 0x07); Skanna den gräns register - Visa siffror 0 thru 7
output(0x0A, 0x0F); intensitet register - max ljusstyrka
output(0x09, 0xFF); avkoda läge register - CodeB avkoda alla siffror
output(0x08, 0x00); Siffran 7 (vänstra siffran) data
output(0x07, 0x0A);
output(0x06, 0x00);
output(0x05, 0x00);
output(0x04, 0x00);
output(0x03, 0x00);
output(0x02, 0x0A);
output(0x01, 0x00); siffran 0 (längst till höger digit) data
}
void loop() {
SRead = Serial.read ();
om (SRead == 48 || digitalRead (RESETb)) {
Serial.println ("RESET");
vänster = 0;
höger = 0;
leftPlay = 0;
rightPlay = 0;
changeIndc = sant;
utgång (0x01, 0);
utgång (0x08, 0);
}
om (SRead == 49 || digitalRead (VÄNSTERB)) {
fördröjning (200);
samtidigt (digitalRead (VÄNSTERB)) {}
vänster ++;
changeIndc = sant;
}
om (SRead == 50 || digitalRead (HÖGERB)) {
fördröjning (200);
samtidigt (digitalRead (HÖGERB)) {}
höger ++;
changeIndc = sant;
}
om (changeIndc) {
utgång (0x03, vänster % 10);
utgång (0x04, vänster/10);
utgång (0x05, rätt % 10);
utgång (0x06, rätt/10);
om (rätt > = 11 & & höger > = vänster + 2) {
rightPlay ++;
höger = 0;
vänster = 0;
utgång (0x08, rightPlay);
}
om (vänster > = 11 & & vänster > = höger + 2) {
leftPlay ++;
höger = 0;
vänster = 0;
utgång (0x01, leftPlay);
}
changeIndc = false;
}
}