Показать сообщение отдельно
Старый 10.03.2013, 22:10   #42
murano
Пользователь
 
Регистрация: 10.10.2009
Возраст: 59
Регион: 35
Сообщений: 99
murano is on a distinguished road
По умолчанию

Hamster, Да, согласен, все верно.
Цитата:
Сообщение от Alex-NN Посмотреть сообщение
Сначала собрать схемку из ссылки http://www.practicalarduino.com/proj...l-usb-keyboard?
Можно и так. Только там имитация нажатия клавиатурных кнопок осуществляется замыканием контактов. Хотя эту часть можно переделать и под резистивные кнопки.
Если ничего не напутал и не сделал ошибок то где-то вот так:
PHP код:
#include "UsbKeyboard.h"

int analogPin=0;
int data;

void setup()
{

  
// Disable timer0 since it can mess with the USB timing. Note that
  // this means some functions such as delay() will no longer work.
  
TIMSK0&=!(1<<TOIE0);

  
// Clear interrupts while performing time-critical operations
  
cli();

  
// Force re-enumeration so the host will detect us
  
usbDeviceDisconnect();
  
delayMs(250);
  
usbDeviceConnect();

  
// Set interrupts again
  
sei();
}


void loop()
{
  
UsbKeyboard.update();
  
data=analogRead(analogPin);

   if (
data==614
 
//вместо 614 нужно поставить значение прочитанное 
//на PIN0 при на жатии выбранной резистивной кнопки
  
{
    
UsbKeyboard.sendKeyStroke(KEY_HMOD_SHIFT_LEFT);
    
UsbKeyboard.sendKeyStroke(KEY_E);
    
UsbKeyboard.sendKeyStroke(KEY_L);
    
UsbKeyboard.sendKeyStroke(KEY_L);
    
UsbKeyboard.sendKeyStroke(KEY_O);
    
UsbKeyboard.sendKeyStroke(KEY_SPACE);
    
UsbKeyboard.sendKeyStroke(KEY_WMOD_SHIFT_LEFT);
    
UsbKeyboard.sendKeyStroke(KEY_O);
    
UsbKeyboard.sendKeyStroke(KEY_R);
    
UsbKeyboard.sendKeyStroke(KEY_L);
    
UsbKeyboard.sendKeyStroke(KEY_D);
    
UsbKeyboard.sendKeyStroke(KEY_ENTER);
  }

}

void delayMs(unsigned int ms)
{
  for (
int i 0msi++) {
    
delayMicroseconds(1000);
  }

murano вне форума   Ответить с цитированием