Морзовата азбука е система за комуникация за кодиране на всеки символ в две различни продължителности на сигналите, наречени точки и тирета . Морзовата азбука е разработена от Самюел FB и по-нататък се използва в телеграфията за предаване на секретна информация. Най-често се използва по времето на Втората световна война. Морзов код може да бъде изпълнен чрез потупване, мигаща светлина или писане. Морзовата азбука се предлага в две версии, оригиналната и международната морзова азбука. В международния морзов код оригиналната версия е модифицирана чрез премахване на интервали и проектиране на тиретата в определена дължина. Морзовият код е достъпен за кодиране на азбуки и цифри. Използва се главно в радио и океанската комуникация, а също така е част от обучението на войници.
Езикът винаги е бил бариерата пред морзовата азбука, тъй като е трудно да се изпълни кода за диакритични знаци на друг език. Има някои известни думи, считани за важна характеристика на морзовата азбука като „SOS“. Пълната форма на SOS е Save our Souls, създадена като универсален сигнал за бедствие представлява опасност.
Изображението по-долу показва морзовата азбука за азбуките от А до Я.
Днес в този урок ще изградим Morse Code Translator, използвайки Arduino, който ще вземе всеки символ като вход от сериен монитор и ще го преобразува в еквивалентни звукови сигнали на Morse чрез зумер.
Необходими компоненти
- Arduino Uno
- Звънец
- Макет
- Джъмперни проводници
Електрическа схема
Свържете положителния щифт на зумера към 8 -ия щифт на Arudino UNO и отрицателния щифт към земята на Arduino. Качете кода с помощта на Arduino IDE и въведете символите на серийния монитор, за да създадете звука. Към Arduino може да се добави и LCD дисплей, който да показва тирето и точките.
Обяснение на програмирането
Пълният код за Arduino Morse Code Generator е даден в края, тук обясняваме програмата, за да разберем работата на проекта.
Кодът по-долу се използва за получаване на символен низ и след това го конвертира в морзов код.
char stringToMorseCode = "";
След това дефинирайте пина за зумера, свързан към Arduino и височината на звука, генериран от този зумер. След това определяме дължината на точка и тире.
int audio8 = 8; // извеждане на звук на щифт 8 int note = 1200; // музикална нота / височина int dotLen = 100; // дължина на морзовата азбука 'точка' int dashLen = dotLen * 3; // дължина на морзовата азбука 'тире'
Във функцията void loop () , ако са налични серийни данни, те ще се запишат в променливи данни . След това чете символа един по един с помощта на команда inData . Командната променлива.toUppercase () се използва за промяна на малките букви в главни. След това създава звук според всеки герой.
цикъл void () { char inChar = 0; char inData = ""; // дължина на данните от 6 символа String променлива = ""; Низ променлива1 = ""; индекс1 = 0; if (Serial.available ()> 0) { while (Serial.available ()> 0 && index1 <100) { delay (100); inChar = Serial.read (); inData = inChar; индекс1 ++; inData = '\ 0'; } променлива.toUpperCase (); за (байт i = 0; i <100; i ++) { променлива.concat (String (inData)); } забавяне (20);
Функциите по-долу MorseDot и MorseDash се използват за създаване на звука съответно за точка и тире.
void MorseDot () { тон (аудио8, бележка, dotLen); // започване на възпроизвеждане на забавяне на тона (dotLen); // задръжте в тази позиция } void MorseDash () { tone (audio8, note, dashLen); // започване на възпроизвеждане на забавяне на тона (dashLen); // задръжте в тази позиция }
Функцията GetChar има кода за всички азбуки. Така че, всеки път, когато въведем някаква азбука, съответният морзов код се взема от тази функция, за да създаде конкретния звук.
void GetChar (char tmpChar) { switch (tmpChar) { case 'a': MorseDot (); забавяне (100); MorseDash (); забавяне (100); почивка; ... ... ... по подразбиране: почивка; } }
Сега качете кода в Arduino с помощта на Arduino IDE и въведете произволен знак в серийния монитор и натиснете бутона за въвеждане, за да изпратите знаците до Arduino.
Тук сме въвели „SOS“, което е универсален сигнал за бедствие, за да създадем звука за същото.
Демонстрацията за същото е дадена във видеото по-долу.