Код Морзе - это система связи для кодирования любого символа двумя сигналами разной длительности, называемыми точками и тире . Код Морзе разработан Сэмюэлем Ф.Б. и в дальнейшем используется в телеграфии для передачи секретной информации. Наиболее часто он использовался во время Второй мировой войны. Код Морзе может быть выполнен нажатием, миганием или письмом. Азбука Морзе доступна в двух версиях: оригинальной и международной. В международной азбуке Морзе исходная версия изменена путем удаления пробелов и создания тире определенной длины. Код Морзе доступен для кодирования алфавитов и чисел. Он в основном используется для радиосвязи и связи с океаном, а также как часть обучения солдат.
Язык всегда был препятствием для кода Морзе, так как код для диакритических знаков на другом языке сложно выполнить. Есть несколько известных слов, которые считаются важной особенностью кода Морзе, например «SOS». Полная форма SOS - Спасите наши души, созданная как универсальный сигнал бедствия, представляет опасность.
На изображении ниже показан код Морзе для алфавитов от A до Z.
Сегодня в этом уроке мы создадим переводчик кода Морзе с использованием Arduino, который будет принимать любой символ в качестве входных данных с последовательного монитора и преобразовывать его в звуковые сигналы, эквивалентные азбуке Морзе.
Необходимые компоненты
- Ардуино Уно
- Зуммер
- Макетная плата
- Перемычки
Принципиальная электрическая схема
Подключите положительный вывод зуммера к 8- му выводу Arudino UNO, а отрицательный вывод к заземлению Arduino. Загрузите код с помощью Arduino IDE и введите символы на последовательном мониторе, чтобы создать звук. ЖК-дисплей также может быть добавлен с Arduino для отображения тире и точек.
Объяснение программирования
Полный код для генератора кода Морзе Arduino приведен в конце, здесь мы объясняем программу, чтобы понять работу проекта.
Приведенный ниже код используется для получения символьной строки и последующего преобразования ее в код Морзе.
char stringToMorseCode = "";
Затем определите контакт для зуммера, подключенного к Arduino, и высоту звука, генерируемого этим зуммером. Затем мы определяем длину точки и тире.
int audio8 = 8; // вывод звука на вывод 8 int note = 1200; // музыкальная нота / высота звука int dotLen = 100; // длина точки 'точки' кода Морзе int dashLen = dotLen * 3; // длина морзе 'тире'
В функции void loop () , если доступны последовательные данные, они сохраняются в переменную indata . Затем он считывает символы один за другим, используя команду inData . Команда variable.toUppercase () используется для преобразования символов нижнего регистра в верхний регистр. Затем он создает звук в соответствии с каждым персонажем.
void loop () { char inChar = 0; char inData = ""; // длина данных 6 символов String variable = ""; Строковая переменная1 = ""; int index1 = 0; если (Serial.available ()> 0) { while (Serial.available ()> 0 && index1 <100) { задержка (100); inChar = Serial.read (); inData = inChar; index1 ++; inData = '\ 0'; } variable.toUpperCase (); for (байт я = 0; я <100; я ++) { переменная.concat (строка (inData)); } задержка (20);
Ниже функции MorseDot и MorseDash используются для создания звука для точки и тире соответственно.
void MorseDot () { тон (audio8, note, dotLen); // запускаем воспроизведение тона задержки (dotLen); // удерживаем в этом положении } void MorseDash () { tone (audio8, note, dashLen); // начинаем проигрывать задержку тона (dashLen); // удерживаем в этом положении }
Функция GetChar имеет код для всех алфавитов. Итак, всякий раз, когда мы вводим какой-либо алфавит, из этой функции берется соответствующий код Морзе для создания определенного звука.
void GetChar (char tmpChar) { переключатель (tmpChar) { case 'a': MorseDot (); задержка (100); MorseDash (); задержка (100); сломать; ... ... … по умолчанию: перерыв; } }
Теперь загрузите код в Arduino с помощью Arduino IDE, введите любой символ в последовательный монитор и нажмите кнопку ввода, чтобы отправить символы в Arduino.
Здесь мы ввели «SOS», который является универсальным сигналом бедствия, чтобы создать для него звук.
Демонстрация того же приведена на видео ниже.