Last active
November 13, 2025 03:24
-
-
Save jaymcgavren/396dbc69088e0119fc6c6f400fafe22d to your computer and use it in GitHub Desktop.
Linwood Whaley's assembly code to run animations on his 4 x 4 x 4 LED cube
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| /* | |
| led-cube-4x4x4 | |
| Arduino UNO or Nano | |
| MCP23017 I/O expander controlled by I2C | |
| 64 leds in a 4 by 4 by 4 by 4 arrangement | |
| 16 2N3906 pnp transistors controlling led anodes connected to MCP23017 GPIO port outputs---low on output turns transistors on | |
| 4 2N4401 npn transistors controlling led cathodes connected to 4 pins of Arduino board---high on output turns transistors on | |
| MCP23017 address is 0x20 | |
| ATMEGA328P assembly language used in this program---for speed and memory savings | |
| Date Start: 8/20-2025 | |
| : 8/26/2025 | |
| : 10/09/2025 | |
| */ | |
| #include "Wire.h" | |
| #define Level_1 8 // analog pin A0 output for level 1 cathode control | |
| #define Level_2 9 // analog pin A1 output for level 2 cathode control | |
| #define Level_3 10 // analog pin A2 output for level 3 cathode control | |
| #define Level_4 11 // analog pin A3 output for level 4 cathode control | |
| int Level_1State = LOW; | |
| int Level_2State = LOW; | |
| void topBottomTop(); /// Line number 1035 | |
| void wallLeftRightLeft(); /// Line number 1850 | |
| void wallFrontBack(); /// Line number 2023 | |
| void wallAround(); /// Line number 2200 | |
| void ELECTRON(); /// Line number 2747 | |
| void diagonal(); /// Line number 1103 | |
| void wallFlip(); /// Line number 1199 Not used---Needs work | |
| void spinUP(); /// Line number 109 Not used---Needs work | |
| void squareSmallLarge(); /// Line number 3637 | |
| const int diagsped = 135; | |
| const int electSped = 15; // 15 looks good | |
| const int wallSped = 45; | |
| const int spinSped = 75; | |
| const int topbotSped = 125; | |
| void setup() { | |
| Wire.begin(); // wake i2c | |
| Wire.beginTransmission(0x20); // i2c address of i/o expander | |
| Wire.write(0x00); // register address of IODIRA--port A input/output direction | |
| Wire.write(0x00); // make all port A pins outputs | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x01); // register address of IODIRB--port B input/output direction | |
| Wire.write(0x00); // make all port B pins outputs | |
| Wire.endTransmission(); | |
| ///////////////////////////////////////////////Start with all leds off/////////////// | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of GPIOA---port A output pins | |
| Wire.write(0xff); // make all port A pins HIGH---turn off transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of GPIOB---port B output pins | |
| Wire.write(0xff); // make all port B pins HIGH---turn off transistors | |
| Wire.endTransmission(); | |
| ///////////////////////////////////////////////////////////////////////////////////// | |
| pinMode(Level_1, OUTPUT); // LOW is off | |
| pinMode(Level_2, OUTPUT); // HIGH is on | |
| pinMode(Level_3, OUTPUT); | |
| pinMode(Level_4, OUTPUT); | |
| digitalWrite(Level_1, LOW); // start off | |
| digitalWrite(Level_2, LOW); // with all | |
| digitalWrite(Level_3, LOW); // cathodes | |
| digitalWrite(Level_4, LOW); // off | |
| DDRB = B1111; // PB3--D8; PB2--D9; PB1==D11; PB0--D12 are outputs | |
| PORTB = B0000; //all LOW | |
| } | |
| void loop() { | |
| topBottomTop(); | |
| for(int i = 0; i < 3; i++) { | |
| wallLeftRightLeft(); | |
| } | |
| for(int i = 0; i < 2; i++) { | |
| wallFrontBack(); | |
| } | |
| for(int i = 0; i < 3; i++) { | |
| wallAround(); | |
| } | |
| squareSmallLarge(); | |
| for(int i = 0; i < 2; i++) { | |
| diagonal(); | |
| } | |
| ELECTRON(); | |
| } | |
| void spinUp() { //////////////////////////////////////////////////////////////////// | |
| digitalWrite(Level_1, LOW); // start off | |
| digitalWrite(Level_2, LOW); // with all | |
| digitalWrite(Level_3, LOW); // cathodes | |
| digitalWrite(Level_4, LOW); // off | |
| // LEVEL ONE // | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xbf); // make all port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xff); // make all port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_1, HIGH); // turn on lower level | |
| delay(spinSped); | |
| digitalWrite(Level_1, LOW); // turn off lower level | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0x9f); // make all port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xff); // make all port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_1, HIGH); // turn on lower level | |
| delay(spinSped); | |
| digitalWrite(Level_1, LOW); // turn off lower level | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0x9f); // make all port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xfd); // make all port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_1, HIGH); // turn on lower level | |
| delay(spinSped); | |
| digitalWrite(Level_1, LOW); // turn off lower level | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0x9f); // make all port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xf9); // make all port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_1, HIGH); // turn on lower level | |
| delay(spinSped); | |
| digitalWrite(Level_1, LOW); // turn off lower level | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0x9f); // make all port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xf1); // make all port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_1, HIGH); // turn on lower level | |
| delay(spinSped); | |
| digitalWrite(Level_1, LOW); // turn off lower level | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0x1f); // make all port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xf1); // make all port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_1, HIGH); // turn on lower level | |
| delay(spinSped); | |
| digitalWrite(Level_1, LOW); // turn off lower level | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0x17); // make all port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xf1); // make all port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_1, HIGH); // turn on lower level | |
| delay(spinSped); | |
| digitalWrite(Level_1, LOW); // turn off lower level | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0x13); // make all port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xf1); // make all port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_1, HIGH); // turn on lower level | |
| delay(spinSped); | |
| digitalWrite(Level_1, LOW); // turn off lower level | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0x11); // make all port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xf1); // make all port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_1, HIGH); // turn on lower level | |
| delay(spinSped); | |
| digitalWrite(Level_1, LOW); // turn off lower level | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0x10); // make all port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xf1); // make all port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_1, HIGH); // turn on lower level | |
| delay(spinSped); | |
| digitalWrite(Level_1, LOW); // turn off lower level | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0x00); // make all port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xf1); // make all port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_1, HIGH); // turn on lower level | |
| delay(spinSped); | |
| digitalWrite(Level_1, LOW); // turn off lower level | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0x00); // make all port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xf0); // make all port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_1, HIGH); // turn on lower level | |
| delay(spinSped); | |
| digitalWrite(Level_1, LOW); // turn off lower level | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0x00); // make all port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xe0); // make all port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_1, HIGH); // turn on lower level | |
| delay(spinSped); | |
| digitalWrite(Level_1, LOW); // turn off lower level | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0x00); // make all port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xc0); // make all port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_1, HIGH); // turn on lower level | |
| delay(spinSped); | |
| digitalWrite(Level_1, LOW); // turn off lower level | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0x00); // make all port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0x80); // make all port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_1, HIGH); // turn on lower level | |
| delay(spinSped); | |
| digitalWrite(Level_1, LOW); // turn off lower level | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0x00); // make all port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0x00); // make all port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_1, HIGH); // turn on lower level | |
| delay(spinSped); | |
| digitalWrite(Level_1, LOW); // turn off lower level | |
| // LEVEL TWO // | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xff); // make all port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0x7f); // make all port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_2, HIGH); // turn on lower level | |
| delay(spinSped); | |
| digitalWrite(Level_2, LOW); // turn off lower level | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xff); // make all port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0x77); // make all port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_2, HIGH); // turn on lower level | |
| delay(spinSped); | |
| digitalWrite(Level_2, LOW); // turn off lower level | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0x7f); // make all port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0x77); // make all port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_2, HIGH); // turn on lower level | |
| delay(spinSped); | |
| digitalWrite(Level_2, LOW); // turn off lower level | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0x77); // make all port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0x77); // make all port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_2, HIGH); // turn on lower level | |
| delay(spinSped); | |
| digitalWrite(Level_2, LOW); // turn off lower level | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0x73); // make all port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0x77); // make all port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_2, HIGH); // turn on lower level | |
| delay(spinSped); | |
| digitalWrite(Level_2, LOW); // turn off lower level | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0x71); // make all port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0x77); // make all port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_2, HIGH); // turn on lower level | |
| delay(spinSped); | |
| digitalWrite(Level_2, LOW); // turn off lower level | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0x70); // make all port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0x77); // make all port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_2, HIGH); // turn on lower level | |
| delay(spinSped); | |
| digitalWrite(Level_2, LOW); // turn off lower level | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0x60); // make all port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0x77); // make all port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_2, HIGH); // turn on lower level | |
| delay(spinSped); | |
| digitalWrite(Level_2, LOW); // turn off lower level | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0x60); // make all port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0x76); // make all port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_2, HIGH); // turn on lower level | |
| delay(spinSped); | |
| digitalWrite(Level_2, LOW); // turn off lower level | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0x60); // make all port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0x66); // make all port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_2, HIGH); // turn on lower level | |
| delay(spinSped); | |
| digitalWrite(Level_2, LOW); // turn off lower level | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0x60); // make all port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0x46); // make all port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_2, HIGH); // turn on lower level | |
| delay(spinSped); | |
| digitalWrite(Level_2, LOW); // turn off lower level | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0x60); // make all port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0x06); // make all port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_2, HIGH); // turn on lower level | |
| delay(spinSped); | |
| digitalWrite(Level_2, LOW); // turn off lower level | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0x60); // make all port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0x02); // make all port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_2, HIGH); // turn on lower level | |
| delay(spinSped); //// 13 //// | |
| digitalWrite(Level_2, LOW); // turn off lower level | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0x20); // make all port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0x02); // make all port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_2, HIGH); // turn on lower level | |
| delay(spinSped); | |
| digitalWrite(Level_2, LOW); // turn off lower level | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0x00); // make all port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0x02); // make all port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_2, HIGH); // turn on lower level | |
| delay(spinSped); | |
| digitalWrite(Level_2, LOW); // turn off lower level | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0x00); // make all port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0x00); // make all port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_2, HIGH); // turn on lower level | |
| delay(spinSped); | |
| digitalWrite(Level_2, LOW); // turn off lower level | |
| // LEVEL THREE // | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xff); // make all port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xfd); // make all port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_3, HIGH); // turn on lower level | |
| delay(spinSped); | |
| digitalWrite(Level_3, LOW); // turn off lower level | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xff); // make all port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xf9); // make all port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_3, HIGH); // turn on lower level | |
| delay(spinSped); | |
| digitalWrite(Level_3, LOW); // turn off lower level | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xbf); // make all port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xf9); // make all port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_3, HIGH); // turn on lower level | |
| delay(spinSped); | |
| digitalWrite(Level_3, LOW); // turn off lower level | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0x9f); // make all port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xf9); // make all port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_3, HIGH); // turn on lower level | |
| delay(spinSped); // four // | |
| digitalWrite(Level_3, LOW); // turn off lower level | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0x8f); // make all port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xf9); // make all port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_3, HIGH); // turn on lower level | |
| delay(spinSped); | |
| digitalWrite(Level_3, LOW); // turn off lower level | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0x8f); // make all port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xf8); // make all port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_3, HIGH); // turn on lower level | |
| delay(spinSped); | |
| digitalWrite(Level_3, LOW); // turn off lower level | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0x8f); // make all port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xe8); // make all port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_3, HIGH); // turn on lower level | |
| delay(spinSped); // seven // | |
| digitalWrite(Level_3, LOW); // turn off lower level | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0x8f); // make all port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xc8); // make all port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_3, HIGH); // turn on lower level | |
| delay(spinSped); // // | |
| digitalWrite(Level_3, LOW); // turn off lower level | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0x8f); // make all port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0x88); // make all port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_3, HIGH); // turn on lower level | |
| delay(spinSped); // // | |
| digitalWrite(Level_3, LOW); // turn off lower level | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0x8f); // make all port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0x08); // make all port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_3, HIGH); // turn on lower level | |
| delay(spinSped); // // | |
| digitalWrite(Level_3, LOW); // turn off lower level | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0x8f); // make all port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0x00); // make all port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_3, HIGH); // turn on lower level | |
| delay(spinSped); // // | |
| digitalWrite(Level_3, LOW); // turn off lower level | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0x0f); // make all port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0x00); // make all port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_3, HIGH); // turn on lower level | |
| delay(spinSped); // twelve // | |
| digitalWrite(Level_3, LOW); // turn off lower level | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0x07); // make all port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0x00); // make all port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_3, HIGH); // turn on lower level | |
| delay(spinSped); // // | |
| digitalWrite(Level_3, LOW); // turn off lower level | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0x03); // make all port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0x00); // make all port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_3, HIGH); // turn on lower level | |
| delay(spinSped); // // | |
| digitalWrite(Level_3, LOW); // turn off lower level | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0x01); // make all port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0x00); // make all port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_3, HIGH); // turn on lower level | |
| delay(spinSped); // // | |
| digitalWrite(Level_3, LOW); // turn off lower level | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0x00); // make all port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0x00); // make all port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_3, HIGH); // turn on lower level | |
| delay(spinSped); // // | |
| digitalWrite(Level_3, LOW); // turn off lower level | |
| // LEVEL FOUR // | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xfe); // make all port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xff); // make all port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_4, HIGH); // turn on lower level | |
| delay(spinSped); // ONE // | |
| digitalWrite(Level_4, LOW); // turn off lower level | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xee); // make all port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xff); // make all port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_4, HIGH); // turn on lower level | |
| delay(spinSped); // // | |
| digitalWrite(Level_4, LOW); // turn off lower level | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xee); // make all port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xfe); // make all port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_4, HIGH); // turn on lower level | |
| delay(spinSped); // // | |
| digitalWrite(Level_4, LOW); // turn off lower level | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xee); // make all port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xee); // make all port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_4, HIGH); // turn on lower level | |
| delay(spinSped); // // | |
| digitalWrite(Level_4, LOW); // turn off lower level | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xee); // make all port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xce); // make all port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_4, HIGH); // turn on lower level | |
| delay(spinSped); // // | |
| digitalWrite(Level_4, LOW); // turn off lower level | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xee); // make all port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0x8e); // make all port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_4, HIGH); // turn on lower level | |
| delay(spinSped); // SIX // | |
| digitalWrite(Level_4, LOW); // turn off lower level | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xee); // make all port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0x0e); // make all port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_4, HIGH); // turn on lower level | |
| delay(spinSped); // // | |
| digitalWrite(Level_4, LOW); // turn off lower level | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xee); // make all port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0x06); // make all port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_4, HIGH); // turn on lower level | |
| delay(spinSped); // // | |
| digitalWrite(Level_4, LOW); // turn off lower level | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0x6e); // make all port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0x06); // make all port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_4, HIGH); // turn on lower level | |
| delay(spinSped); // // | |
| digitalWrite(Level_4, LOW); // turn off lower level | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0x66); // make all port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0x06); // make all port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_4, HIGH); // turn on lower level | |
| delay(spinSped); // TEN // | |
| digitalWrite(Level_4, LOW); // turn off lower level | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0x62); // make all port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0x06); // make all port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_4, HIGH); // turn on lower level | |
| delay(spinSped); // // | |
| digitalWrite(Level_4, LOW); // turn off lower level | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0x60); // make all port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0x06); // make all port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_4, HIGH); // turn on lower level | |
| delay(spinSped); // // | |
| digitalWrite(Level_4, LOW); // turn off lower level | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0x40); // make all port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0x06); // make all port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_4, HIGH); // turn on lower level | |
| delay(spinSped); | |
| digitalWrite(Level_4, LOW); // turn off lower level | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0x40); // make all port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0x04); // make all port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_4, HIGH); // turn on lower level | |
| delay(spinSped); // FOURTEEN // | |
| digitalWrite(Level_4, LOW); // turn off lower level | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0x40); // make all port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0x00); // make all port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_4, HIGH); // turn on lower level | |
| delay(spinSped); | |
| digitalWrite(Level_4, LOW); // turn off lower level | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0x00); // make all port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0x00); // make all port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_4, HIGH); // turn on lower level | |
| delay(spinSped); | |
| digitalWrite(Level_4, LOW); // turn off lower level | |
| } // end---spinUp() | |
| void topBottomTop() { ////////////////////////////////////////////////////////////////// | |
| PORTB = B0000; | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0x00); // make all port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0x00); // make all port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| delay(2); | |
| for(int i = 0; i < 4; i++) { // loop ten times | |
| PORTB = B0001; // turn on level one | |
| delay(topbotSped); | |
| PORTB = B0000; // turn off level one | |
| PORTB = B0010; // turn on level two | |
| delay(topbotSped); | |
| PORTB = B0000; // turn off level two | |
| PORTB = B0100; // turn on level three | |
| delay(topbotSped); | |
| PORTB = B0000; // turn off level three | |
| PORTB = B1000; // turn on level four | |
| delay(topbotSped); | |
| PORTB = B0000; // turn off level four | |
| PORTB = B1000; // turn on level four | |
| delay(topbotSped); | |
| PORTB = B0000; // turn off level four | |
| PORTB = B0100; // turn on level three | |
| delay(topbotSped); | |
| PORTB = B0000; // turn off level three | |
| PORTB = B0010; // turn on level two | |
| delay(topbotSped); | |
| PORTB = B0000; // turn off level two | |
| PORTB = B0001; // turn on level one | |
| delay(topbotSped); | |
| PORTB = B0000; // turn off level one | |
| } // end---for loop | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xff); // make all port A pins HIGH---turn off transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xff); // make all port B pins HIGH---turn off transistors | |
| Wire.endTransmission(); | |
| delay(2); | |
| } // end---void topBottomTop() | |
| void diagonal() { ////////////////////////////////////////////////////////////////////// | |
| PORTB = B0000; // turn off all levels | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xee); // make right wall port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xee); // make right wall port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| PORTB = B1000; // enable ground to level four | |
| delay(diagsped); | |
| PORTB = B0000; // disable ground to level four | |
| PORTB = B0100; // enable ground to level three | |
| delay(diagsped); | |
| PORTB = B0000; // disable ground to level three | |
| PORTB = B0010; // enable ground to level two | |
| delay(diagsped); | |
| PORTB = B0000; // disable ground to level two | |
| PORTB = B0001; // enable ground to level one | |
| delay(diagsped); | |
| PORTB = B0000; // disable ground to level one | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xdd); // | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xdd); // | |
| Wire.endTransmission(); | |
| PORTB = B0010; // enable ground to level two | |
| delay(diagsped); | |
| PORTB = B0000; // disable ground to level two | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xbb); // make right wall port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xbb); // make right wall port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| PORTB = B0100; // enable ground to level three | |
| delay(diagsped); | |
| PORTB = B0000; // disable ground to level three | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0x77); // make right wall port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0x77); // make right wall port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| PORTB = B1000; // enable ground to level four | |
| delay(diagsped); | |
| PORTB = B0000; // disable ground to level four | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xbb); // make right wall port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xbb); // make right wall port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| PORTB = B1000; // enable ground to level four | |
| delay(diagsped); | |
| PORTB = B0000; // disable ground to level four | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xdd); // make right wall port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xdd); // make right wall port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| PORTB = B1000; // enable ground to level four | |
| delay(diagsped); | |
| PORTB = B0000; // disable ground to level four | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xee); // make right wall port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xee); // make right wall port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| PORTB = B1000; // enable ground to level four | |
| delay(diagsped); | |
| PORTB = B0000; // disable ground to level four | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xdd); // make right wall port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xdd); // make right wall port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| PORTB = B0100; // enable ground to level three | |
| delay(diagsped); | |
| PORTB = B0000; // disable ground to level three | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xbb); // make right wall port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xbb); // make right wall port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| PORTB = B0010; // enable ground to level two | |
| delay(diagsped); | |
| PORTB = B0000; // disable ground to level two | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0x77); // make right wall port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0x77); // make right wall port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| PORTB = B0001; // enable ground to level one | |
| delay(diagsped); | |
| PORTB = B0000; // disable ground to level one | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xbb); // make right wall port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xbb); // make right wall port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| PORTB = B0001; // enable ground to level one | |
| delay(diagsped); | |
| PORTB = B0000; // disable ground to level one | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xdd); // make right wall port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xdd); // make right wall port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| PORTB = B0001; // enable ground to level one | |
| delay(diagsped); | |
| PORTB = B0000; // disable ground to level one | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xee); // make right wall port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xee); // make right wall port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| PORTB = B0001; // enable ground to level one | |
| delay(diagsped); | |
| PORTB = B0000; // disable ground to level one | |
| PORTB = B0010; // enable ground to level two | |
| delay(diagsped); | |
| PORTB = B0000; // disable ground to level two | |
| PORTB = B0100; // enable ground to level three | |
| delay(diagsped); | |
| PORTB = B0000; // disable ground to level three | |
| PORTB = B1000; // enable ground to level four | |
| delay(diagsped); | |
| PORTB = B0000; // disable ground to level four | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xdd); // make right wall port A pins LOW---turn on transistors | |
| Wire.endTransmission(); // | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xdd); // make right wall port B pins LOW---turn on transistors | |
| Wire.endTransmission(); // | |
| PORTB = B1000; // enable ground to level four | |
| delay(diagsped); | |
| PORTB = B0000; // disable ground to level four | |
| PORTB = B0100; // enable ground to level three | |
| delay(diagsped); | |
| PORTB = B0000; // disable ground to level three | |
| PORTB = B0010; // enable ground to level two | |
| delay(diagsped); | |
| PORTB = B0000; // disable ground to level two | |
| PORTB = B0001; // enable ground to level one | |
| delay(diagsped); | |
| PORTB = B0000; // disable ground to level one | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xbb); // make right wall port A pins LOW---turn on transistors | |
| Wire.endTransmission(); // | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xbb); // make right wall port B pins LOW---turn on transistors | |
| Wire.endTransmission(); // | |
| PORTB = B0001; // enable ground to level one | |
| delay(diagsped); | |
| PORTB = B0000; // disable ground to level one | |
| PORTB = B0010; // enable ground to level two | |
| delay(diagsped); | |
| PORTB = B0000; // disable ground to level two | |
| PORTB = B0100; // enable ground to level three | |
| delay(diagsped); | |
| PORTB = B0000; // disable ground to level three | |
| PORTB = B1000; // enable ground to level four | |
| delay(diagsped); | |
| PORTB = B0000; // disable ground to level four | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0x77); // make left (0111) leds port A pins LOW---turn on transistors | |
| Wire.endTransmission(); // | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0x77); // make left (0111) leds port B pins LOW---turn on transistors | |
| Wire.endTransmission(); // | |
| PORTB = B1000; // enable ground to level four | |
| delay(diagsped); | |
| PORTB = B0000; // disable ground to level four | |
| PORTB = B0100; // enable ground to level three | |
| delay(diagsped); | |
| PORTB = B0000; // disable ground to level three | |
| PORTB = B0010; // enable ground to level two | |
| delay(diagsped); | |
| PORTB = B0000; // disable ground to level two | |
| PORTB = B0001; // enable ground to level one | |
| delay(diagsped); | |
| PORTB = B0000; // disable ground to level one | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xbb); // make second left (1011) led port A pins LOW---turn on transistors | |
| Wire.endTransmission(); // | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xbb); // make second left (1011) led port B pins LOW---turn on transistors | |
| Wire.endTransmission(); // | |
| PORTB = B0010; // enable ground to level two | |
| delay(diagsped); | |
| PORTB = B0000; // disable ground to level two | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xdd); // make second right (1101) led port A pins LOW---turn on transistors | |
| Wire.endTransmission(); // | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xdd); // make second right (1101) led port B pins LOW---turn on transistors | |
| Wire.endTransmission(); // | |
| PORTB = B0100; // enable ground to level three | |
| delay(diagsped); | |
| PORTB = B0000; // disable ground to level three | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xee); // make right (1110) led port A pins LOW---turn on transistors | |
| Wire.endTransmission(); // | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xee); // make right (1110) led port B pins LOW---turn on transistors | |
| Wire.endTransmission(); // | |
| PORTB = B1000; // enable ground to level four | |
| delay(diagsped); | |
| PORTB = B0000; // disable ground to level four | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xdd); // make second right (1101) led port A pins LOW---turn on transistors | |
| Wire.endTransmission(); // | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xdd); // make second right (1101) led port B pins LOW---turn on transistors | |
| Wire.endTransmission(); // | |
| PORTB = B1000; // enable ground to level four | |
| delay(diagsped); | |
| PORTB = B0000; // disable ground to level four | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xbb); // make second right (1101) led port A pins LOW---turn on transistors | |
| Wire.endTransmission(); // | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xbb); // make second right (1101) led port B pins LOW---turn on transistors | |
| Wire.endTransmission(); // | |
| PORTB = B1000; // enable ground to level four | |
| delay(diagsped); | |
| PORTB = B0000; // disable ground to level four | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0x77); // make second right (1101) led port A pins LOW---turn on transistors | |
| Wire.endTransmission(); // | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0x77); // make second right (1101) led port B pins LOW---turn on transistors | |
| Wire.endTransmission(); // | |
| PORTB = B1000; // enable ground to level four | |
| delay(diagsped); | |
| PORTB = B0000; // disable ground to level four | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xbb); // make bottom wall port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xbb); // make bottom wall port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| PORTB = B0100; // enable ground to level three | |
| delay(diagsped); | |
| PORTB = B0000; // disable ground to level three | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xdd); // make bottom wall port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xdd); // make bottom wall port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| PORTB = B0010; // enable ground to level two | |
| delay(diagsped); | |
| PORTB = B0000; // disable ground to level two | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xee); // make bottom wall port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xee); // make bottom wall port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| PORTB = B0001; // enable ground to level one | |
| delay(diagsped); | |
| PORTB = B0000; // disable ground to level one | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xdd); // make bottom wall port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xdd); // make bottom wall port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| PORTB = B0001; // enable ground to level one | |
| delay(diagsped); | |
| PORTB = B0000; // disable ground to level one | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xbb); // make bottom wall port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xbb); // make bottom wall port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| PORTB = B0001; // enable ground to level one | |
| delay(diagsped); | |
| PORTB = B0000; // disable ground to level one | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0x77); // make bottom wall port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0x77); // make bottom wall port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| PORTB = B0001; // enable ground to level one | |
| delay(diagsped); | |
| PORTB = B0000; // disable ground to level one | |
| PORTB = B0010; // enable ground to level two | |
| delay(diagsped); | |
| PORTB = B0000; // disable ground to level two | |
| PORTB = B0100; // enable ground to level three | |
| delay(diagsped); | |
| PORTB = B0000; // disable ground to level three | |
| PORTB = B1000; // enable ground to level four | |
| delay(diagsped); | |
| PORTB = B0000; // disable ground to level four | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xbb); // make bottom wall port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xbb); // make bottom wall port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| PORTB = B1000; // enable ground to level four | |
| delay(diagsped); | |
| PORTB = B0000; // disable ground to level four | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xdd); // make bottom wall port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xdd); // make bottom wall port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| PORTB = B1000; // enable ground to level four | |
| delay(diagsped); | |
| PORTB = B0000; // disable ground to level four | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xee); // make bottom wall port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xee); // make bottom wall port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| PORTB = B1000; // enable ground to level four | |
| delay(diagsped); | |
| PORTB = B0000; // disable ground to level four | |
| } // end---void diagonal() | |
| void wallLeftRightLeft() { /////////////////////////////////////////////////////////////////// | |
| digitalWrite(Level_1, LOW); // start off | |
| digitalWrite(Level_2, LOW); // with all | |
| digitalWrite(Level_3, LOW); // cathodes | |
| digitalWrite(Level_4, LOW); // off | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xee); // make right wall port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xee); // make right wall port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_1, HIGH); // turn | |
| digitalWrite(Level_2, HIGH); // all | |
| digitalWrite(Level_3, HIGH); // cathodes | |
| digitalWrite(Level_4, HIGH); // on | |
| delay(125); | |
| digitalWrite(Level_1, LOW); // turn | |
| digitalWrite(Level_2, LOW); // all | |
| digitalWrite(Level_3, LOW); // cathodes | |
| digitalWrite(Level_4, LOW); // off | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xdd); // make all port A pins HIGH---turn off transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xdd); // make all port B pins HIGH---turn off transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_1, HIGH); // turn | |
| digitalWrite(Level_2, HIGH); // all | |
| digitalWrite(Level_3, HIGH); // cathodes | |
| digitalWrite(Level_4, HIGH); // on | |
| delay(125); | |
| digitalWrite(Level_1, LOW); // turn | |
| digitalWrite(Level_2, LOW); // all | |
| digitalWrite(Level_3, LOW); // cathodes | |
| digitalWrite(Level_4, LOW); // off | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xbb); // make all port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xbb); // make all port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_1, HIGH); // turn | |
| digitalWrite(Level_2, HIGH); // all | |
| digitalWrite(Level_3, HIGH); // cathodes | |
| digitalWrite(Level_4, HIGH); // on | |
| delay(125); | |
| digitalWrite(Level_1, LOW); // turn | |
| digitalWrite(Level_2, LOW); // all | |
| digitalWrite(Level_3, LOW); // cathodes | |
| digitalWrite(Level_4, LOW); // off | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0x77); // make all port A pins HIGH---turn off transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0x77); // make all port B pins HIGH---turn off transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_1, HIGH); // turn | |
| digitalWrite(Level_2, HIGH); // all | |
| digitalWrite(Level_3, HIGH); // cathodes | |
| digitalWrite(Level_4, HIGH); // on | |
| delay(125); | |
| digitalWrite(Level_1, LOW); // turn | |
| digitalWrite(Level_2, LOW); // all | |
| digitalWrite(Level_3, LOW); // cathodes | |
| digitalWrite(Level_4, LOW); // off | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xbb); // make all port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xbb); // make all port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_1, HIGH); // turn | |
| digitalWrite(Level_2, HIGH); // all | |
| digitalWrite(Level_3, HIGH); // cathodes | |
| digitalWrite(Level_4, HIGH); // on | |
| delay(125); | |
| digitalWrite(Level_1, LOW); // turn | |
| digitalWrite(Level_2, LOW); // all | |
| digitalWrite(Level_3, LOW); // cathodes | |
| digitalWrite(Level_4, LOW); // off | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xdd); // make all port A pins HIGH---turn off transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xdd); // make all port B pins HIGH---turn off transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_1, HIGH); // turn | |
| digitalWrite(Level_2, HIGH); // all | |
| digitalWrite(Level_3, HIGH); // cathodes | |
| digitalWrite(Level_4, HIGH); // on | |
| delay(125); | |
| digitalWrite(Level_1, LOW); // turn | |
| digitalWrite(Level_2, LOW); // all | |
| digitalWrite(Level_3, LOW); // cathodes | |
| digitalWrite(Level_4, LOW); // off | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xee); // make all port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xee); // make all port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_1, HIGH); // turn | |
| digitalWrite(Level_2, HIGH); // all | |
| digitalWrite(Level_3, HIGH); // cathodes | |
| digitalWrite(Level_4, HIGH); // on | |
| delay(125); | |
| digitalWrite(Level_1, LOW); // turn | |
| digitalWrite(Level_2, LOW); // all | |
| digitalWrite(Level_3, LOW); // cathodes | |
| digitalWrite(Level_4, LOW); // off | |
| } // end---void wallLeftRightLeft() | |
| void wallFlip() { /////////////////////////////////////////////////////////////////////////// | |
| digitalWrite(Level_1, LOW); // start off | |
| digitalWrite(Level_2, LOW); // with all | |
| digitalWrite(Level_3, LOW); // cathodes | |
| digitalWrite(Level_4, LOW); // off | |
| for(int i = 0; i < 2; i++) { | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xf0); // make front wall forward port A pins LOW---turn on transistors | |
| Wire.endTransmission(); // front wall---11111 | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xff); // make all port B pins LOW---turn off transistors | |
| Wire.endTransmission(); // front wall---11111 | |
| digitalWrite(Level_1, HIGH); // turn | |
| digitalWrite(Level_2, HIGH); // all | |
| digitalWrite(Level_3, HIGH); // cathodes | |
| digitalWrite(Level_4, HIGH); // on | |
| delay(750); | |
| digitalWrite(Level_1, LOW); // start off | |
| digitalWrite(Level_2, LOW); // with all | |
| digitalWrite(Level_3, LOW); // cathodes | |
| digitalWrite(Level_4, LOW); // off | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xb7); // make front wall forward port A pins LOW---turn on transistors | |
| Wire.endTransmission(); // left front to right rear diagonal wall---22222 | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xed); // make all port B pins LOW---turn off transistors | |
| Wire.endTransmission(); // left front to right rear diagonal wall---22222 | |
| digitalWrite(Level_1, HIGH); // turn | |
| digitalWrite(Level_2, HIGH); // all | |
| digitalWrite(Level_3, HIGH); // cathodes | |
| digitalWrite(Level_4, HIGH); // on | |
| delay(750); | |
| digitalWrite(Level_1, LOW); // start off | |
| digitalWrite(Level_2, LOW); // with all | |
| digitalWrite(Level_3, LOW); // cathodes | |
| digitalWrite(Level_4, LOW); // off | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0x77); // make front wall forward port A pins LOW---turn on transistors | |
| Wire.endTransmission(); // leftwall---77777---3333333 | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0x77); // make all port B pins LOW---turn off transistors | |
| Wire.endTransmission(); // left wall---7777777---333333 | |
| digitalWrite(Level_1, HIGH); // turn | |
| digitalWrite(Level_2, HIGH); // all | |
| digitalWrite(Level_3, HIGH); // cathodes | |
| digitalWrite(Level_4, HIGH); // on | |
| delay(750); | |
| digitalWrite(Level_1, LOW); // start off | |
| digitalWrite(Level_2, LOW); // with all | |
| digitalWrite(Level_3, LOW); // cathodes | |
| digitalWrite(Level_4, LOW); // off | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xde); // make front wall forward port A pins LOW---turn on transistors | |
| Wire.endTransmission(); // left rear to right front diagonal---44444---44444 | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0x7b); // make all port B pins LOW---turn off transistors | |
| Wire.endTransmission(); // left rear to right front diagonal---44444---44444 | |
| digitalWrite(Level_1, HIGH); // turn | |
| digitalWrite(Level_2, HIGH); // all | |
| digitalWrite(Level_3, HIGH); // cathodes | |
| digitalWrite(Level_4, HIGH); // on | |
| delay(750); | |
| digitalWrite(Level_1, LOW); // start off | |
| digitalWrite(Level_2, LOW); // with all | |
| digitalWrite(Level_3, LOW); // cathodes | |
| digitalWrite(Level_4, LOW); // off | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xff); // make front wall forward port A pins LOW---turn on transistors | |
| Wire.endTransmission(); // back wall---33333---55555 | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0x0f); // make all port B pins LOW---turn off transistors | |
| Wire.endTransmission(); // back wall---33333---55555 | |
| digitalWrite(Level_1, HIGH); // turn | |
| digitalWrite(Level_2, HIGH); // all | |
| digitalWrite(Level_3, HIGH); // cathodes | |
| digitalWrite(Level_4, HIGH); // on | |
| delay(750); | |
| digitalWrite(Level_1, LOW); // start off | |
| digitalWrite(Level_2, LOW); // with all | |
| digitalWrite(Level_3, LOW); // cathodes | |
| digitalWrite(Level_4, LOW); // off | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xb7); // make front wall forward port A pins LOW---turn on transistors | |
| Wire.endTransmission(); // right rear to left front diagonal wall---66666---666666 | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xed); // make all port B pins LOW---turn off transistors | |
| Wire.endTransmission(); // right rear to left front diagonal wall---66666---666666 | |
| digitalWrite(Level_1, HIGH); // turn | |
| digitalWrite(Level_2, HIGH); // all | |
| digitalWrite(Level_3, HIGH); // cathodes | |
| digitalWrite(Level_4, HIGH); // on | |
| delay(750); | |
| digitalWrite(Level_1, LOW); // start off | |
| digitalWrite(Level_2, LOW); // with all | |
| digitalWrite(Level_3, LOW); // cathodes | |
| digitalWrite(Level_4, LOW); // off | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xee); // make front wall forward port A pins LOW---turn on transistors | |
| Wire.endTransmission(); // right wall---55555 | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xee); // make all port B pins LOW---turn off transistors | |
| Wire.endTransmission(); // right wall---55555 | |
| digitalWrite(Level_1, HIGH); // turn | |
| digitalWrite(Level_2, HIGH); // all | |
| digitalWrite(Level_3, HIGH); // cathodes | |
| digitalWrite(Level_4, HIGH); // on | |
| delay(750); | |
| digitalWrite(Level_1, LOW); // start off | |
| digitalWrite(Level_2, LOW); // with all | |
| digitalWrite(Level_3, LOW); // cathodes | |
| digitalWrite(Level_4, LOW); // off | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xde); // make front wall forward port A pins LOW---turn on transistors | |
| Wire.endTransmission(); // left rear to right front diagonal---44444 | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0x7b); // make all port B pins LOW---turn off transistors | |
| Wire.endTransmission(); // left rear to right front diagonal---44444 | |
| digitalWrite(Level_1, HIGH); // turn | |
| digitalWrite(Level_2, HIGH); // all | |
| digitalWrite(Level_3, HIGH); // cathodes | |
| digitalWrite(Level_4, HIGH); // on | |
| delay(750); | |
| digitalWrite(Level_1, LOW); // start off | |
| digitalWrite(Level_2, LOW); // with all | |
| digitalWrite(Level_3, LOW); // cathodes | |
| digitalWrite(Level_4, LOW); // off | |
| } | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xf0); // make front wall forward port A pins LOW---turn on transistors | |
| Wire.endTransmission(); // front wall---11111 | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xff); // make all port B pins LOW---turn off transistors | |
| Wire.endTransmission(); // front wall---11111 | |
| digitalWrite(Level_1, HIGH); // turn | |
| digitalWrite(Level_2, HIGH); // all | |
| digitalWrite(Level_3, HIGH); // cathodes | |
| digitalWrite(Level_4, HIGH); // on | |
| delay(750); | |
| digitalWrite(Level_1, LOW); // start off | |
| digitalWrite(Level_2, LOW); // with all | |
| digitalWrite(Level_3, LOW); // cathodes | |
| digitalWrite(Level_4, LOW); // off | |
| } // end---wallFlip() | |
| void wallFrontBack() { //////////////////////////////////////////////////////////////////////////////// | |
| digitalWrite(Level_1, LOW); // start off | |
| digitalWrite(Level_2, LOW); // with all | |
| digitalWrite(Level_3, LOW); // cathodes | |
| digitalWrite(Level_4, LOW); // off | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xf0); // make front wall forward port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xff); // make all port B pins LOW---turn off transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_1, HIGH); // turn | |
| digitalWrite(Level_2, HIGH); // all | |
| digitalWrite(Level_3, HIGH); // cathodes | |
| digitalWrite(Level_4, HIGH); // on | |
| delay(125); | |
| digitalWrite(Level_1, LOW); // turn | |
| digitalWrite(Level_2, LOW); // all | |
| digitalWrite(Level_3, LOW); // cathodes | |
| digitalWrite(Level_4, LOW); // off | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0x0f); // make second wall port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xff); // make all port B pins HIGH---turn off transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_1, HIGH); // turn | |
| digitalWrite(Level_2, HIGH); // all | |
| digitalWrite(Level_3, HIGH); // cathodes | |
| digitalWrite(Level_4, HIGH); // on | |
| delay(125); | |
| digitalWrite(Level_1, LOW); // turn | |
| digitalWrite(Level_2, LOW); // all | |
| digitalWrite(Level_3, LOW); // cathodes | |
| digitalWrite(Level_4, LOW); // off | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xff); // make all port A pins HIGH---turn off transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xf0); // make third wall port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_1, HIGH); // turn | |
| digitalWrite(Level_2, HIGH); // all | |
| digitalWrite(Level_3, HIGH); // cathodes | |
| digitalWrite(Level_4, HIGH); // on | |
| delay(125); | |
| digitalWrite(Level_1, LOW); // turn | |
| digitalWrite(Level_2, LOW); // all | |
| digitalWrite(Level_3, LOW); // cathodes | |
| digitalWrite(Level_4, LOW); // off | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xff); // make all port A pins HIGH---turn off transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0x0f); // make rear wall port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_1, HIGH); // turn | |
| digitalWrite(Level_2, HIGH); // all | |
| digitalWrite(Level_3, HIGH); // cathodes | |
| digitalWrite(Level_4, HIGH); // on | |
| delay(125); | |
| digitalWrite(Level_1, LOW); // turn | |
| digitalWrite(Level_2, LOW); // all | |
| digitalWrite(Level_3, LOW); // cathodes | |
| digitalWrite(Level_4, LOW); // off | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xff); // make all port A pins HIGH---turn off transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xf0); // make third wall port B pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_1, HIGH); // turn | |
| digitalWrite(Level_2, HIGH); // all | |
| digitalWrite(Level_3, HIGH); // cathodes | |
| digitalWrite(Level_4, HIGH); // on | |
| delay(125); | |
| digitalWrite(Level_1, LOW); // turn | |
| digitalWrite(Level_2, LOW); // all | |
| digitalWrite(Level_3, LOW); // cathodes | |
| digitalWrite(Level_4, LOW); // off | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0x0f); // make second wall port A pins LOW---turn ofn transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xff); // make all port B pins HIGH---turn off transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_1, HIGH); // turn | |
| digitalWrite(Level_2, HIGH); // all | |
| digitalWrite(Level_3, HIGH); // cathodes | |
| digitalWrite(Level_4, HIGH); // on | |
| delay(125); | |
| digitalWrite(Level_1, LOW); // turn | |
| digitalWrite(Level_2, LOW); // all | |
| digitalWrite(Level_3, LOW); // cathodes | |
| digitalWrite(Level_4, LOW); // off | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xf0); // make front wall port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xff); // make all port B pins HIGH---turn off transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_1, HIGH); // turn | |
| digitalWrite(Level_2, HIGH); // all | |
| digitalWrite(Level_3, HIGH); // cathodes | |
| digitalWrite(Level_4, HIGH); // on | |
| delay(125); | |
| digitalWrite(Level_1, LOW); // turn | |
| digitalWrite(Level_2, LOW); // all | |
| digitalWrite(Level_3, LOW); // cathodes | |
| digitalWrite(Level_4, LOW); // off | |
| } // end---void wallFrontBack() | |
| void wallAround() { /////////////////////////////////////////////////////////////////////////// | |
| digitalWrite(Level_1, LOW); // start off | |
| digitalWrite(Level_2, LOW); // with all | |
| digitalWrite(Level_3, LOW); // cathodes | |
| digitalWrite(Level_4, LOW); // off | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xf7); // make right wall port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xff); // make port B pins HIGH---turn off transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_1, HIGH); // turn | |
| digitalWrite(Level_2, HIGH); // all | |
| digitalWrite(Level_3, HIGH); // cathodes | |
| digitalWrite(Level_4, HIGH); // on | |
| delay(75); | |
| digitalWrite(Level_1, LOW); // start off | |
| digitalWrite(Level_2, LOW); // with all | |
| digitalWrite(Level_3, LOW); // cathodes | |
| digitalWrite(Level_4, LOW); // off | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xf3); // make right wall port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xff); // make port B pins HIGH---turn off transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_1, HIGH); // turn | |
| digitalWrite(Level_2, HIGH); // all | |
| digitalWrite(Level_3, HIGH); // cathodes | |
| digitalWrite(Level_4, HIGH); // on | |
| delay(75); | |
| digitalWrite(Level_1, LOW); // start off | |
| digitalWrite(Level_2, LOW); // with all | |
| digitalWrite(Level_3, LOW); // cathodes | |
| digitalWrite(Level_4, LOW); // off | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xf1); // make right wall port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xff); // make port B pins HIGH---turn off transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_1, HIGH); // turn | |
| digitalWrite(Level_2, HIGH); // all | |
| digitalWrite(Level_3, HIGH); // cathodes | |
| digitalWrite(Level_4, HIGH); // on | |
| delay(75); | |
| digitalWrite(Level_1, LOW); // start off | |
| digitalWrite(Level_2, LOW); // with all | |
| digitalWrite(Level_3, LOW); // cathodes | |
| digitalWrite(Level_4, LOW); // off | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xf0); // make right wall port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xff); // make port B pins HIGH---turn off transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_1, HIGH); // turn | |
| digitalWrite(Level_2, HIGH); // all | |
| digitalWrite(Level_3, HIGH); // cathodes | |
| digitalWrite(Level_4, HIGH); // on | |
| delay(75); | |
| digitalWrite(Level_1, LOW); // start off | |
| digitalWrite(Level_2, LOW); // with all | |
| digitalWrite(Level_3, LOW); // cathodes | |
| digitalWrite(Level_4, LOW); // off | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xe0); // make right wall port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xff); // make port B pins HIGH---turn off transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_1, HIGH); // turn | |
| digitalWrite(Level_2, HIGH); // all | |
| digitalWrite(Level_3, HIGH); // cathodes | |
| digitalWrite(Level_4, HIGH); // on | |
| delay(75); | |
| digitalWrite(Level_1, LOW); // start off | |
| digitalWrite(Level_2, LOW); // with all | |
| digitalWrite(Level_3, LOW); // cathodes | |
| digitalWrite(Level_4, LOW); // off | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xe0); // make right wall port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xfe); // make port B pins HIGH---turn off transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_1, HIGH); // turn | |
| digitalWrite(Level_2, HIGH); // all | |
| digitalWrite(Level_3, HIGH); // cathodes | |
| digitalWrite(Level_4, HIGH); // on | |
| delay(75); | |
| digitalWrite(Level_1, LOW); // start off | |
| digitalWrite(Level_2, LOW); // with all | |
| digitalWrite(Level_3, LOW); // cathodes | |
| digitalWrite(Level_4, LOW); // off | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xe0); // make right wall port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xee); // make port B pins HIGH---turn off transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_1, HIGH); // turn | |
| digitalWrite(Level_2, HIGH); // all | |
| digitalWrite(Level_3, HIGH); // cathodes | |
| digitalWrite(Level_4, HIGH); // on | |
| delay(75); | |
| digitalWrite(Level_1, LOW); // start off | |
| digitalWrite(Level_2, LOW); // with all | |
| digitalWrite(Level_3, LOW); // cathodes | |
| digitalWrite(Level_4, LOW); // off | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xe0); // make right wall port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xce); // make port B pins HIGH---turn off transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_1, HIGH); // turn | |
| digitalWrite(Level_2, HIGH); // all | |
| digitalWrite(Level_3, HIGH); // cathodes | |
| digitalWrite(Level_4, HIGH); // on | |
| delay(75); | |
| digitalWrite(Level_1, LOW); // start off | |
| digitalWrite(Level_2, LOW); // with all | |
| digitalWrite(Level_3, LOW); // cathodes | |
| digitalWrite(Level_4, LOW); // off | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xe0); // make right wall port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0x8e); // make port B pins HIGH---turn off transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_1, HIGH); // turn | |
| digitalWrite(Level_2, HIGH); // all | |
| digitalWrite(Level_3, HIGH); // cathodes | |
| digitalWrite(Level_4, HIGH); // on | |
| delay(75); | |
| digitalWrite(Level_1, LOW); // start off | |
| digitalWrite(Level_2, LOW); // with all | |
| digitalWrite(Level_3, LOW); // cathodes | |
| digitalWrite(Level_4, LOW); // off | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xe0); // make right wall port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0x0e); // make port B pins HIGH---turn off transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_1, HIGH); // turn | |
| digitalWrite(Level_2, HIGH); // all | |
| digitalWrite(Level_3, HIGH); // cathodes | |
| digitalWrite(Level_4, HIGH); // on | |
| delay(75); | |
| digitalWrite(Level_1, LOW); // start off | |
| digitalWrite(Level_2, LOW); // with all | |
| digitalWrite(Level_3, LOW); // cathodes | |
| digitalWrite(Level_4, LOW); // off | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xe0); // make right wall port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0x06); // make port B pins HIGH---turn off transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_1, HIGH); // turn | |
| digitalWrite(Level_2, HIGH); // all | |
| digitalWrite(Level_3, HIGH); // cathodes | |
| digitalWrite(Level_4, HIGH); // on | |
| delay(75); | |
| digitalWrite(Level_1, LOW); // start off | |
| digitalWrite(Level_2, LOW); // with all | |
| digitalWrite(Level_3, LOW); // cathodes | |
| digitalWrite(Level_4, LOW); // off | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0x60); // make right wall port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0x06); // make port B pins HIGH---turn off transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_1, HIGH); // turn | |
| digitalWrite(Level_2, HIGH); // all | |
| digitalWrite(Level_3, HIGH); // cathodes | |
| digitalWrite(Level_4, HIGH); // on | |
| delay(75); | |
| digitalWrite(Level_1, LOW); // start off | |
| digitalWrite(Level_2, LOW); // with all | |
| digitalWrite(Level_3, LOW); // cathodes | |
| digitalWrite(Level_4, LOW); // off | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0x68); // make right wall port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0x06); // make port B pins HIGH---turn off transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_1, HIGH); // turn | |
| digitalWrite(Level_2, HIGH); // all | |
| digitalWrite(Level_3, HIGH); // cathodes | |
| digitalWrite(Level_4, HIGH); // on | |
| delay(75); | |
| digitalWrite(Level_1, LOW); // start off | |
| digitalWrite(Level_2, LOW); // with all | |
| digitalWrite(Level_3, LOW); // cathodes | |
| digitalWrite(Level_4, LOW); // off | |
| digitalWrite(Level_1, LOW); // start off | |
| digitalWrite(Level_2, LOW); // with all | |
| digitalWrite(Level_3, LOW); // cathodes | |
| digitalWrite(Level_4, LOW); // off | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0x6c); // make right wall port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0x06); // make port B pins HIGH---turn off transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_1, HIGH); // turn | |
| digitalWrite(Level_2, HIGH); // all | |
| digitalWrite(Level_3, HIGH); // cathodes | |
| digitalWrite(Level_4, HIGH); // on | |
| delay(75); | |
| digitalWrite(Level_1, LOW); // start off | |
| digitalWrite(Level_2, LOW); // with all | |
| digitalWrite(Level_3, LOW); // cathodes | |
| digitalWrite(Level_4, LOW); // off | |
| digitalWrite(Level_1, LOW); // start off | |
| digitalWrite(Level_2, LOW); // with all | |
| digitalWrite(Level_3, LOW); // cathodes | |
| digitalWrite(Level_4, LOW); // off | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0x6e); // make right wall port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0x06); // make port B pins HIGH---turn off transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_1, HIGH); // turn | |
| digitalWrite(Level_2, HIGH); // all | |
| digitalWrite(Level_3, HIGH); // cathodes | |
| digitalWrite(Level_4, HIGH); // on | |
| delay(75); | |
| digitalWrite(Level_1, LOW); // start off | |
| digitalWrite(Level_2, LOW); // with all | |
| digitalWrite(Level_3, LOW); // cathodes | |
| digitalWrite(Level_4, LOW); // off | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0x6f); // make right wall port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0x06); // make port B pins HIGH---turn off transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_1, HIGH); // turn | |
| digitalWrite(Level_2, HIGH); // all | |
| digitalWrite(Level_3, HIGH); // cathodes | |
| digitalWrite(Level_4, HIGH); // on | |
| delay(75); | |
| digitalWrite(Level_1, LOW); // start off | |
| digitalWrite(Level_2, LOW); // with all | |
| digitalWrite(Level_3, LOW); // cathodes | |
| digitalWrite(Level_4, LOW); // off | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0x7f); // make right wall port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0x06); // make port B pins HIGH---turn off transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_1, HIGH); // turn | |
| digitalWrite(Level_2, HIGH); // all | |
| digitalWrite(Level_3, HIGH); // cathodes | |
| digitalWrite(Level_4, HIGH); // on | |
| delay(75); | |
| digitalWrite(Level_1, LOW); // start off | |
| digitalWrite(Level_2, LOW); // with all | |
| digitalWrite(Level_3, LOW); // cathodes | |
| digitalWrite(Level_4, LOW); // off | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0x7f); // make right wall port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0x07); // make port B pins HIGH---turn off transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_1, HIGH); // turn | |
| digitalWrite(Level_2, HIGH); // all | |
| digitalWrite(Level_3, HIGH); // cathodes | |
| digitalWrite(Level_4, HIGH); // on | |
| delay(75); | |
| digitalWrite(Level_1, LOW); // start off | |
| digitalWrite(Level_2, LOW); // with all | |
| digitalWrite(Level_3, LOW); // cathodes | |
| digitalWrite(Level_4, LOW); // off | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0x7f); // make right wall port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0x17); // make port B pins HIGH---turn off transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_1, HIGH); // turn | |
| digitalWrite(Level_2, HIGH); // all | |
| digitalWrite(Level_3, HIGH); // cathodes | |
| digitalWrite(Level_4, HIGH); // on | |
| delay(75); | |
| digitalWrite(Level_1, LOW); // start off | |
| digitalWrite(Level_2, LOW); // with all | |
| digitalWrite(Level_3, LOW); // cathodes | |
| digitalWrite(Level_4, LOW); // off | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0x7f); // make right wall port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0x37); // make port B pins HIGH---turn off transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_1, HIGH); // turn | |
| digitalWrite(Level_2, HIGH); // all | |
| digitalWrite(Level_3, HIGH); // cathodes | |
| digitalWrite(Level_4, HIGH); // on | |
| delay(75); | |
| digitalWrite(Level_1, LOW); // start off | |
| digitalWrite(Level_2, LOW); // with all | |
| digitalWrite(Level_3, LOW); // cathodes | |
| digitalWrite(Level_4, LOW); // off | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0x7f); // make right wall port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0x77); // make port B pins HIGH---turn off transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_1, HIGH); // turn | |
| digitalWrite(Level_2, HIGH); // all | |
| digitalWrite(Level_3, HIGH); // cathodes | |
| digitalWrite(Level_4, HIGH); // on | |
| delay(75); | |
| digitalWrite(Level_1, LOW); // start off | |
| digitalWrite(Level_2, LOW); // with all | |
| digitalWrite(Level_3, LOW); // cathodes | |
| digitalWrite(Level_4, LOW); // off | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0x7f); // make right wall port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xf7); // make port B pins HIGH---turn off transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_1, HIGH); // turn | |
| digitalWrite(Level_2, HIGH); // all | |
| digitalWrite(Level_3, HIGH); // cathodes | |
| digitalWrite(Level_4, HIGH); // on | |
| delay(75); | |
| digitalWrite(Level_1, LOW); // start off | |
| digitalWrite(Level_2, LOW); // with all | |
| digitalWrite(Level_3, LOW); // cathodes | |
| digitalWrite(Level_4, LOW); // off | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0x7f); // make right wall port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xff); // make port B pins HIGH---turn off transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_1, HIGH); // turn | |
| digitalWrite(Level_2, HIGH); // all | |
| digitalWrite(Level_3, HIGH); // cathodes | |
| digitalWrite(Level_4, HIGH); // on | |
| delay(75); | |
| digitalWrite(Level_1, LOW); // start off | |
| digitalWrite(Level_2, LOW); // with all | |
| digitalWrite(Level_3, LOW); // cathodes | |
| digitalWrite(Level_4, LOW); // off | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xff); // make right wall port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xff); // make port B pins HIGH---turn off transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_1, HIGH); // turn | |
| digitalWrite(Level_2, HIGH); // all | |
| digitalWrite(Level_3, HIGH); // cathodes | |
| digitalWrite(Level_4, HIGH); // on | |
| delay(75); | |
| digitalWrite(Level_1, LOW); // start off | |
| digitalWrite(Level_2, LOW); // with all | |
| digitalWrite(Level_3, LOW); // cathodes | |
| digitalWrite(Level_4, LOW); // off | |
| } // end---wallAround | |
| void ELECTRON() { //////////////////////////////////////////////////////////////////////////////////////// ELECTRON | |
| PORTB = B0000; | |
| for(int x =1; x <= 6; x++) { | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xfe); // make right wall port A pins LOW---turn on transistors////original 0xf0 | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xff); // make port B pins HIGH---turn off transistors | |
| Wire.endTransmission(); | |
| PORTB = B0001; // turn on level one | |
| delay(electSped); | |
| PORTB = B0000; // turn off level one | |
| PORTB = B0010; // turn on level two | |
| delay(electSped); | |
| PORTB = B0000; // turn off level two | |
| PORTB = B0100; // turn on level three | |
| delay(electSped); | |
| PORTB = B0000; // turn off level three | |
| PORTB = B1000; // turn on level four | |
| delay(electSped); | |
| PORTB = B0000; // turn off level four | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xdf); // make right wall port A pins LOW---turn on transistors////original 0x0f | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xff); // make port B pins HIGH---turn off transistors | |
| Wire.endTransmission(); | |
| PORTB = B1000; // turn on level four | |
| delay(electSped); | |
| PORTB = B0000; // off | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xff); // make right wall port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xfb); // make port B pins HIGH---turn off transistors////original 0xf0 | |
| Wire.endTransmission(); | |
| PORTB = B1000; // turn on level four | |
| delay(electSped); | |
| PORTB = B0000; // off | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xff); // make right wall port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0x7f); // make port B pins HIGH---turn off transistors////original 0x0f | |
| Wire.endTransmission(); | |
| PORTB = B1000; // turn on level four | |
| delay(electSped); | |
| PORTB = B0000; // turn off level four | |
| PORTB = B0100; // turn on level three | |
| delay(electSped); | |
| PORTB = B0000; // turn off level three | |
| PORTB = B0010; // turn on level two | |
| delay(electSped); | |
| PORTB = B0000; // turn off level two | |
| PORTB = B0001; // turn on turn level one | |
| delay(electSped); | |
| PORTB = B0000; // turn off level one | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xff); // make right wall port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xfb); // make port B pins HIGH---turn off transistors////original 0xf0 | |
| Wire.endTransmission(); | |
| PORTB = B0001; // turn on level one | |
| delay(electSped); | |
| PORTB = B0000; // turn off level one | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xdf); // make right wall port A pins LOW---turn on transistors////original 0x0f | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xff); // make port B pins HIGH---turn off transistors | |
| Wire.endTransmission(); | |
| PORTB = B0001; // turn on level one | |
| delay(electSped); | |
| PORTB = B0000; // turn off level one | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xfe); // make right wall port A pins LOW---turn on transistors////original 0x0f | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xff); // make port B pins HIGH---turn off transistors | |
| Wire.endTransmission(); | |
| PORTB = B0001; //digitalWrite(Level_1, HIGH); // turn on level one | |
| delay(electSped); | |
| PORTB = B0000; // turn off level one ************************************11111111111 | |
| //////**************************** next electron ***************************22222222222 | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xff); // | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xdf); // | |
| Wire.endTransmission(); | |
| PORTB = B1000; // turn on level four | |
| delay(electSped); | |
| PORTB = B0000; // turn off level four | |
| PORTB = B0100; // turn on level three | |
| delay(electSped); | |
| PORTB = B0000; // turn off level three | |
| PORTB = B0010; // turn on level two | |
| delay(electSped); | |
| PORTB = B0000; // turn off level two | |
| PORTB = B0001; // turn on level one | |
| delay(electSped); | |
| PORTB = B0000; // turn off level one | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xff); // make right wall port A pins LOW---turn on transistors////original 0x0f | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xfd); // make port B pins HIGH---turn off transistors | |
| Wire.endTransmission(); | |
| PORTB = B0001; // turn on level one | |
| delay(electSped); | |
| PORTB = B0000; // turn off level one | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xdf); // make right wall port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xff); // make port B pins HIGH---turn off transistors////original 0xf0 | |
| Wire.endTransmission(); | |
| PORTB = B0001; // turn on level one | |
| delay(electSped); | |
| PORTB = B0000; // turn off level one | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xfd); // make right wall port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xff); // make port B pins HIGH---turn off transistors////original 0x0f | |
| Wire.endTransmission(); | |
| PORTB = B0001; // turn on level one | |
| delay(electSped); | |
| PORTB = B0000; // turn off level one | |
| PORTB = B0010; // turn on level two | |
| delay(electSped); | |
| PORTB = B0000; // turn off level two | |
| PORTB = B0100; // turn on level three | |
| delay(electSped); | |
| PORTB = B0000; // turn off level three | |
| PORTB = B1000; // turn on level four | |
| delay(electSped); | |
| PORTB = B0000; // turn off level four | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xdf); // make right wall port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xff); // make port B pins HIGH---turn off transistors////original 0xf0 | |
| Wire.endTransmission(); | |
| PORTB = B1000; // turn on level four | |
| delay(electSped); | |
| PORTB = B0000; // turn off level four | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xff); // make right wall port A pins LOW---turn on transistors////original 0x0f | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xfd); // make port B pins HIGH---turn off transistors | |
| Wire.endTransmission(); | |
| PORTB = B1000; // turn on level four | |
| delay(electSped); | |
| PORTB = B0000; // turn off level four | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xff); // make right wall port A pins LOW---turn on transistors////original 0x0f | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xdf); // make port B pins HIGH---turn off transistors | |
| Wire.endTransmission(); | |
| PORTB = B1000; // turn on level four | |
| delay(electSped); | |
| PORTB = B0000; // turn off level four***********************************************2222222 | |
| //////**************************** next electron ***************************33333333333333333 | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0x7f); // make right wall port A pins LOW---turn on transistors////original 0xf0 | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xff); // make port B pins HIGH---turn off transistors | |
| Wire.endTransmission(); | |
| PORTB = B0001; // turn on level one | |
| delay(electSped); | |
| PORTB = B0000; // turn off level one | |
| PORTB = B0010; // turn on level two | |
| delay(electSped); | |
| PORTB = B0000; // turn off level two | |
| PORTB = B0100; // turn on level three | |
| delay(electSped); | |
| PORTB = B0000; // turn off level three | |
| PORTB = B1000; // turn on level four | |
| delay(electSped); | |
| PORTB = B0000; // turn off level four | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xbf); // make right wall port A pins LOW---turn on transistors////original 0x0f | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xff); // make port B pins HIGH---turn off transistors | |
| Wire.endTransmission(); | |
| PORTB = B1000; // turn on level four | |
| delay(electSped); | |
| PORTB = B0000; // turn off level four | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xdf); // make right wall port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xff); // make port B pins HIGH---turn off transistors////original 0xf0 | |
| Wire.endTransmission(); | |
| PORTB = B1000; // turn on level four | |
| delay(electSped); | |
| PORTB = B0000; // turn off level four | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xef); // make right wall port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xff); // make port B pins HIGH---turn off transistors////original 0x0f | |
| Wire.endTransmission(); | |
| PORTB = B1000; // turn on level four | |
| delay(electSped); | |
| PORTB = B0000; // turn off level four | |
| PORTB = B0100; // turn on level three | |
| delay(electSped); | |
| PORTB = B0000; // turn off level three | |
| PORTB = B0010; // turn on level two | |
| delay(electSped); | |
| PORTB = B0000; // turn off level two | |
| PORTB = B0001; // turn on level one | |
| delay(electSped); | |
| PORTB = B0000; // turn off level one | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xdf); // make right wall port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xff); // make port B pins HIGH---turn off transistors////original 0xf0 | |
| Wire.endTransmission(); | |
| PORTB = B0001; // turn on level one | |
| delay(electSped); | |
| PORTB = B0000; // turn off level one | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xbf); // make right wall port A pins LOW---turn on transistors////original 0x0f | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xff); // make port B pins HIGH---turn off transistors | |
| Wire.endTransmission(); | |
| PORTB = B0001; // turn on level one | |
| delay(electSped); | |
| PORTB = B0000; // turn off level one | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0x7f); // make right wall port A pins LOW---turn on transistors////original 0x0f | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xff); // make port B pins HIGH---turn off transistors | |
| Wire.endTransmission(); | |
| PORTB = B0001; // turn on level one | |
| delay(electSped); | |
| PORTB = B0000; // turn off level one ****************************************************3333333333 | |
| ////**************************** next electron ********************************************444444444444 | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xff); // make right wall port A pins LOW---turn on transistors////original 0xf0 | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xef); // make port B pins HIGH---turn off transistors | |
| Wire.endTransmission(); | |
| PORTB = B1000; // turn on level four | |
| delay(electSped); | |
| PORTB = B0000; // turn off level four | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xff); // make right wall port A pins LOW---turn on transistors////original 0xf0 | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xfd); // make port B pins HIGH---turn off transistors | |
| Wire.endTransmission(); | |
| PORTB = B1000; // turn on level four | |
| delay(electSped); | |
| PORTB = B0000; // turn off level four | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xbf); // make right wall port A pins LOW---turn on transistors////original 0xf0 | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xff); // make port B pins HIGH---turn off transistors | |
| Wire.endTransmission(); | |
| PORTB = B1000; // turn on level four | |
| delay(electSped); | |
| PORTB = B0000; // turn off level four | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xf7); // make right wall port A pins LOW---turn on transistors////original 0xf0 | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xff); // make port B pins HIGH---turn off transistors | |
| Wire.endTransmission(); | |
| PORTB = B1000; // turn on level four | |
| delay(electSped); | |
| PORTB = B0000; // turn off level four | |
| PORTB = B0100; // turn on level three | |
| delay(electSped); | |
| PORTB = B0000; // turn off level three | |
| PORTB = B0010; // turn on level two | |
| delay(electSped); | |
| PORTB = B0000; // turn off level two | |
| PORTB = B0001; // turn on level one | |
| delay(electSped); | |
| PORTB = B0000; // turn off level one | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xbf); // make right wall port A pins LOW---turn on transistors////original 0x0f | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xff); // make port B pins HIGH---turn off transistors | |
| Wire.endTransmission(); | |
| PORTB = B0001; // turn on level one | |
| delay(electSped); | |
| PORTB = B0000; // turn off level one | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xff); // make right wall port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xfd); // make port B pins HIGH---turn off transistors////original 0xf0 | |
| Wire.endTransmission(); | |
| PORTB = B0001; // turn on level one | |
| delay(electSped); | |
| PORTB = B0000; // turn off level one | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xff); // make right wall port A pins LOW---turn on transistors | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xef); // make port B pins HIGH---turn off transistors////original 0x0f | |
| Wire.endTransmission(); | |
| PORTB = B0001; // turn on level one | |
| delay(electSped); | |
| PORTB = B0000; // turn off level one | |
| PORTB = B0010; // turn on level two | |
| delay(electSped); | |
| PORTB = B0000; // turn off level two | |
| PORTB = B0100; // turn on level three | |
| delay(electSped); | |
| PORTB = B0000; // turn off level three | |
| PORTB = B1000; // turn on level four | |
| delay(electSped); | |
| PORTB = B0000; // turn off level four ************************************************444444444444 | |
| ////****************************** next electron ********************************************55555555555 | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xfb); // make right wall port A pins LOW---turn on transistors////original 0xf0 | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xff); // make port B pins HIGH---turn off transistors | |
| Wire.endTransmission(); | |
| PORTB = B1000; // turn on level four | |
| delay(electSped); | |
| PORTB = B0000; // turn off level four | |
| PORTB = B0100; // turn on level three | |
| delay(electSped); | |
| PORTB = B0000; // turn off level three | |
| PORTB = B0010; // turn on level two | |
| delay(electSped); | |
| PORTB = B0000; // turn off level two | |
| PORTB = B0001; // turn on level one | |
| delay(electSped); | |
| PORTB = B0000; // turn off level one | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xbf); // make right wall port A pins LOW---turn on transistors////original 0xf0 | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xff); // make port B pins HIGH---turn off transistors | |
| Wire.endTransmission(); | |
| PORTB = B0001; // turn on level one | |
| delay(electSped); | |
| PORTB = B0000; // turn off level one | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xff); // make right wall port A pins LOW---turn on transistors////original 0xf0 | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xfb); // make port B pins HIGH---turn off transistors | |
| Wire.endTransmission(); | |
| PORTB = B0001; // turn on level one | |
| delay(electSped); | |
| PORTB = B0000; // turn off level one | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xff); // make right wall port A pins LOW---turn on transistors////original 0xf0 | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xbf); // make port B pins HIGH---turn off transistors | |
| Wire.endTransmission(); | |
| PORTB = B0001; // turn on level one | |
| delay(electSped); | |
| PORTB = B0000; // turn off level one | |
| PORTB = B0010; // turn on level two | |
| delay(electSped); | |
| PORTB = B0000; // turn off level two | |
| PORTB = B0100; // turn on level three | |
| delay(electSped); | |
| PORTB = B0000; // turn off level three | |
| PORTB = B1000; // turn on level four | |
| delay(electSped); | |
| PORTB = B0000; // turn off level four | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xff); // make right wall port A pins LOW---turn on transistors////original 0xf0 | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xfb); // make port B pins HIGH---turn off transistors | |
| Wire.endTransmission(); | |
| PORTB = B1000; // turn on level four | |
| delay(electSped); | |
| PORTB = B0000; // turn off level four | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xbf); // make right wall port A pins LOW---turn on transistors////original 0xf0 | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xff); // make port B pins HIGH---turn off transistors | |
| Wire.endTransmission(); | |
| PORTB = B1000; // turn on level four | |
| delay(electSped); | |
| PORTB = B0000; // turn off level four | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xfb); // make right wall port A pins LOW---turn on transistors////original 0xf0 | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xff); // make port B pins HIGH---turn off transistors | |
| Wire.endTransmission(); | |
| PORTB = B1000; // turn on level four | |
| delay(electSped); | |
| PORTB = B0000; // turn off level four ************************************************555555555555 | |
| ////****************************** next electron ********************************************6666666666 | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xff); // make right wall port A pins LOW---turn on transistors////original 0xf0 | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xf7); // make port B pins HIGH---turn off transistors | |
| Wire.endTransmission(); | |
| PORTB = B1000; // turn on level four | |
| delay(electSped); | |
| PORTB = B0000; // turn off level four | |
| PORTB = B0100; // turn on level three | |
| delay(electSped); | |
| PORTB = B0000; // turn off level three | |
| PORTB = B0010; // turn on level two | |
| delay(electSped); | |
| PORTB = B0000; // turn off level two | |
| PORTB = B0001; // turn on level one | |
| delay(electSped); | |
| PORTB = B0000; // turn off level one | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xff); // make right wall port A pins LOW---turn on transistors////original 0xf0 | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xfb); // make port B pins HIGH---turn off transistors | |
| Wire.endTransmission(); | |
| PORTB = B0001; // turn on level one | |
| delay(electSped); | |
| PORTB = B0000; // turn off level one | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xff); // make right wall port A pins LOW---turn on transistors////original 0xf0 | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xfd); // make port B pins HIGH---turn off transistors | |
| Wire.endTransmission(); | |
| PORTB = B0001; // turn on level one | |
| delay(electSped); | |
| PORTB = B0000; // turn off level one | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xff); // make right wall port A pins LOW---turn on transistors////original 0xf0 | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xfe); // make port B pins HIGH---turn off transistors | |
| Wire.endTransmission(); | |
| PORTB = B0001; // turn on level one | |
| delay(electSped); | |
| PORTB = B0000; // turn off level one | |
| PORTB = B0010; // turn on level two | |
| delay(electSped); | |
| PORTB = B0000; // turn off level two | |
| PORTB = B0100; // turn on level three | |
| delay(electSped); | |
| PORTB = B0000; // turn off level three | |
| PORTB = B1000; // turn on level four | |
| delay(electSped); | |
| PORTB = B0000; // turn off level four | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xff); // make right wall port A pins LOW---turn on transistors////original 0xf0 | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xfd); // make port B pins HIGH---turn off transistors | |
| Wire.endTransmission(); | |
| PORTB = B1000; // turn on level four | |
| delay(electSped); | |
| PORTB = B0000; // turn off level four | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xff); // make right wall port A pins LOW---turn on transistors////original 0xf0 | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xfb); // make port B pins HIGH---turn off transistors | |
| Wire.endTransmission(); | |
| PORTB = B1000; // turn on level four | |
| delay(electSped); | |
| PORTB = B0000; // turn off level four | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xff); // make right wall port A pins LOW---turn on transistors////original 0xf0 | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xf7); // make port B pins HIGH---turn off transistors | |
| Wire.endTransmission(); | |
| PORTB = B1000; // turn on level four | |
| delay(electSped); | |
| PORTB = B0000; // turn off level four ******************************************************************666666666666 | |
| ////***************************************next ELECRTON*******************************************************7777777777777 | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xf7); // make right wall port A pins LOW---turn on transistors////original 0xf0 | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xff); // make port B pins HIGH---turn off transistors | |
| Wire.endTransmission(); | |
| PORTB = B0001; // turn on level one | |
| delay(electSped); | |
| PORTB = B0000; // turn off level one | |
| PORTB = B0010; // turn on level two | |
| delay(electSped); | |
| PORTB = B0000; // turn off level two | |
| PORTB = B0100; // turn on level three | |
| delay(electSped); | |
| PORTB = B0000; // turn off level three | |
| PORTB = B1000; // turn on level four | |
| delay(electSped); | |
| PORTB = B0000; // turn off level four | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xfb); // make right wall port A pins LOW---turn on transistors////original 0xf0 | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xff); // make port B pins HIGH---turn off transistors | |
| Wire.endTransmission(); | |
| PORTB = B1000; // turn on level four | |
| delay(electSped); | |
| PORTB = B0000; // turn off level four | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xfd); // make right wall port A pins LOW---turn on transistors////original 0xf0 | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xff); // make port B pins HIGH---turn off transistors | |
| Wire.endTransmission(); | |
| PORTB = B1000; // turn on level four | |
| delay(electSped); | |
| PORTB = B0000; // turn off level four | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xfe); // make right wall port A pins LOW---turn on transistors////original 0xf0 | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xff); // make port B pins HIGH---turn off transistors | |
| Wire.endTransmission(); | |
| PORTB = B1000; // turn on level four | |
| delay(electSped); | |
| PORTB = B0000; // turn off level four | |
| PORTB = B0100; // turn on level three | |
| delay(electSped); | |
| PORTB = B0000; // turn off level three | |
| PORTB = B0010; // turn on level two | |
| delay(electSped); | |
| PORTB = B0000; // turn off level two | |
| PORTB = B0001; // turn on level one | |
| delay(electSped); | |
| PORTB = B0000; // turn off level one | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xfd); // make right wall port A pins LOW---turn on transistors////original 0xf0 | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xff); // make port B pins HIGH---turn off transistors | |
| Wire.endTransmission(); | |
| PORTB = B0001; // turn on level one | |
| delay(electSped); | |
| PORTB = B0000; // turn off level one | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xfb); // make right wall port A pins LOW---turn on transistors////original 0xf0 | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xff); // make port B pins HIGH---turn off transistors | |
| Wire.endTransmission(); | |
| PORTB = B0001; // turn on level one | |
| delay(electSped); | |
| PORTB = B0000; // turn off level one | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0xf7); // make right wall port A pins LOW---turn on transistors////original 0xf0 | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xff); // make port B pins HIGH---turn off transistors | |
| Wire.endTransmission(); | |
| PORTB = B0001; // turn on level one | |
| delay(electSped); | |
| PORTB = B0000; // turn off level one *******************************************************77777777777 | |
| } | |
| } //end-----Electron | |
| void squareSmallLarge() { ////////////////////////////////////////////////////////////////////////// | |
| digitalWrite(Level_1, LOW); // start off | |
| digitalWrite(Level_2, LOW); // with all | |
| digitalWrite(Level_3, LOW); // cathodes | |
| digitalWrite(Level_4, LOW); // off | |
| for(int i = 0; i < 4; i++) { | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0x60); // make right wall port A pins LOW---turn on transistors////original 0x0f | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0x06); // make port B pins HIGH---turn off transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_1, HIGH); // turn on level one | |
| digitalWrite(Level_2, HIGH); // turn on level two | |
| digitalWrite(Level_3, HIGH); // turn on level three | |
| digitalWrite(Level_4, HIGH); // turn on level four | |
| delay(500); | |
| digitalWrite(Level_1, LOW); // start off | |
| digitalWrite(Level_2, LOW); // with all | |
| digitalWrite(Level_3, LOW); // cathodes | |
| digitalWrite(Level_4, LOW); // off | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0x9f); // make right wall port A pins LOW---turn on transistors////original 0x0f | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0xf9); // make port B pins HIGH---turn off transistors | |
| Wire.endTransmission(); | |
| //digitalWrite(Level_1, HIGH); // turn on level one | |
| digitalWrite(Level_2, HIGH); // turn on level two | |
| digitalWrite(Level_3, HIGH); // turn on level three | |
| //digitalWrite(Level_4, HIGH); // turn on level four | |
| delay(500); | |
| //digitalWrite(Level_1, LOW); // start off | |
| digitalWrite(Level_2, LOW); // with all | |
| digitalWrite(Level_3, LOW); // cathodes | |
| //digitalWrite(Level_4, LOW); // off | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x12); // register address of port A output---GPIOA | |
| Wire.write(0x60); // make right wall port A pins LOW---turn on transistors////original 0x0f | |
| Wire.endTransmission(); | |
| Wire.beginTransmission(0x20); // address i/o expander | |
| Wire.write(0x13); // register address of port B output---GPIOB | |
| Wire.write(0x06); // make port B pins HIGH---turn off transistors | |
| Wire.endTransmission(); | |
| digitalWrite(Level_1, HIGH); // turn on level one | |
| digitalWrite(Level_2, HIGH); // turn on level two | |
| digitalWrite(Level_3, HIGH); // turn on level three | |
| digitalWrite(Level_4, HIGH); // turn on level four | |
| delay(500); | |
| digitalWrite(Level_1, LOW); // start off | |
| digitalWrite(Level_2, LOW); // with all | |
| digitalWrite(Level_3, LOW); // cathodes | |
| digitalWrite(Level_4, LOW); // off | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment