Com o pixie deu vontade de aprender morse, mas como demora demasiado tempo, tive de arranjar uma solução enquanto não aprendo.
A solução passou pelo desenvolvimento do Morser, um pequeno projecto em Arduino que codifica em morse os que entra pela porta série do Arduino.
Material:
- Arduino Mega
- Modulo de Relé para Arduino.
- Bateria
- Pixie
- Antena cana de pesca.
- PC com programa terminal serie.
O Código para o arduino está no fundo desta página.
A antena foi ‘afinada’ para os 40m de uma forma muito tosca.
O Setup :
Testando com a mensagem :
“CQ CQ CQ CR7AWB operating ***** CQ CQ CQ CR7AWB operating ***** CQCQCQ” – Coloquei asteriscos pois não quero identificar o supervisor sem permissão.
E Funcionou ????
SIM !!! No reverse beacon os meus 0.4 W foram ouvidos na Austria.
Por fim, o pixie, não deve ser alimentado com 12v pois no fim de minutos ele queimou…
Seja como for, morreu de forma gloriosa !
Codigo fonte para o arduino morser:
int ledPin = 13;
int ltime = 120;
int stime=40;
void keyer(String letra){
size_t i = 0;
while (letra[i] != '\0') {
Serial.print(letra[i]);
//printf("%c", letra[i]);
digitalWrite(ledPin, LOW);
if (letra[i] == '-'){
digitalWrite(ledPin, HIGH);
delay(ltime);
digitalWrite(ledPin, LOW);
delay(stime);
}
if (letra[i] == '.'){
digitalWrite(ledPin, HIGH);
delay(stime);
digitalWrite(ledPin, LOW);
delay(stime);
}
if (letra[i] == '/'){
Serial.println(' ');
digitalWrite(ledPin, LOW);
delay(ltime);
}
i++;
}
Serial.print(' ');
delay(ltime);
}
int morse(char letra){
switch (letra){
case 'a':
keyer(".-");
break;
case 'b':
keyer("-...");
break;
case 'c':
keyer("-.-.");
break;
case 'd':
keyer("-..");
break;
case 'e':
keyer(".");
break;
case 'f':
keyer("..-.");
break;
case 'g':
keyer("--.");
break;
case 'h':
keyer("....");
break;
case 'i':
keyer("..");
break;
case 'j':
keyer(".---");
break;
case 'k':
keyer("-.-");
break;
case 'l':
keyer(".-..");
break;
case 'm':
keyer("--");
break;
case 'n':
keyer("-.");
break;
case 'o':
keyer("---");
break;
case 'p':
keyer(".--.");
break;
case 'q':
keyer("--.-");
break;
case 'r':
keyer(".-.");
break;
case 's':
keyer("...");
break;
case 't':
keyer("-");
break;
case 'u':
keyer(".--");
break;
case 'v':
keyer("...-");
break;
case 'w':
keyer(".--");
break;
case 'x':
keyer("-..-");
break;
case 'y':
keyer("-.--");
break;
case 'z':
keyer("--..");
break;
case '1':
keyer(".----");
break;
case '2':
keyer("..---");
break;
case '3':
keyer("...--");
break;
case '4':
keyer("....-");
break;
case '5':
keyer(".....");
break;
case '6':
keyer("-....");
break;
case '7':
keyer("--...");
break;
case '8':
keyer("---..");
break;
case '9':
keyer("----.");
break;
case '0':
keyer("-----");
break;
case '/':
keyer("/");
break;
default:
keyer("");
}
//Serial.println( '\n>>>');
return 0;
}
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(ledPin, OUTPUT);
Serial.print("Relay in pin ");
Serial.println(ledPin);
Serial.println("Ay Ay Es el muy poderoso morser !!");
}
void loop() {
String letra = Serial.readString();
size_t i = 0;
i=0;
while (letra[i] != '\0') {
morse(letra[i]);
i++;
}
}