Traductor de Código Morse
En
este proyecto se creará un traductor de texto a código Morse en
Arduino usando un led y un buzzer en el hardware y arrays (matrices),
strings (cadenas) y Monitor Serial en el software.
Componentes
-
1 Placa Arduino UNO
-
2 LEDs rojos de 5mm
-
1 Buzzer
-
1 Resistencia 270 Ω
Montaje
Código
//
Declaración de Pines (Led y Buzzer)
int
ledpin = 13;
const
int buzzer = 9;
//
Declaración de matrices según el alfabeto morse.
char*
letras [] = {
".-",
"-...","-.-." , "-..", ".",
"..-.", "--.", "....", "..",
".---","-.-",".-..","--","-.","---",".--.","--.-",".-.",
"...","-","..-","...-",".--","-..-","-.--","--.."
};
char*
numeros [] = { "-----", ".----", "..---",
"...--", "....-",".....", "-...."
"--...",
"---..", "----."};
//
Declaración del tiempo de duración de un punto, del cual salen los
demás tiempos.
int
delaypunto = 200;
//
Void Setup
//
Pines buzzer y leds como salida e inicio de comunicación Serial
void
setup () {
pinMode
(buzzer, OUTPUT);
pinMode
(ledpin, OUTPUT);
Serial.begin
(9600); }
//
Void Loop
void
loop () {
char
ch; // Variable que "leerá" los mensajes enviados
if
(Serial.available()) {
ch
= Serial.read();
if
(ch >= 'a' && ch <= 'z') {
secuenciaFlash(letras[ch
- 'a']);//Recorrido de 'letras'
}
else
if (ch >= 'A' && ch <= 'Z') {// Recorrido de 'letras'
secuenciaFlash(letras[ch
- 'A']);
}
else
if (ch >= '0' && ch <= '9') {// Recorrido de 'números'
secuenciaFlash(numeros[ch
- '0']);
}
else
if (ch == ' ') {// Retraso entre espacios
delay(delaypunto
* 4);
}
}
}
//
Void SecuenciaFlash
void
secuenciaFlash(char* secuencia) { //Realización de destellos en
forma de puntos o rayas
int
i = 0;
while(secuencia[i]
!= NULL)
{
parpadeo(secuencia[i]);
//Parpadeo del led
i++;
}
delay(delaypunto
*3);
}
//
Void Parpadeo
void
parpadeo(char PuntoORaya) {
digitalWrite(ledpin,
HIGH); //Encendido del led
tone
(buzzer, 500); //Encendido del buzzer
if
(PuntoORaya == '.') {
delay(delaypunto);//Retraso
de punto
}
else
{
delay(delaypunto
* 3); } //Retraso de raya
digitalWrite(ledpin,LOW);//Apagado
de led
noTone
(buzzer); } //Apagado buzzer
//
Fin del Código

No hay comentarios.:
Publicar un comentario