Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const int buzzerPin = 12;
- const int ledPin = 13;
- const int unitDuration = 200; // Base time unit in milliseconds
- String words[] = {"MOE", "MOI", "MOS", "MOH", "MO5"};
- void setup() {
- pinMode(buzzerPin, OUTPUT);
- pinMode(ledPin, OUTPUT);
- }
- void loop() {
- for (int i = 0; i < 5; i++) {
- unsigned long startTime = millis();
- while (millis() - startTime < 60000) { // Run for 1 minute
- transmitWord(words[i]);
- }
- }
- }
- void transmitWord(String word) {
- for (int i = 0; i < word.length(); i++) {
- char character = word.charAt(i);
- morseSymbol(character);
- if (i < word.length() - 1) delay(unitDuration * 3); // Inter-letter space
- }
- delay(unitDuration * 7); // Inter-word space
- }
- void morseSymbol(char c) {
- String morseCode = getMorseCode(c);
- for (int i = 0; i < morseCode.length(); i++) {
- digitalWrite(buzzerPin, HIGH);
- digitalWrite(ledPin, HIGH);
- int duration = (morseCode[i] == '.') ? unitDuration : unitDuration * 3;
- delay(duration);
- digitalWrite(buzzerPin, LOW);
- digitalWrite(ledPin, LOW);
- if (i < morseCode.length() - 1) delay(unitDuration); // Inter-symbol space
- }
- }
- String getMorseCode(char c) {
- switch (toupper(c)) {
- case 'M': return "--";
- case 'O': return "---";
- case 'E': return ".";
- case 'I': return "..";
- case 'S': return "...";
- case 'H': return "....";
- case '5': return ".....";
- default: return "";
- }
- }
Advertisement
Comments
-
- Code for basic training in Radio Orienteering sport, Fox hunting, for ARDUINO UNO or NANO transmitting basic morse MOE, MOI, MOS, MOH, MO5.
Add Comment
Please, Sign In to add comment
Advertisement