Scan for the character to send in the Morse table Serial.println(" Unrecognized command 'Z') encodeMorseChar -= 'z'-'Z' Serial.println(" > Echo: on Echo: off Morse speed (wpm):") Expects (and wait for) 2 or 4 characters (>i or Audio threshold:") An extremely crude and simple command parser if a command instead, adjust some settings If (Serial.available() > 0 & !sendingMorse) Part #2: // Encode Morse code or execute commands If (!sendingMorse & morseEcho) digitalWrite(morseOutPin, morseSignalState) Morse output, or a feedback when keying. MorseSignalState = false // No more signal SpaceTime = lastDebounceTime // not too far off from last received audio If (currentTime - lastDebounceTime > dotTime/2 & morseSignalState = true) if this is a new pause, reset space time MorseSignalState = true // there is currently a signal If (currentTime - lastDebounceTime > dotTime/2) If this is a new morse signal, reset morse signal timer If (!morseKeyer & millis() - lastDebounceTime > 1000) listeningAudio = true If no manual morse keying the last second, enter audio listen mode If (morseSignalState) markTime = lastDebounceTime else spaceTime = lastDebounceTime than the debounce delay, so take it as the actual current state: whatever the reading is at, it's been there for longer Set high enough to avoid noise, low enough to get signal Simple analog input signal threshold (512 = middle-ish) Make functions or classes out of it sometime. TODO: Make the timings signed long again, to avoid rollover issue Thus using the same Morse table / binary tree for encoding and decoding.Ģ010.11.28 - Added a simple audio Morse signal filter. Using a binary tree (dichotomic table) for Morse decodingĢ010.11.27 - Added Morse encoding via reverse-dichotomic path tracing. Only International Morse Code (letters A-Z, numbers), and space, areĮncoded and sent as Morse code automatically unless whatever the "command"ġ992.01.06 - Morse decoder 3.5 - 68000 Assembler version for the Amiga 600 It will enter audio listen mode if nothing is keyed in within a second. ASCII text via serial communication (for decoded Morse). Morse-code toggled output pin (for encoded Morse). ASCII text via serial communication (for encoding. Morse keying on digital input (for decoding). Audio Morse signals on an analog input (for decoding). A Morse encoder / decoder for the Arduino.ģ input methods for decoding and encoding: My camera aiming is a bit off though, and the video editing isn't the best either.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |