Arduino: construa tradutores Morse - como funciona
Nesta dica prática, você aprenderá como criar facilmente um tradutor Morse com seu Arduino.
Construindo tradutores Morse com o Arduino - isso é necessário
Antes de tudo, é claro, você precisa de um Arduino.
- Você também deve obter uma campainha ativa e um LED.
- Conecte a campainha ao pino 9 e o LED ao pino 13.
Arduino: programa tradutor Morse
Aqui, programamos um pequeno código de amostra para você, que você pode usar. Basta fazer o upload para o Arduino e iniciar o monitor serial.
- #define debug true
- int ledPin = 13;
- int speakerPin = 9;
- int pitch1 = 140;
- int pitch2 = 140;
- ponto int = 50;
- int traço = 3 * ponto;
- String morseATable [] = {".-", "-...", "-.-.", "- ..", ".", "..-.", "-.", ". ... ", " .. ", " .--- ", " _._ ", " .- .. ", " - ", " -. ", " --- ", " - . ", " --.- ", " .-. ", " ... ", " - ", " ..- ", " ...- ", " .-- ", " -..- ", " -.-- ", " - .. "};
- String morseNTable [] = {"-----", ".----", "..---", "...--", "....-", "... .. ", " -.... ", " --... ", " --- .. ", " ----. "};
- configuração nula () {
- pinMode (ledPin, OUTPUT);
- pinMode (speakerPin, OUTPUT);
- Serial.begin (9600);
- if (depuração) {
- Serial.println ( "\ niniciar");}
- }
- loop vazio () {
- se (verdadeiro) {
- convert2Morse (Serial.readString ());
- }
- }
- void convert2Morse (mensagem de string) {
- para (int pos = 0; pos <message.length (); pos ++) {
- if (depuração) {
- Serial.print (message.charAt (pos));
- Serial.print ("");
- }
- if ((message.charAt (pos)> = 97) && (message.charAt (pos) <= 122)) {
- morseLED (morseATable [message.charAt (pos) -97]);}
- if ((message.charAt (pos)> = 48) && (message.charAt (pos) <= 57)) {
- morseLED (tabela morse [mensagem [pos] -48]);}
- if (message.charAt (pos) == 32) {
- morseLED ("");}
- if (depuração) {
- Serial.println ();
- }
- }}
- void morseLED (sequência de strings) {
- para (int pos = 0; pos <sequence.length (); pos ++) {
- FlashLED (sequence.charAt (pos));}
- atraso (2 * ponto);
- }
- void flashLED (char dotOrDash) {
- if (depuração) {
- Serial.print (dotOrDash);}
- if (dotOrDash == 46) {
- digitalWrite (ledPin, HIGH);
- tom (speakerPin, pitch1);
- delay (ponto);
- digitalWrite (ledPin, LOW);
- noTone (speakerPin);
- delay (ponto);
- } caso contrário, se (dotOrDash == 45) {
- digitalWrite (ledPin, HIGH);
- tom (speakerPin, pitch2);
- atraso (traço);
- digitalWrite (ledPin, LOW);
- noTone (speakerPin);
- delay (ponto);
- } caso contrário, se (dotOrDash == 32) {
- delay (dot);}
- }
Na próxima dica prática, mostraremos como você pode usar um módulo GSM no Arduino.