#include "Wire.h" #include "WiiClassic.h" WiiClassic wiiClassy = WiiClassic(); //stores pin number and state in a byte struct wiiPin { byte pin:7; byte state:1; }; //declare buttons wiiPin upDButton = { 6 , 0 }; wiiPin leftDButton = { 5 , 0 }; wiiPin rightDButton = { 8 , 0 }; wiiPin downDButton = { 7 , 0 }; wiiPin XButton = { 12 , 0 }; wiiPin YButton = { 11 , 0 }; wiiPin AButton = { 9 , 0 }; wiiPin BButton = { 10 , 0 }; int AB = 9; int BB = 10; int XB = 12; int YB = 11; int dpadDown = 7; int dpadUp = 6; int dpadRight = 8; int dpadLeft = 5; void setup() { Serial.begin(9600); wiiClassy.begin(); //pinModes pinMode(upDButton.pin, OUTPUT); pinMode(downDButton.pin, OUTPUT); pinMode(rightDButton.pin, OUTPUT); pinMode(leftDButton.pin, OUTPUT); pinMode(XButton.pin, OUTPUT); pinMode(YButton.pin, OUTPUT); pinMode(AButton.pin, OUTPUT); pinMode(BButton.pin, OUTPUT); pinMode(AB, OUTPUT); pinMode(BB, OUTPUT); pinMode(XB, OUTPUT); pinMode(YB, OUTPUT); pinMode(dpadDown, OUTPUT); pinMode(dpadUp, OUTPUT); pinMode(dpadLeft, OUTPUT); pinMode(dpadRight, OUTPUT); } void loop() { //UPDATE wiiClassy.update(); //update the wii classic //SET STATES wiiClassy.upDPressed() ? upDButton.state = 1 : upDButton.state = 0; wiiClassy.downDPressed() ? downDButton.state = 1 : downDButton.state = 0; wiiClassy.rightDPressed() ? rightDButton.state = 1 : rightDButton.state = 0; wiiClassy.leftDPressed() ? leftDButton.state = 1 : leftDButton.state = 0; wiiClassy.xPressed() ? XButton.state = 1 : XButton.state = 0; wiiClassy.yPressed() ? YButton.state = 1 : YButton.state = 0; wiiClassy.aPressed() ? AButton.state = 1 : AButton.state = 0; wiiClassy.bPressed() ? BButton.state = 1 : BButton.state = 0; //EXECUTE STATES digitalWrite(upDButton.pin,upDButton.state); digitalWrite(leftDButton.pin,leftDButton.state); digitalWrite(downDButton.pin,downDButton.state); digitalWrite(rightDButton.pin,rightDButton.state); digitalWrite(XButton.pin,XButton.state); delay(1); digitalWrite(YButton.pin,YButton.state); delay(1); digitalWrite(AButton.pin,AButton.state); delay(1); digitalWrite(BButton.pin,BButton.state); delay(1); if (wiiClassy.leftShoulderPressed()) { delay(10); Serial.print("delay"); Serial.println(); digitalWrite(dpadDown, HIGH); Serial.print("Down"); Serial.println(); delay(10); Serial.print("delay"); Serial.println(); digitalWrite(dpadLeft, HIGH); Serial.print("Right"); Serial.println(); delay(10); Serial.print("delay"); Serial.println(); digitalWrite(dpadDown, LOW); Serial.print("Down low"); Serial.println(); delay(50); Serial.print("Delay"); Serial.println(); digitalWrite(dpadLeft, LOW); Serial.print("Right low"); Serial.println(); digitalWrite(AB, HIGH); Serial.print("B"); Serial.println(); delay(20); Serial.print("delay"); Serial.println(); digitalWrite(AB, LOW); Serial.print("B low"); Serial.println(); Serial.println(); //Serial.print("LS."); } if (wiiClassy.rightShoulderPressed()) { //shoryuken delay(10); Serial.print("delay"); Serial.println(); digitalWrite(dpadDown, HIGH); Serial.print("Down"); Serial.println(); delay(10); Serial.print("delay"); Serial.println(); digitalWrite(dpadRight, HIGH); Serial.print("Right"); Serial.println(); delay(10); Serial.print("delay"); Serial.println(); digitalWrite(dpadDown, LOW); Serial.print("Down low"); Serial.println(); delay(50); Serial.print("Delay"); Serial.println(); digitalWrite(dpadRight, LOW); Serial.print("Right low"); Serial.println(); digitalWrite(AB, HIGH); Serial.print("B"); Serial.println(); delay(20); Serial.print("delay"); Serial.println(); digitalWrite(AB, LOW); Serial.print("B low"); Serial.println(); Serial.println(); //Serial.print("RS."); } if (wiiClassy.lzPressed()) { delay(10); Serial.print("delay"); Serial.println(); digitalWrite(dpadDown, HIGH); Serial.print("Down"); Serial.println(); delay(10); Serial.print("delay"); Serial.println(); digitalWrite(dpadRight, HIGH); Serial.print("Right"); Serial.println(); delay(10); Serial.print("delay"); Serial.println(); digitalWrite(dpadDown, LOW); Serial.print("Down low"); Serial.println(); delay(50); Serial.print("Delay"); Serial.println(); digitalWrite(dpadRight, LOW); Serial.print("Right low"); Serial.println(); digitalWrite(dpadDown, HIGH); Serial.print("Down"); Serial.println(); delay(10); Serial.print("delay"); Serial.println(); digitalWrite(dpadRight, HIGH); Serial.print("Right"); Serial.println(); delay(10); Serial.print("delay"); Serial.println(); digitalWrite(dpadDown, LOW); Serial.print("Down low"); Serial.println(); delay(50); Serial.print("Delay"); Serial.println(); digitalWrite(dpadRight, LOW); Serial.print("Right low"); Serial.println(); digitalWrite(YB, HIGH); Serial.print("Y"); Serial.println(); delay(20); Serial.print("delay"); Serial.println(); digitalWrite(YB, LOW); Serial.print("Y low"); Serial.println(); Serial.println(); } if (wiiClassy.rzPressed()) { delay(10); Serial.print("delay"); Serial.println(); digitalWrite(dpadDown, HIGH); Serial.print("Down"); Serial.println(); delay(10); Serial.print("delay"); Serial.println(); digitalWrite(dpadLeft, HIGH); Serial.print("Right"); Serial.println(); delay(10); Serial.print("delay"); Serial.println(); digitalWrite(dpadDown, LOW); Serial.print("Down low"); Serial.println(); delay(50); Serial.print("Delay"); Serial.println(); digitalWrite(dpadLeft, LOW); Serial.print("Right low"); Serial.println(); digitalWrite(dpadDown, HIGH); Serial.print("Down"); Serial.println(); delay(10); Serial.print("delay"); Serial.println(); digitalWrite(dpadLeft, HIGH); Serial.print("Right"); Serial.println(); delay(10); Serial.print("delay"); Serial.println(); digitalWrite(dpadDown, LOW); Serial.print("Down low"); Serial.println(); delay(50); Serial.print("Delay"); Serial.println(); digitalWrite(dpadLeft, LOW); Serial.print("Right low"); Serial.println(); digitalWrite(YB, HIGH); Serial.print("Y"); Serial.println(); delay(20); Serial.print("delay"); Serial.println(); digitalWrite(YB, LOW); Serial.print("Y low"); Serial.println(); Serial.println(); } if (wiiClassy.selectPressed()) { delay(10); Serial.print("delay"); Serial.println(); digitalWrite(dpadDown, HIGH); Serial.print("Down"); Serial.println(); delay(10); Serial.print("delay"); Serial.println(); digitalWrite(dpadLeft, HIGH); Serial.print("Right"); Serial.println(); delay(10); Serial.print("delay"); Serial.println(); digitalWrite(dpadDown, LOW); Serial.print("Down low"); Serial.println(); delay(50); Serial.print("Delay"); Serial.println(); digitalWrite(dpadLeft, LOW); Serial.print("Right low"); Serial.println(); digitalWrite(YB, HIGH); Serial.print("B"); Serial.println(); delay(20); Serial.print("delay"); Serial.println(); digitalWrite(YB, LOW); Serial.print("B low"); Serial.println(); Serial.println(); //Serial.print("select."); } if (wiiClassy.homePressed()) { Serial.print("home."); } if (wiiClassy.startPressed()) { delay(10); Serial.print("delay"); Serial.println(); digitalWrite(dpadDown, HIGH); Serial.print("Down"); Serial.println(); delay(10); Serial.print("delay"); Serial.println(); digitalWrite(dpadRight, HIGH); Serial.print("Right"); Serial.println(); delay(10); Serial.print("delay"); Serial.println(); digitalWrite(dpadDown, LOW); Serial.print("Down low"); Serial.println(); delay(50); Serial.print("Delay"); Serial.println(); digitalWrite(dpadRight, LOW); Serial.print("Right low"); Serial.println(); digitalWrite(YB, HIGH); Serial.print("B"); Serial.println(); delay(20); Serial.print("delay"); Serial.println(); digitalWrite(YB, LOW); Serial.print("B low"); Serial.println(); Serial.println(); //Serial.print("start."); } delay(1); // 1ms is enough to not overload the wii Classic, 100ms seems to ease the serial terminal a little }