The second assignment was to expand our initial analogue switch and make a program in Arduino that combines more digital inputs and outputs.
Since I kind of needed the shoes used in last week’s switch, I used the very same principle and applied it on a glove that somehow found a way to my suitcase after winter break.
I constructed one aluminium board which was connected to power, while middle finger was programmed as a switch to light the yellow LED up when connected, index finger made the same with the red LED and thumb was programmed to act as a legit switch that turns both LEDs on, or off.
//blinking
int ledYellow = 3;
int ledRed = 4;
int MiddleButtonPin = 2;
int MiddleButtonState = LOW;
int IndexButtonPin = 5;
int IndexButtonState = LOW;
//Thumb switch
int ThumbButtonPin = 6;
int ledYellowState = LOW;
int ledRedState = LOW;
int prevThumbButtonState = LOW;
void setup() {
// put your setup code here, to run once:
pinMode(ledYellow, OUTPUT);
pinMode(ledRed, OUTPUT);
pinMode(MiddleButtonPin, INPUT);
pinMode(IndexButtonPin, INPUT);
pinMode(ThumbButtonPin, INPUT);
Serial.begin(9600);
}
void loop() {
// put your main code here, to run repeatedly:
//THUMB BUTTON SWITCH ON AND OFF
int currentThumbButtonState = digitalRead(ThumbButtonPin);
if (currentThumbButtonState == HIGH && prevThumbButtonState == LOW) {
if (ledYellowState == HIGH){
ledYellowState = LOW;
} else if (ledYellowState == LOW) {
ledYellowState = HIGH;
}
}
if (currentThumbButtonState == HIGH && prevThumbButtonState == LOW) {
if (ledRedState == HIGH){
ledRedState = LOW;
} else if (ledRedState == LOW) {
ledRedState = HIGH;
}
}
digitalWrite(ledYellow, ledYellowState);
digitalWrite(ledRed, ledRedState);
prevThumbButtonState = currentThumbButtonState;
//MIDDLEFINGER WITH YELLOW LIGHT INTERACTION
MiddleButtonState = digitalRead(MiddleButtonPin);
if (MiddleButtonState == HIGH) {
digitalWrite(ledYellow, HIGH);
} else {
digitalWrite(ledYellow, LOW);
}
//INDEX FINGER WITH RED LIGHT INTERACTION
IndexButtonState = digitalRead(IndexButtonPin);
if (IndexButtonState == HIGH) {
digitalWrite(ledRed, HIGH);
} else {
digitalWrite(ledRed, LOW);
}
}