2.2 Простое шифрование сигнала. Азбука Морзе

1) В этой работе необходимо было составить программу для Arduino, выполняя которую контроллер миганием светодиода передаст информацию о слове из шести букв, с использованием азбуки Морзе за слово из шести букв было принято слово «МОЛОКО». Для этого был задан порт, определены контакты входа и выхода, слово было зашифровано миганием светодиода, за единицу времени принимается длительность одной точки. Длительность тире равна трём точкам. Пауза между элементами одного знака - одна точка, между знаками в слове - три точки.

Рисунок 1 – Азбука Морзе

 

int Led=13;

void setup ()

{ pinMode(Led, OUTPUT);

}

void loop ()

{

digitalWrite(Led,LOW);

delay(5000);

//M

digitalWrite(Led, HIGH);

delay(3000);

digitalWrite(Led,LOW);

delay(1000);

digitalWrite(Led,HIGH);

delay(3000);

//пауза между буквами

digitalWrite(Led,LOW);

delay(3000);

//O

digitalWrite(Led,HIGH);

delay(3000);

digitalWrite(Led,LOW);

delay(1000);

digitalWrite(Led,HIGH);

delay(3000);

digitalWrite(Led,LOW);

delay(1000);

digitalWrite(Led,HIGH);

delay(3000);

//пауза между буквами

digitalWrite(Led,LOW);

delay(3000);

//Л

digitalWrite(Led,HIGH);

delay(1000);

digitalWrite(Led,LOW);

delay(1000);

digitalWrite(Led,HIGH);

delay(3000);

digitalWrite(Led,LOW);

delay(1000);

digitalWrite(Led,HIGH);

delay(1000);

digitalWrite(Led,LOW);

delay(1000);

digitalWrite(Led,HIGH);

delay(1000);

//пауза

digitalWrite(Led,LOW);

delay(3000);

//О

digitalWrite(Led,HIGH);

delay(3000);

digitalWrite(Led,LOW);

delay(1000);

digitalWrite(Led,HIGH);

delay(3000);

digitalWrite(Led,LOW);

delay(1000);

digitalWrite(Led,HIGH);

delay(3000);

//пауза

digitalWrite(Led,LOW);

delay(3000);

//К

digitalWrite(Led,HIGH);

delay(3000);

digitalWrite(Led,LOW);

delay(1000);

digitalWrite(Led,HIGH);

delay(1000);

digitalWrite(Led,LOW);

delay(1000);

digitalWrite(Led,HIGH);

delay(3000);

//пауза

digitalWrite(Led,LOW);

delay(3000);

//О

digitalWrite(Led,HIGH);

delay(3000);

digitalWrite(Led,LOW);

delay(1000);

digitalWrite(Led,HIGH);

delay(3000);

digitalWrite(Led,LOW);

delay(1000);

digitalWrite(Led,HIGH);

delay(3000);

//пауза

digitalWrite(Led,LOW);

delay(3000);

}

2) Составить программу для Arduino, выполняя которую контроллер миганием светодиода передаст информацию о пароле из пяти символов, с использованием азбуки Морзе. Одна «точка» равна 0,5 секунды. Паролем являлось «СЫР:7».

int Led=13;

void setup ()

{ pinMode(Led, OUTPUT);

}

void loop ()

{

digitalWrite(Led,LOW);

delay(5000);

//C

digitalWrite(Led, HIGH);

delay(500);

digitalWrite(Led,LOW);

delay(500);

digitalWrite(Led,HIGH);

delay(500);

digitalWrite(Led,LOW);

delay(500);

digitalWrite(Led,HIGH);

delay(500);

//пауза

digitalWrite(Led,LOW);

delay(1500);

//Ы

digitalWrite(Led,HIGH);

delay(1500);

digitalWrite(Led,LOW);

delay(500);

digitalWrite(Led,HIGH);

delay(500);

digitalWrite(Led,LOW);

delay(500);

digitalWrite(Led,HIGH);

delay(1500);

digitalWrite(Led,LOW);

delay(1500);

digitalWrite(Led,HIGH);

delay(500);

digitalWrite(Led,HIGH);

delay(1500);

//пауза

digitalWrite(Led,LOW);

delay(1500);

//Р

digitalWrite(Led, HIGH);

delay(500);

digitalWrite(Led,LOW);

delay(500);

digitalWrite(Led,HIGH);

delay(1500);

digitalWrite(Led,LOW);

delay(500);

digitalWrite(Led, HIGH);

delay(500);

//пауза

digitalWrite(Led,LOW);

delay(1500);

//:

digitalWrite(Led,HIGH);

delay(1500);

digitalWrite(Led,LOW);

delay(500);

digitalWrite(Led,HIGH);

delay(1500);

digitalWrite(Led,LOW);

delay(500);

digitalWrite(Led,HIGH);

delay(1500);

digitalWrite(Led,LOW);

delay(500);

digitalWrite(Led, HIGH);

delay(500);

digitalWrite(Led,LOW);

delay(500);

digitalWrite(Led, HIGH);

delay(500);

digitalWrite(Led,LOW);

delay(500);

digitalWrite(Led, HIGH);

delay(500);

//пауза

digitalWrite(Led,LOW);

delay(1500);

//7

digitalWrite(Led,HIGH);

delay(1500);

digitalWrite(Led,LOW);

delay(500);

digitalWrite(Led,HIGH);

delay(1500);

digitalWrite(Led,LOW);

delay(500);

digitalWrite(Led, HIGH);

delay(500);

digitalWrite(Led,LOW);

delay(500);

digitalWrite(Led, HIGH);

delay(500);

digitalWrite(Led,LOW);

delay(500);

digitalWrite(Led, HIGH);

delay(500);

После подключения Arduino к компьютеру, была загружена программа в контроллер и получено мигание светодиода, которое несло в себе зашифрованное слово и пароль. Путем анализа мигания светодиода, были выявлены точки и тире, указывающие на букву либо паузу между буквами, и расшифровано слово и пароль. Таким образом, с помощью Arduino и светодиода можно передавать слова, зашифрованные в азбуке Морзе.