Working Code - RubeGoldberg/22.201-802-ChrisPeterEddie GitHub Wiki

#include <LiquidCrystal.h> #include <Servo.h>

LiquidCrystal lcd(5,4,3,2,1,0); // Intializing the LCD screen's pin connection

const int ledPin13 = 13; // Intializing each LED's pin connection const int ledPin12 = 12;
const int ledPin11 = 11;
const int ledPin10 = 10;

int loopCounter = 0; // Intializing a loop counter int Mode = 0; // Intializing the mode of each sub-system int switchPin9 = 9; // Intializing switch pin values int switchPin8 = 8; int switchPin7 = 7; int switchPin6 = 6; int buttonState1; // Intializing the button's state int buttonState2;
int buttonState3;
int buttonState4;
int value1; // Intializing debounce values int value2; int value3; int value4; int value5; int value6; int value7; int value8;

void setup() {

buttonState1 = digitalRead(switchPin9); // Reads the swithch pins buttonState2 = digitalRead(switchPin8);
buttonState3 = digitalRead(switchPin7);
buttonState4 = digitalRead(switchPin6);

pinMode(switchPin9, INPUT); // Set the switch pins as input pinMode(switchPin8, INPUT);
pinMode(switchPin7, INPUT);
pinMode(switchPin6, INPUT);
pinMode(ledPin13, OUTPUT); // LEDs are set as output pinMode(ledPin12, OUTPUT); pinMode(ledPin11, OUTPUT); pinMode(ledPin10, OUTPUT);

lcd.begin(16,2); lcd.clear();

Serial.begin(9600); }

void loop(){

value1 = digitalRead(switchPin9); // Read input value and store it delay(10); // 10 milliseconds delay value2 = digitalRead(switchPin9); // Reads the input again to check for bounces if (value1 == value2) { // Make sure intial readings are consistant if (value1 != buttonState1) { // The button's state changed if (value1 == LOW) { // Check if button is pressed, then flip mode after use if (Mode == 0) {
Mode = 1;
} else {
Mode = Mode;
}
} } buttonState1 = value1; // Saves the new state of the variable } value3 = digitalRead(switchPin8); // Read input value and store it delay(10); // 10 milliseconds delay value4 = digitalRead(switchPin8); // Reads the input again to check for bounces if (value3 == value4) { // Make sure intial readings are consistant if (value3 != buttonState2) { // The button's state changed if (value3 == LOW) { // Check if button is pressed, then flip mode after use if (Mode == 1) {
Mode = 2;
} else {
Mode = Mode;
} } } buttonState2 = value3; // Saves the new state in our variable } value5 = digitalRead(switchPin7); // Read input value and store it delay(10); // 10 milliseconds delay value6 = digitalRead(switchPin7); // Reads the input again to check for bounces if (value5 == value6) { // Make sure intial readings are consistant if (value5 != buttonState3) { // The button's state changed if (value5 == LOW) { // Check if button is pressed, then flip mode after use if (Mode == 2) {
Mode = 3;
} else {
Mode = Mode;
} } }
buttonState3 = value5; // Saves the new state of the variable } value7 = digitalRead(switchPin6); // Read input value and store it delay(10); // 10 milliseconds delay value8 = digitalRead(switchPin6); // Reads the input again to check for bounces if (value7 == value8) { // Make sure intial readings are consistant if (value7 != buttonState4) { // The button's state changed if (value7 == LOW) { // Check if button is pressed, then flip mode after use if (Mode == 3) { loopCounter++; // Adds to loop counter when mode is 0 Mode = 0;
} else {
loopCounter++; // Adds to loop counter when mode is 1
Mode = Mode;
} } } buttonState4 = value7; // Saves the new state of the variable Serial.print("Number of Loops : "); // Prints phrase to screen Serial.println(loopCounter); // Prints number of loops to LCD screen
}

// save the current state as the last state for next time through the loop // Lights turn on and off based on the mode indicated if (Mode == 0) { digitalWrite(ledPin13, LOW); digitalWrite(ledPin12, HIGH); digitalWrite(ledPin11, HIGH); digitalWrite(ledPin10, HIGH); } if (Mode == 1) { digitalWrite(ledPin13, HIGH); digitalWrite(ledPin12, LOW); digitalWrite(ledPin11, HIGH); digitalWrite(ledPin10, HIGH); } if (Mode == 2) { digitalWrite(ledPin13, HIGH); digitalWrite(ledPin12, HIGH); digitalWrite(ledPin11, LOW); digitalWrite(ledPin10, HIGH); } if (Mode == 3) { digitalWrite(ledPin13, HIGH); digitalWrite(ledPin12, HIGH); digitalWrite(ledPin11, HIGH); digitalWrite(ledPin10, LOW); } }

⚠️ **GitHub.com Fallback** ⚠️