/* Morse Code via USB Interface 30 Arduino Projects for the Evil Genius; Page 31-35 with PushButton restart added */ int ledPin = 13; // Output to pin 13 int pbPin = 9; // connect push button to this pin void setup ( ) { pinMode (ledPin, OUTPUT); pinMode (pbPin, INPUT); // Set pbPin as a digital Input digitalWrite(pbPin, OUTPUT); //enable 20K pull-up resistor } void loop( ) { digitalWrite(ledPin, HIGH); // Turn ON LED // S (...) delay(200); digitalWrite(ledPin, LOW); // first dot delay(200); digitalWrite(ledPin, HIGH); delay(200); digitalWrite(ledPin, LOW); // second dot delay(200); digitalWrite(ledPin, HIGH); delay(200); digitalWrite(ledPin, LOW); // third dot delay(500); digitalWrite(ledPin, HIGH); // O (---) delay(500); digitalWrite(ledPin, LOW); // first dash delay(500); digitalWrite(ledPin, HIGH); delay(500); digitalWrite(ledPin, LOW); // second dash delay(500); digitalWrite(ledPin, HIGH); delay(500); digitalWrite(ledPin, LOW); // third dash delay(500); digitalWrite(ledPin, HIGH); // S (...) delay(200); digitalWrite(ledPin, LOW); // first dot delay(200); digitalWrite(ledPin, HIGH); delay(200); digitalWrite(ledPin, LOW); // second dot delay(200); digitalWrite(ledPin, HIGH); delay(200); digitalWrite(ledPin, LOW); // third dot while(true) { if(digitalRead(pbPin)==LOW) // Reads pbPin, if OFF (LOW) keeps watching it // If ON (pushed or ON) go to 1 second delay below. // If held in (ON), repeat until switch = LOW or (FF) break; // go to 1 second delay and resend message else continue; } delay(1000); // wait 1 second before we start again }