Контроллер для изучения азбуки морзе

Автор R8ABB, 24 декабря 2015, 20:50:51

« назад - далее »

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

R8ABB

Для этого проекта нам понадобится:

  • Плата Ардуино
  • Клавиатура 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 будет уменьшаться скорость передачи или увеличиваться соответственно

Последние сообщения на форуме:

[Беседка] Re: Кубок Урала-2026 от RM9C 20 октября 2026, 19:23:14
[Беседка] Re: спасибо всем от Влад 13 октября 2026, 22:57:52
[Новости] Re: Вспышки наСолнце2026 от R8AFS 11 октября 2026, 18:49:33
[Доска частных объявлений] Re: IC-7300 от ra9aaa 02 октября 2026, 19:46:27
[Доска частных объявлений] SPEAKER ICOM SP-23 от ra9aaa 21 сентября 2026, 17:50:49
[Доска частных объявлений] Блок питания от ra9aaa 19 сентября 2026, 17:16:14
[Новичкам] Re: посильная помощь от Влад 19 сентября 2026, 16:02:00
[Беседка] срочно продам от Влад 17 сентября 2026, 15:22:30
[Доска частных объявлений] Редуктор МЭО от ra9aaa 07 сентября 2026, 18:33:09
[Маяки, репитеры, эхолинки и их частоты] Re: Маяк R8ACZ/B 1296.900 от R8ACZ 16 августа 2026, 23:00:39
[Программы для радиолюбителей] Re: CAT4Web - синхронизация трансивера и WebSDR от R8ACC 03 августа 2026, 18:58:52
[Доска частных объявлений] Re: Редуктор от Владимир 16 июня 2026, 07:50:38
[Новости] Защита Элекросетей от Магнитных бурь от R8AFS 24 апреля 2026, 08:40:23
[Беседка] Re: Радио Анекдоты от R8AFS 01 апреля 2026, 09:15:54
[Соревнования] Кубок А.С. Попова Свердловской обл. УКВ от R8AFS 21 марта 2026, 19:13:57
[Соревнования] Пермские УКВ соревнования им. А.С.Попова. от R8AFS 18 марта 2026, 20:42:03