Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //pin mapping:
- int solU=PIN_B6;
- int solD=PIN_B5;
- int solL=PIN_B4;
- int solR=PIN_B3;
- int solS=PIN_B2;
- int switchON=PIN_C7;
- int switchAUTO=PIN_C6;
- int btnU=PIN_C5;
- int btnD=PIN_C4;
- int btnL=PIN_C3;
- int btnR=PIN_C2;
- int btnS=PIN_C1;
- int potA=PIN_F2;
- int potB=PIN_F1;
- int pressuresens=PIN_F0;
- int ledU=PIN_A2;
- int ledD=PIN_A3;
- int ledL=PIN_A7;
- int ledR=PIN_A6;
- int ledS=PIN_A5;
- int ledP=PIN_A4;
- int xledA=PIN_A0;//either xledA or xledM may be on at the same time
- int xledM=PIN_A1;
- boolean automode=false;
- boolean on=false;
- void switchSol(int number, int state){
- int led=-1;
- int sol=-1;
- switch(number){
- case 0: //UP
- sol=solU;
- led=ledU;
- break;
- case 1: //DOWN
- sol=solD;
- led=ledD;
- break;
- case 2: //LEFT
- sol=solL;
- led=ledL;
- break;
- case 3: //RIGHT
- sol=solR;
- led=ledR;
- break;
- case 4: //SHAKER
- sol=solS;
- led=ledS;
- break;
- default:
- break;
- }
- if(on && led!=-1 && sol!=-1){
- digitalWrite(led,state);
- digitalWrite(sol,state);
- } else {
- digitalWrite(led,LOW);
- digitalWrite(sol,LOW);
- }
- }
- void setOn(){
- if(!on){
- switchSol(0,LOW);
- switchSol(1,LOW);
- switchSol(2,LOW);
- switchSol(3,LOW);
- switchSol(4,LOW);
- }
- if(digitalRead(switchON)==HIGH){
- delay(100);
- if(digitalRead(switchON)==HIGH){
- on=true;
- }
- }else{
- delay(100);
- if(digitalRead(switchON)==LOW){
- on=false;
- digitalWrite(xledM,LOW);
- digitalWrite(xledA,LOW);
- }
- }
- }
- void setAuto(){
- if(!on) return;
- if(digitalRead(pressuresens)==LOW){
- delay(30);
- if(digitalRead(pressuresens)==LOW){
- digitalWrite(ledP,HIGH);
- }
- }else{
- delay(30);
- if(digitalRead(pressuresens)==HIGH){
- digitalWrite(ledP,LOW);
- }
- }
- if(digitalRead(switchAUTO)==HIGH){
- delay(30);
- if(digitalRead(switchAUTO)==HIGH){
- automode=true;
- digitalWrite(xledM,LOW);
- digitalWrite(xledA,HIGH);
- }
- }else{
- delay(30);
- if(digitalRead(switchAUTO)==LOW){
- automode=false;
- digitalWrite(xledA,LOW);
- digitalWrite(xledM,HIGH);
- }
- }
- }
- void actButtons(){
- if(!on) return;
- if(digitalRead(btnU)==LOW){
- delay(30);
- if(digitalRead(btnU)==LOW){
- switchSol(0,HIGH);
- }
- }else{
- delay(30);
- if(digitalRead(btnU)==HIGH){
- switchSol(0,LOW);
- }
- }
- if(digitalRead(btnD)==LOW){
- delay(30);
- if(digitalRead(btnD)==LOW){
- switchSol(1,HIGH);
- }
- }else{
- delay(30);
- if(digitalRead(btnD)==HIGH){
- switchSol(1,LOW);
- }
- }
- if(digitalRead(btnL)==LOW){
- delay(30);
- if(digitalRead(btnL)==LOW){
- switchSol(2,HIGH);
- }
- }else{
- delay(30);
- if(digitalRead(btnL)==HIGH){
- switchSol(2,LOW);
- }
- }
- if(digitalRead(btnR)==LOW){
- delay(30);
- if(digitalRead(btnR)==LOW){
- switchSol(3,HIGH);
- }
- }else{
- delay(30);
- if(digitalRead(btnR)==HIGH){
- switchSol(3,LOW);
- }
- }
- if(digitalRead(btnS)==LOW){
- delay(30);
- if(digitalRead(btnS)==LOW){
- switchSol(4,HIGH);
- }
- }else{
- delay(30);
- if(digitalRead(btnS)==HIGH){
- switchSol(4,LOW);
- }
- }
- }
- // the setup routine runs once when you press reset:
- void setup() {
- // initialize the digital pin as an output.
- pinMode(ledU, OUTPUT);
- pinMode(ledD, OUTPUT);
- pinMode(ledL, OUTPUT);
- pinMode(ledR, OUTPUT);
- pinMode(ledS, OUTPUT);
- pinMode(ledP, OUTPUT);
- pinMode(xledA, OUTPUT);
- pinMode(xledM, OUTPUT);
- pinMode(solU, OUTPUT);
- pinMode(solD, OUTPUT);
- pinMode(solL, OUTPUT);
- pinMode(solR, OUTPUT);
- pinMode(solS, OUTPUT);
- pinMode(ledP, OUTPUT);
- pinMode(xledA, OUTPUT);
- pinMode(xledM, OUTPUT);
- pinMode(btnU, INPUT);
- pinMode(btnD, INPUT);
- pinMode(btnL, INPUT);
- pinMode(btnR, INPUT);
- pinMode(btnS, INPUT);
- pinMode(pressuresens, INPUT);
- pinMode(switchON, INPUT);
- pinMode(switchAUTO, INPUT);
- digitalWrite(btnU, HIGH);
- digitalWrite(btnD, HIGH);
- digitalWrite(btnL, HIGH);
- digitalWrite(btnR, HIGH);
- digitalWrite(btnS, HIGH);
- digitalWrite(switchON, HIGH);
- digitalWrite(switchAUTO, HIGH);
- digitalWrite(pressuresens, HIGH);
- pinMode(potA, INPUT);
- pinMode(potB, INPUT);
- }
- // the loop routine runs over and over again forever:
- void loop() {
- setOn();
- setAuto();
- if(automode){
- //put in auto press state machine here
- }else{
- actButtons();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement