Arduino:Примеры/KeyboardSerial

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.


Передача клавиатурных данных через последовательный порт [1]

В этом примере Arduino «прослушивает» последовательный порт на предмет входящего байта. Получив его, она отсылает обратно на компьютер другой байт. Отсылаемый Arduino символ будет на один пункт «старше» входящего символа. То есть, к примеру, если вы отошлете через Serial Monitor символ «а», то Arduino (Leonardo или Due) пришлет обратно «b». Отошлете «1» – пришлет «2» и т.д.

Внимание! При использовании команды Keyboard.print() Arduino перехватит роль клавиатуры на себя. Поэтому, перед тем как вызывать эту команду, убедитесь, что вы все настроили правильно, чтобы внезапно не потерять контроль над компьютером при использовании этого скетча. Он специально устроен таким образом, чтобы, получив от компьютера байт, в ответ тоже отправить ему байт.

Необходимое оборудование

  • Плата Arduino Leonardo, Arduino Micro или Arduino Due;

Цепь

Подключите Arduino к компьютеру при помощи microUSB-кабеля. Запрограммировав плату, откройте на компьютере окно Serial Monitor и отправьте байт. Arduino ответит вам, тоже отправив компьютеру байт, который будет на один символ «старше».

Код

/* 
 Передача клавиатурных данных через последовательный порт
 
 Для Arduino Leonardo или Arduino Micro.
 
 Считывает байт, пришедший по последовательному порту, а затем отсылает обратно другой байт.
 Этот байт будет на один символ «старше» изначального байта,
т.е. если вы отправите «а», то получите «b»,
а если отправите «А», то получите «B» и т.д.
  
 Цепь:
 * Нет
 
 Создан 21 октября 2011,
 модифицирован 27 марта 2012 Томом Иго (Tom Igoe).
 
 Этот код не защищен авторским правом.
 
 http://www.arduino.cc/en/Tutorial/KeyboardSerial
 */

void setup() {
  // Открываем последовательный порт:
Serial.begin(9600);
  // Перехватываем управление клавиатурой:
  Keyboard.begin();
}

void loop() {
  // Проверяем, не пришел ли по последовательному порту байт:
  if (Serial.available() > 0) {
    // Считываем входящие данные:
    char inChar = Serial.read();
    // Выводим на Serial Monitor символ, который в ASCII-кодировке
    // находится вслед за присланным:
    Keyboard.write(inChar+1);
  }  
}

См.также

  1. Keyboard.write()
  2. Keyboard.print()
  3. Keyboard.println()
  4. ASCIITable

Внешние ссылки