//ENGR106 WEEK 2 LAB
//INSTRUCTOR SCHUETZ
//SEPTEMBER 28, 2023
//BY ARTURO DOMINGUEZ
#define switchPin 0 //red button
#define switchPin2 7 //blue button
//LED
#define LED_1 1 //blue led
#define LED_2 2// red led
//7 segment display led
int pinA = 13;
int pinB = 12;
int pinC = 11;
int pinD = 10;
int pinE = 9;
int pinF = 8;
int pinG = 6;
int pinDIG2 = 5;//digits
int pinDIG3 = 4;
int pinDIG4 = 3;
int t = 1000; //time 1second
;void setup() {
//Pins 1&2 LED
pinMode(LED_1, OUTPUT);
pinMode(LED_2, OUTPUT);
//Buttons
pinMode(switchPin, INPUT_PULLUP);
pinMode(switchPin2, INPUT_PULLUP);
//Digits
pinMode(pinDIG2, OUTPUT);
pinMode(pinDIG3, OUTPUT);
pinMode(pinDIG4, OUTPUT);
}
void loop() {
// Red Button switch function
static boolean oldSwitchState = digitalRead(switchPin);
boolean newSwitchState = digitalRead(switchPin);
if (newSwitchState != oldSwitchState) {
oldSwitchState = newSwitchState;
//DEV:johnwasser. Sep 2012 (https://forum.arduino.cc/t/toggle-switch-act-like-a-button/118566/2)
// 0
digitalWrite(pinA,1);
digitalWrite(pinB,1);
digitalWrite(pinC,1);
digitalWrite(pinD,1);
digitalWrite(pinE,1);
digitalWrite(pinF,1);
digitalWrite(pinG,0);
delay(t);
//1
digitalWrite(pinA,0);
digitalWrite(pinB,1);
digitalWrite(pinC,1);
digitalWrite(pinD,0);
digitalWrite(pinE,0);
digitalWrite(pinF,0);
digitalWrite(pinG,0);
delay(t);
//2
digitalWrite(pinA,1);
digitalWrite(pinB,1);
digitalWrite(pinC,0);
digitalWrite(pinD,1);
digitalWrite(pinE,1);
digitalWrite(pinF,0);
digitalWrite(pinG,1);
delay(t);
//3
digitalWrite(pinA,1);
digitalWrite(pinB,1);
digitalWrite(pinC,1);
digitalWrite(pinD,1);
digitalWrite(pinE,0);
digitalWrite(pinF,0);
digitalWrite(pinG,1);
delay(t);
//4
digitalWrite(pinA,0);
digitalWrite(pinB,1);
digitalWrite(pinC,1);
digitalWrite(pinD,0);
digitalWrite(pinE,0);
digitalWrite(pinF,1);
digitalWrite(pinG,1);
delay(t);
//5
digitalWrite(pinA,1);
digitalWrite(pinB,0);
digitalWrite(pinC,1);
digitalWrite(pinD,1);
digitalWrite(pinE,0);
digitalWrite(pinF,1);
digitalWrite(pinG,1);
delay(t);
//6
digitalWrite(pinA,1);
digitalWrite(pinB,0);
digitalWrite(pinC,1);
digitalWrite(pinD,1);
digitalWrite(pinE,1);
digitalWrite(pinF,1);
digitalWrite(pinG,1);
delay(t);
//7
digitalWrite(pinA,1);
digitalWrite(pinB,1);
digitalWrite(pinC,1);
digitalWrite(pinD,0);
digitalWrite(pinE,0);
digitalWrite(pinF,0);
digitalWrite(pinG,0);
delay(t);
//8
digitalWrite(pinA,1);
digitalWrite(pinB,1);
digitalWrite(pinC,1);
digitalWrite(pinD,1);
digitalWrite(pinE,1);
digitalWrite(pinF,1);
digitalWrite(pinG,1);
delay(t);
//9
digitalWrite(pinA,1);
digitalWrite(pinB,1);
digitalWrite(pinC,1);
digitalWrite(pinD,1);
digitalWrite(pinE,0);
digitalWrite(pinF,1);
digitalWrite(pinG,1);
delay(t);
}
//1 = HIGH
//0 = LOW
// Blue Button switch function
static boolean oldSwitchState2 = digitalRead(switchPin2);
boolean newSwitchState2 = digitalRead(switchPin2);
if (newSwitchState2 != oldSwitchState2) {
oldSwitchState2 = newSwitchState2;
//DEV:johnwasser. Sep 2012 (https://forum.arduino.cc/t/toggle-switch-act-like-a-button/118566/2)
//A
digitalWrite(LED_1, HIGH);;
delay(100); //DOT
digitalWrite(LED_1, LOW);
delay(1000); //OFF
digitalWrite(LED_1, HIGH);
delay(1000); //DASH
digitalWrite(LED_1, LOW);
delay(1000); //OFF
//R
digitalWrite(LED_2, HIGH);
delay(100); //DOT
digitalWrite(LED_2, LOW);
delay(1000); //OFF
digitalWrite(LED_2, HIGH);
delay(1000); //DASH
digitalWrite(LED_2, LOW);
delay(1000); //OFF
digitalWrite(LED_2, HIGH);
delay(100); //DOT
digitalWrite(LED_2, LOW);
delay(1000); //OFF
//T
digitalWrite(LED_1, HIGH);
delay(1000); //DASH
digitalWrite(LED_1, LOW);
delay(1000); //OFF
//U
digitalWrite(LED_2, HIGH);
delay(100); //DOT
digitalWrite(LED_2, LOW);
delay(1000); //OFF
digitalWrite(LED_2, HIGH);
delay(100); //DOT
digitalWrite(LED_2, LOW);
delay(1000); //OFF
digitalWrite(LED_2, HIGH);
delay(1000); //DASH
digitalWrite(LED_2, LOW);
delay(1000); //OFF}
//R
digitalWrite(LED_1, HIGH);
delay(100); //DOT
digitalWrite(LED_1, LOW);
delay(1000); //OFF
digitalWrite(LED_1, HIGH);
delay(1000); //DASH
digitalWrite(LED_1, LOW);
delay(1000); //OFF
digitalWrite(LED_1, HIGH);
delay(100); //DOT
digitalWrite(LED_1, LOW);
delay(1000); //OFF
//O
digitalWrite(LED_2, HIGH);
delay(1000); //DASH
digitalWrite(LED_2, LOW);
delay(1000); //OFF
digitalWrite(LED_2, HIGH);
delay(1000); //DASH
digitalWrite(LED_2, LOW);
delay(1000); //OFF
digitalWrite(LED_2, HIGH);
delay(1000); //DASH
digitalWrite(LED_2, LOW);
delay(1000); //OFF
}
}
// NOTES
//BLUE BUTTON DOES MORSE CODE
//RED BUTTON COUNTS ALL DIGITS 1 TO 9 :[
//ONE FUNCTION AT A TIME. WAIT FOR ONE TO FINSIH BEFORE PRESSING OTHER.
//MORSE CODE HOPS FROM BLUE TO RED LED BULB
//MORSE CODE NAME: A).- R).-. T)- U)..- R).-. O)---
//BLUE LED {A,T,R}
//RED LED {R,U,O}
//BINARY COUNTING
//0) 0000
//1) 0001
//2) 0010
//3) 0011
//4) 0100
//5) 0101
//6) 0110
//7) 0111
//8) 1000
//9) 1001
//10) 1010
//CANT FIGURE OUT HOW TO ASSIGN EACH DIGIT ITS OWN FUNCTION ON THE SEGMENT DISPLAY