This is the SOS.ino
int dot = 500;
int dash = dot * 3;
void setup() {
// initialize digital pin LED_BUILTIN as an output.
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
morseS();
morseO();
morseS();
}
void morseS() {
digitalWrite(LED_BUILTIN, HIGH);
delay(dot);
digitalWrite(LED_BUILTIN, LOW);
delay(dot);
digitalWrite(LED_BUILTIN, HIGH);
delay(dot);
digitalWrite(LED_BUILTIN, LOW);
delay(dot);
digitalWrite(LED_BUILTIN, HIGH);
delay(dot);
digitalWrite(LED_BUILTIN, LOW);
delay(dash);
}
void morseO() {
digitalWrite(LED_BUILTIN, HIGH);
delay(dash);
digitalWrite(LED_BUILTIN, LOW);
delay(dot);
digitalWrite(LED_BUILTIN, HIGH);
delay(dash);
digitalWrite(LED_BUILTIN, LOW);
delay(dot);
digitalWrite(LED_BUILTIN, HIGH);
delay(dash);
digitalWrite(LED_BUILTIN, LOW);
delay(dash);
}
This is the Push_Button_Latched_Switch.ino
#define buttonPin 2
int ledState = LOW;
int lastButtonState = LOW;
int buttonState = LOW;
void setup() {
// put your setup code here, to run once:
pinMode(LED_BUILTIN, OUTPUT);
pinMode(buttonPin, INPUT);
digitalWrite(LED_BUILTIN, ledState);
}
void loop() {
// put your main code here, to run repeatedly:
buttonState = digitalRead(buttonPin);
if (buttonState == HIGH && lastButtonState == LOW)
{
ledState = !ledState;
}
lastButtonState = buttonState;
digitalWrite(LED_BUILTIN, ledState);
delay(3);
}
This is my attempt Both work fine seperately however me combining them is where the problem comes in
#define buttonPin 2
int ledState = LOW;
int lastButtonState = LOW;
int buttonState = LOW;
int dot = 100;
int dash = dot * 3;
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
pinMode(buttonPin, INPUT);
digitalWrite(LED_BUILTIN, ledState);
}
void loop() {
buttonState = digitalRead(buttonPin);
if (buttonState == HIGH && lastButtonState == LOW)
{
ledState = !ledState;
SOS();
}
lastButtonState = buttonState;
delay(3);
}
void SOS() {
morseS();
morseO();
morseS();
}
void morseS() {
digitalWrite(LED_BUILTIN, HIGH);
delay(dot);
digitalWrite(LED_BUILTIN, LOW);
delay(dot);
digitalWrite(LED_BUILTIN, HIGH);
delay(dot);
digitalWrite(LED_BUILTIN, LOW);
delay(dot);
digitalWrite(LED_BUILTIN, HIGH);
delay(dot);
digitalWrite(LED_BUILTIN, LOW);
delay(dash);
}
void morseO() {
digitalWrite(LED_BUILTIN, HIGH);
delay(dash);
digitalWrite(LED_BUILTIN, LOW);
delay(dot);
digitalWrite(LED_BUILTIN, HIGH);
delay(dash);
digitalWrite(LED_BUILTIN, LOW);
delay(dot);
digitalWrite(LED_BUILTIN, HIGH);
delay(dash);
digitalWrite(LED_BUILTIN, LOW);
delay(dash);
}