int buttonPin = A0;
int buttonState, buttonStateOld;
int counter = 0;
int pressCounter = 0;
int count1 = 0;
int count2 = 0;
int vert = A1;
int horz = A2;
int btn = 12;
int vertState,vertStateOld;
int horzState,horzStateOld;
String pos;
int A = 7;
int B = 8;
int C = 2;
int D = 3;
int E = 4;
int F = 5;
int G = 6;
int dig1 = 11;
int dig2 = 10;
int dig3 = 13;
int dig4 = 9;
int num = 0;
long startTime;
void setup() {
// put your setup code here, to run once:
pinMode(A, OUTPUT);
pinMode(B, OUTPUT);
pinMode(C, OUTPUT);
pinMode(D, OUTPUT);
pinMode(E, OUTPUT);
pinMode(F, OUTPUT);
pinMode(G, OUTPUT);
pinMode(dig1, OUTPUT);
pinMode(dig2, OUTPUT);
pinMode(dig3, OUTPUT);
pinMode(dig4, OUTPUT);
pinMode(buttonPin, INPUT);
Serial.begin(9600);
Serial.println("the program is live!");
}
void loop() {
project1();
}
void fourDigSevSegTest (){
number1();
delay(100);
clear();
delay(50);
number2();
delay(100);
clear();
delay(50);
}
void project2(){
vertState = analogRead(vert);
horzState = analogRead(horz);
if (vertState == 1023 && horzState == 512) {
pos = "up";
delay(100);
}
else if (vertState == 0 && horzState == 512) {
pos = "down";
delay(100);
}
else if (vertState == 512 && horzState == 0) {
pos = "right";
delay(100);
}
else if (vertState == 512 && horzState == 1023) {
pos = "left";
delay(100);
}
else if (vertState == 1023 && horzState == 1023){
pos = "up-left";
delay(100);
}
else if (vertState == 1023 && horzState == 0){
pos = "up-right";
delay(100);
}
else if (vertState == 0 && horzState == 0){
pos = "down-right";
delay(100);
}
else if (vertState == 0 && horzState == 1023){
pos = "down-left";
delay(100);
}
Serial.println(pos);
}
void joystickTest(){
Serial.print(analogRead(vert));
Serial.print(" - ");
Serial.print(digitalRead(btn));
Serial.print(" - ");
Serial.println(analogRead(horz));
}
void project1(){
vertState = analogRead(vert);
horzState = analogRead(horz);
if (vertState == 1023 && vertStateOld == 512) {
count1++;
delay(100);
}
if (vertState == 0 && vertStateOld == 512) {
count1--;
delay(100);
}
if (horzState == 1023 && horzStateOld == 512) {
count2++;
delay(100);
}
if (horzState == 0 && horzStateOld == 512) {
count2--;
delay(100);
}
else{
delay(50);
}
vertStateOld = vertState;
horzStateOld = horzState;
Serial.print(count1);
Serial.print(" - ");
Serial.println(count2);
}
void numberRoll_playPause() {
buttonState = !analogRead(buttonPin);
if(buttonState == !0 && buttonStateOld == 0){
pressCounter++;
if(pressCounter % 2 == 1){
Serial.println(num);
}
}
else{
delay(1);
}
buttonStateOld = buttonState;
if(pressCounter % 2 == 1){
num++;
if(num == 10000){
num = 0;
}
}
int a=num/1000;
int b=num/100 - a*10;
int d=num%10;
int c=(num%100 - d)/10;
digitalWrite(dig1, LOW);
digitalWrite(dig2, HIGH);
digitalWrite(dig3, HIGH);
digitalWrite(dig4, HIGH);
showDigit(a);
delay(5);
clear();
delay(1);
digitalWrite(dig1, HIGH);
digitalWrite(dig2, LOW);
digitalWrite(dig3, HIGH);
digitalWrite(dig4, HIGH);
showDigit(b);
delay(5);
clear();
delay(1);
digitalWrite(dig1, HIGH);
digitalWrite(dig2, HIGH);
digitalWrite(dig3, LOW);
digitalWrite(dig4, HIGH);
showDigit(c);
delay(5);
clear();
delay(1);
digitalWrite(dig1, HIGH);
digitalWrite(dig2, HIGH);
digitalWrite(dig3, HIGH);
digitalWrite(dig4, LOW);
showDigit(d);
delay(5);
clear();
delay(1);
}
void fourDigitDisplay(){
if(Serial.available() > 0){
num = Serial.read()-'0';
Serial.println(num);
}
fourDigitShow(num);
}
void fourDigitShow(int num){
int a=num/1000;
int b=num/100 - a*10;
int d=num%10;
int c=(num%100 - d)/10;
digitalWrite(dig1, LOW);
digitalWrite(dig2, HIGH);
digitalWrite(dig3, HIGH);
digitalWrite(dig4, HIGH);
showDigit(a);
delay(5);
clear();
delay(1);
digitalWrite(dig1, HIGH);
digitalWrite(dig2, LOW);
digitalWrite(dig3, HIGH);
digitalWrite(dig4, HIGH);
showDigit(b);
delay(5);
clear();
delay(1);
digitalWrite(dig1, HIGH);
digitalWrite(dig2, HIGH);
digitalWrite(dig3, LOW);
digitalWrite(dig4, HIGH);
showDigit(c);
delay(5);
clear();
delay(1);
digitalWrite(dig1, HIGH);
digitalWrite(dig2, HIGH);
digitalWrite(dig3, HIGH);
digitalWrite(dig4, LOW);
showDigit(d);
delay(5);
clear();
delay(1);
}
void showDigit(int digit) {
switch(digit) {
case 0:
number0();
break;
case 1:
number1();
break;
case 2:
number2();
break;
case 3:
number3();
break;
case 4:
number4();
break;
case 5:
number5();
break;
case 6:
number6();
break;
case 7:
number7();
break;
case 8:
number8();
break;
case 9:
number9();
break;
}
}
void clear() {
digitalWrite(A, LOW);
digitalWrite(B, LOW);
digitalWrite(C, LOW);
digitalWrite(D, LOW);
digitalWrite(E, LOW);
digitalWrite(F, LOW);
digitalWrite(G, LOW);
}
void number0 () {
digitalWrite(A, HIGH);
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, HIGH);
digitalWrite(E, HIGH);
digitalWrite(F, HIGH);
digitalWrite(G, LOW);
}
void number1 () {
digitalWrite(A, LOW);
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, LOW);
digitalWrite(E, LOW);
digitalWrite(F, LOW);
digitalWrite(G, LOW);
}
void number2() {
digitalWrite(A, HIGH);
digitalWrite(B, HIGH);
digitalWrite(C, LOW);
digitalWrite(D, HIGH);
digitalWrite(E, HIGH);
digitalWrite(F, LOW);
digitalWrite(G, HIGH);
}
void number3() {
digitalWrite(A, HIGH);
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, HIGH);
digitalWrite(E, LOW);
digitalWrite(F, LOW);
digitalWrite(G, HIGH);
}
void number4() {
digitalWrite(A, LOW);
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, LOW);
digitalWrite(E, LOW);
digitalWrite(F, HIGH);
digitalWrite(G, HIGH);
}
void number5() {
digitalWrite(A, HIGH);
digitalWrite(B, LOW);
digitalWrite(C, HIGH);
digitalWrite(D, HIGH);
digitalWrite(E, LOW);
digitalWrite(F, HIGH);
digitalWrite(G, HIGH);
}
void number6() {
digitalWrite(A, HIGH);
digitalWrite(B, LOW);
digitalWrite(C, HIGH);
digitalWrite(D, HIGH);
digitalWrite(E, HIGH);
digitalWrite(F, HIGH);
digitalWrite(G, HIGH);
}
void number7() {
digitalWrite(A, HIGH);
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, LOW);
digitalWrite(E, LOW);
digitalWrite(F, LOW);
digitalWrite(G, LOW);
}
void number8() {
digitalWrite(A, HIGH);
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, HIGH);
digitalWrite(E, HIGH);
digitalWrite(F, HIGH);
digitalWrite(G, HIGH);
}
void number9() {
digitalWrite(A, HIGH);
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, HIGH);
digitalWrite(E, LOW);
digitalWrite(F, HIGH);
digitalWrite(G, HIGH);
}
void negative() {
digitalWrite(A, LOW);
digitalWrite(B, LOW);
digitalWrite(C, LOW);
digitalWrite(D, LOW);
digitalWrite(E, LOW);
digitalWrite(F, LOW);
digitalWrite(G, HIGH);
}