Автор Тема: Контроллер для изучения азбуки морзе  (Прочитано 7980 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн R8ABB

  • Новичок
  • *
  • Сообщений: 4
  • Карма: +0/-0
Для этого проекта нам понадобится:
  • Плата Ардуино
  • Клавиатура PS/2
  • Входной разьем PS/2

Программа:
#include <PS2Keyboard.h>

int S = 13;      //Номер пина на который выводится звук
int P = 80;      //Длительность точки
int D = P*2.5;   //Длительность тире
int F = 1000;  //Частота, Hz

const int DataPin = 2;
const int IRQpin =  3;

PS2Keyboard keyboard;

void setup() {
  delay(1000);
  keyboard.begin(DataPin, IRQpin);
}

void loop() {
  if (keyboard.available()) {
    char c = keyboard.read();
    if (c == 'q') {
      Dash();
      Dash();
      Point();
      Dash();
      delay(D);
    }
      else {
        if (c == 'w') {
        Point();
        Dash();
        Dash();
        delay(D);
        }
       else {
       if (c == 'e') {
       Point();
       delay(D);
       }
       else { if (c == 'r') {
       Point();
       Dash();
       Point();
       delay(D);
       } else { if (c == 't') {
       Dash();
       delay(D);
       } else { if (c == 'y') {
       Dash();
       Point();
       Dash();
       Dash();
       delay(D);
       } else { if (c == 'u') {
       Point();
       Point();
       Dash();
       delay(D);
       } else { if (c == 'i') {
       Point();
       Point();
       delay(D);
       } else { if (c == 'o') {
       Dash();
       Dash();
       Dash();
       delay(D);
       } else { if (c == 'p') {
       Point();
       Dash();
       Dash();
       Point();
       delay(D);
       } else { if (c == 'a') {
       Point();
       Dash();
       delay(D);
       } else { if (c == 's') {
       Point();
       Point();
       Point();
       delay(D);
       } else { if (c == 'd') {
       Dash();
       Point();
       Point();
       delay(D);
       } else { if (c == 'f') {
       Point();
       Point();
       Dash();
       Point();
       delay(D);
       } else { if (c == 'g') {
       Dash();
       Dash();
       Point();
       delay(D);
       } else { if (c == 'h') {
       Point();
       Point();
       Point();
       Point();
       delay(D);
       } else { if (c == 'j') {
       Point();
       Dash();
       Dash();
       Dash();
       delay(D);
       } else { if (c == 'k') {
       Dash();
       Point();
       Dash();
       delay(D);
       } else { if (c == 'l') {
       Point();
       Dash();
       Point();
       Point();
       delay(D);
       } else { if (c == 'z') {
       Dash();
       Dash();
       Point();
       Point();
       delay(D);
       } else { if (c == 'x') {
       Dash();
       Point();
       Point();
       Dash();
       delay(D);
       } else { if (c == 'c') {
       Dash();
       Point();
       Dash();
       Point();
       delay(D);
       } else { if (c == 'v') {
       Point();
       Point();
       Point();
       Dash();
       delay(D);
       } else { if (c == 'b') {
       Dash();
       Point();
       Point();
       Point();
       delay(D);
       } else { if (c == 'n') {
       Dash();
       Point();
       delay(D);
       } else { if (c == 'm') {
       Dash();
       Dash();
       delay(D);
       }
       else { if (c == '0') {
       Dash();
       Dash();
       Dash();
       Dash();
       Dash();
       delay(D);
       } else { if (c == '1') {
       Point();
       Dash();
       Dash();
       Dash();
       Dash();
       delay(D);
       }
        else { if (c == '2') {
       Point();
       Point();
       Dash();
       Dash();
       Dash();
       delay(D);
       } else { if (c == '3') {
       Point();
       Point();
       Point();
       Dash();
       Dash();
       delay(D);
       } else { if (c == '4') {
       Point();
       Point();
       Point();
       Point();
       Dash();
       delay(D);
       } else { if (c == '5') {
       Point();
       Point();
       Point();
       Point();
       Point();
       delay(D);
       } else { if (c == '6') {
       Dash();
       Point();
       Point();
       Point();
       Point();
       delay(D);
       } else { if (c == '7') {
       Dash();
       Dash();
       Point();
       Point();
       Point();
       delay(D);
       } else { if (c == '8') {
       Dash();
       Dash();
       Dash();
       Point();
       Point();
       delay(D);
       } else { if (c == '9') {
       Dash();
       Dash();
       Dash();
       Dash();
       Point();
       delay(D);
       } else { if (c == PS2_PAGEUP) {
       P -=10;
       } else { if (c == PS2_PAGEDOWN) {
       P +=10;
       }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
    }
  }
}
 
void Dash() {
  tone(S,F,D);
  delay(D+P);
}

void Point() {
  tone(S,F,P);
  delay(P*2);
}

Вот и все теперь при нажатии любой клавиши будет воспроизодиться ее код в азбуке морзе. И при нажатии PAGE DOWN или PAGE UP будет уменьшаться скорость передачи или увеличиваться соответственно

 



Последние сообщения на форуме:
[Программы для радиолюбителей] Портативная версия WSJT-X portable от R8AHC 21 Ноября 2024, 15:24:20
[Новости] Re: Новое в получении категории от ra9avl 18 Ноября 2024, 15:48:18
[Цифровая обработка сигналов (SDR, DRM)] Re: WEB SDR-приемники России от R8AFS 15 Ноября 2024, 19:57:37
[Новости] Re: Вспышки наСолнце2024 от R8AFS 11 Ноября 2024, 06:49:43
[Доска частных объявлений] Re: Поворотное устройство Hy-Gain AR-35X от ra9aaa 30 Октября 2024, 11:54:38
[Цифровые виды связи] Re: Digi VHF от R9CAH 16 Октября 2024, 12:21:36
[Беседка] Re: Радио Анекдоты от R8AFS 15 Октября 2024, 09:27:51
[Доска частных объявлений] Продам 5эл. yagi на 144 Мгц. от Сергей 01 Октября 2024, 21:46:40
[Цифровая обработка сигналов (SDR, DRM)] Re: DMR в Челябинской области от R8ABK 22 Сентября 2024, 18:38:59
[Радиоэкспедиции и путешествия] Re: В эфире Тысячники Южного Урала от RA8AL 18 Сентября 2024, 00:23:21
[Доска частных объявлений] Re: Панель для ГУ-81 от anton 07 Сентября 2024, 08:50:22
[Новичкам] Re: Порядок получения радиолюбительской категории и позывного сигнала от Kontrabas74 03 Сентября 2024, 16:16:07
[Цифровая обработка сигналов (SDR, DRM)] Re: Приёмник WebSDR в Челябинске. от R8DR 30 Августа 2024, 08:36:52
[Технический форум] Re: IC8500 приёмник, подскажите где отремонтировать, а также переносные (потаскушки) от R8AFS 24 Июля 2024, 09:41:40
[Доска частных объявлений] Re: Opek UVS - 300 от ra9aaa 14 Июля 2024, 16:27:10
[Доска частных объявлений] Мачта от ra9aaa 11 Июня 2024, 18:58:59
[Новости] Re: Продается автомобильная КВ-антенна MFJ-33gt (+2м. диапазон) от MO05 09 Июня 2024, 12:34:44
[Соревнования] О контесте ВС УКВ от R8AFS 03 Июня 2024, 07:05:07
[Маяки, репитеры, эхолинки и их частоты] Разделение CW маяка и сигнала субтонами. Предложение администраторам репитеров! от R8AHC 21 Мая 2024, 14:45:18
[Соревнования] Re: День Защитника Отечества от MO05 09 Мая 2024, 12:38:44