ИК упровление пк и другим оборудоваием (нужна помощь!)
- Войдите на сайт для отправки комментариев
Пт, 06/09/2013 - 23:42
Доброго времени суток! Помогите дописать программу чтобы можно было упролять не только оборудованием но и ПК
есть вот такая программа по упровлению к примеру светодиодами, при удержании на кнопки ИК пульта горит светодиод
так вот помогите дописать код что-бы при нажатии на другую кнопку пульта компьютер воспринимал как нажатие клавиши на клавиатуре, также и движени курсора
#include <IRremote.h>
int RECV_PIN = 11; //вход ИК приемника
IRrecv irrecv(RECV_PIN);
decode_results results;
unsigned long eventTime=0; //eventTime, для паузы, вместо delay,будем использовать функцию millis.
int timer = 10;//индикация таймера
int L13 = 13; //пины
int L12 = 12;
void setup(){
irrecv.enableIRIn(); // включить приемник
pinMode(L13, OUTPUT); // назначаем пины как выходы
pinMode(L12, OUTPUT);
pinMode(timer, OUTPUT);
}
void loop() {
if (digitalRead(RECV_PIN) == LOW)
// Если обнаружен отрицательный сигнал запускаем таймер,и включаем таймерПИН //(timer, HIGH);
eventTime=millis(),digitalWrite(timer, HIGH);
// Продолжительность работы таймера >100 миллисекунд. И ТаймерПИН выключаем //(timer, LOW)
if(millis()-eventTime>100) digitalWrite(timer, LOW)
// и вЫключаем все
digitalWrite(L13, LOW),digitalWrite(L12, LOW);
if (irrecv.decode(&results)) {
if (results.value == 0xC1C738C7 && (digitalRead(timer) == HIGH) )digitalWrite(L13, HIGH); //вперед
if (results.value == 0xC1C7B847 && (digitalRead(timer) == HIGH) )digitalWrite(L12, HIGH); //назад
if (results.value == 0xC1C7807F && (digitalRead(timer) == HIGH) )digitalWrite(L12, HIGH); //play
irrecv.resume();
}
}
как вы поняли работает с бибиотекой IRremote.h
Сейчас Вас тут закидают камнями за то что не правильно вставили код.. ))
Поняли - теперь идёте в папку arduino-x.x.x\examples\09.USB и смотрите примеры реализации клавиатуры и мыши как устройств ввода.
А каким "макаром" ПК понимает, что это USB устройство Мишь или Клавиатура? я так понимаю что эти примеры только для плат Arduino Leonardo и Micro?
Если у меня Diecimila. на ней стоит FTDI USB chip между Atmega и USB портом ПК, то я так понимаю мне можно забыть о реализации клавиатуры и мыши как устройств ввода?
Тогда у меня возникает вопрос к знающим - каким образом работает Leonardo и Micro?
Простите, что не в тему.. наверно надо было в разделе "Апаратные вопросы". Но я думаю топик стартеру эта инфа тоже будет полезна..
Arduino Leonardo — контроллер на базе ATmega32u4
Почитал даташит на данный камень: таки да.. у этого чипа уже внутри контроллер USB. Теперь стало понятно, каким образом Arduina превращается в "мишь" или "клавиатуру".
Согласно спецификации USB устройство передаёт системе VID/PID-идентификатор, получив который система уже решает, что делать с устройством
Если очень нужно, то можно подключить к дуино обычную клаву и мышь - т.е. нажимать на кнопы клавы ногами дуино. Или написать софт, который будет преобразовывать сигналы передаваемые по компорту в клавиатурные/мышиные.
Или пробовать велосипед V-USB.
Контроллеры этих дуино имеют на борту аппаратный USB, что позволяет представиться в принципе любым устройством USB.
Клапауций
Спасибо за ответ! ;) Не зря подозревал, что не все так просто.. :)