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

Оффлайн Мельников Тимур

  • Administrator
  • Member
  • *****
  • Сообщений: 21
  • Репутация: +1/-0
    • E-mail
    • Личное сообщение (Оффлайн)
Для этого проекта нам понадобится:
  • Плата Ардуино
  • Клавиатура 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 будет уменьшаться скорость передачи или увеличиваться соответственно
« Последнее редактирование: Июль 06, 2017, 10:03:28 от electroGhost »

 

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

[Доска частных объявлений] сайт казино вулкан от EvelynVer Сегодня в 03:57:28
[Доска частных объявлений] вулкан 24 казино официальный от EvelynVer Сегодня в 03:55:00
[Доска частных объявлений] плей казино от EvelynVer Сегодня в 03:52:20
[Наука] Re: Новости науки и технологии от Новичёк Сегодня в 02:01:49
[Беседка] Re: Сайт msevm.com заблокирован? от Новичёк Сегодня в 01:57:20
[Беседка] Сайт msevm.com заблокирован? от john Сегодня в 00:10:49
[Наука] Re: Новости науки и технологии от john Сентябрь 19, 2019, 23:49:59
[Наука] Re: Новости науки и технологии от Новичёк Сентябрь 19, 2019, 20:55:55
[Наука] Re: Новости науки и технологии от Новичёк Сентябрь 19, 2019, 20:39:51
[История] Re: Загадки древних технологий от Новичёк Сентябрь 19, 2019, 20:37:28
[Политика] Re: Противостояние: Россия - США от Новичёк Сентябрь 19, 2019, 20:35:04
[Политика] Re: Противостояние: Россия - США от Новичёк Сентябрь 19, 2019, 20:32:19
[Наука] Re: Новости науки и технологии от Новичёк Сентябрь 19, 2019, 15:17:22
[Наука] Re: Новости науки и технологии от Новичёк Сентябрь 19, 2019, 15:15:19
[Наука] Re: Новости науки и технологии от Новичёк Сентябрь 19, 2019, 15:13:01
[Наука] Re: Новости науки и технологии от Новичёк Сентябрь 19, 2019, 15:10:39
[Политика] Re: Противостояние: Россия - США от Новичёк Сентябрь 19, 2019, 15:08:01
[Политика] Re: Противостояние: Россия - США от Новичёк Сентябрь 19, 2019, 15:02:42
[Автолюбителям] Re: Технологии автоматизированного вождения от Новичёк Сентябрь 19, 2019, 15:00:42
[Автолюбителям] Re: Будущее автомобилей от Новичёк Сентябрь 19, 2019, 14:58:04
 Rambler's Top100