diff options
Diffstat (limited to 'uino/morse/morse.pde')
-rw-r--r-- | uino/morse/morse.pde | 164 |
1 files changed, 0 insertions, 164 deletions
diff --git a/uino/morse/morse.pde b/uino/morse/morse.pde deleted file mode 100644 index 685f5092..00000000 --- a/uino/morse/morse.pde +++ /dev/null @@ -1,164 +0,0 @@ -#include <SoftwareSerial.h> - -/* - Implementes the Morse algorithm for a simple speaker - - @author Felix - @date 07.05.2011 - */ -int inByte = 0; -int i = 0; -int j = 0; -int char_avail = 0; - -/* You can touch this: */ -#define DIT_DELAY 50 - - -/* But you cannot touch this: */ -#define WORD_DELAY (DIT_DELAY * 7) -#define DIT_CYCLES (DIT_DELAY/2) -#define CHAR_DELAY (DIT_DELAY * 3) - -#define dsym() delay(DIT_DELAY); -#define char_delay() delay(CHAR_DELAY); -#define word_delay() delay(WORD_DELAY); - - -static char* latin_upper[] = { - ". -\0" , /* A */ - "- . . .\0" - "- . . .\0", - "- . - .\0", - "- . .\0", - ".\0", - ". . - .\0", - "- - .\0", - ". . . .\0", - ". .\0", - ". - - -\0", - "- . -\0", - ". - . .\0", - "- -\0", - "- .\0", - "- - -\0", - ". - - .\0", - "- - . -\0", - ". - .\0", - ". . .\0", - "-\0", - ". . -\0", - ". . . -\0", - ". - -\0", - "- . . -\0", - "- . - -\0", - "- - . .\0" /* Z */ -}; -static char* numbers[] = { - "- - - - -\0", /* 0 */ - ". - - - -\0", - ". . - - -\0", - ". . . - -\0", - ". . . . -\0", - ". . . . .\0", - "- . . . .\0", - "- - . . .\0", - "- - - . .\0", - "- - - - .\0" /* 9 */ -}; - -void setup() { - // initialize the digital pin as an output. - // Pin 13 has an LED connected on most Arduino boards: - pinMode(13, OUTPUT); - Serial.begin(9600); -} - - - -void loop() { - char_avail = Serial.available(); - - if(char_avail > 0) { - for (j = 0; j < char_avail;j++) - { - char on_line = Serial.read(); - to_beep(on_line); - char_delay(); - } - } -} - -void to_beep(char data) -{ - char* mdata; - if (data == ' ') - { - word_delay(); - Serial.println("word end"); - return; - } - else{ - if (data == '\n') { - word_delay(); - Serial.println("EOL"); - return; - } else - if (data >= 'A' && data <= 'Z' ) - mdata = latin_upper[data-'A']; - else - if (data >= 'a' && data <= 'z' ) - mdata = latin_upper[data-'a']; - else - if (data >= '0' && data <= '9') - mdata = numbers[data-'0']; - else - { - Serial.print(data); - Serial.println(": not implemented"); - return; - } - } - - Serial.println(mdata); - int sdata = strlen( mdata); - for( char i = 0; i < sdata; i ++) - { - - char token = mdata[i]; - if (token == '.') - { - dit(); - } - if (token == '-') - { - dah(); - } - if (token == ' ') - { - dsym(); - } - - } - -} -void dah() { - for (int i=0;i<3;i++) - { - dit(); - } -} - -void dit(){ - - for (int i=0;i<DIT_CYCLES;i++) // Number of DIT Cycles , sleep 2 milliseconds in a cycle - { - digitalWrite(13, HIGH); // set the LED on - delay(1); - - digitalWrite(13, LOW); // set the LED off - delay(1); - } -} - - |