Added HID and Midi examples

This commit is contained in:
Roger Clark 2016-07-18 17:40:34 +10:00
parent ff15d4815a
commit c53a418700
5 changed files with 168 additions and 0 deletions

View File

@ -0,0 +1,16 @@
byte lPin = 33;
void setup() {
pinMode(lPin, OUTPUT);
}
void loop() {
delay(1500);
Joystick.X(1000);
delay(1500);
Joystick.Y(1000);
delay(1500);
Joystick.X(0);
delay(1500);
Joystick.Y(0);
}

View File

@ -0,0 +1,34 @@
#include <usb_hid_device.h>
#define lPin 33
#define bPin 32
#define BUTTON_DEBOUNCE_DELAY 1
int i=1, li=0;
void setup() {
pinMode(lPin, OUTPUT);
HID.begin();
}
void loop() {
bool pressed = isButtonPressed();
if(pressed){
Joystick.button(i,1);
li=i;
}else{
Joystick.button(i,0);
if(li==i)i++;
i=(i>32)?1:i;
}
}
bool isButtonPressed() {
if (digitalRead(bPin) == HIGH) {
delay(BUTTON_DEBOUNCE_DELAY);
if (digitalRead(bPin) == HIGH)
return true;
}
return false;
}

View File

@ -0,0 +1,31 @@
#define bPin 32
#define lPin 33
#define BUTTON_DEBOUNCE_DELAY 1
bool isButtonPressed();
void setup() {
pinMode(lPin, OUTPUT);
pinMode(bPin, INPUT);
}
void loop() {
//delay(1000);
if(isButtonPressed()){
Keyboard.write(KEY_LEFT_GUI);
//Keyboard.print("Hello World !!!\n");
}
}
bool isButtonPressed() {
if (digitalRead(bPin) == HIGH) {
delay(BUTTON_DEBOUNCE_DELAY);
while (digitalRead(bPin) == HIGH)
;
return true;
}
return false;
}

View File

@ -0,0 +1,32 @@
#define lPin 33
#define bPin 32
#define BUTTON_DEBOUNCE_DELAY 1
#define inc 32
bool isButtonPressed();
void setup() {
pinMode(lPin, OUTPUT);
}
void loop() {
if(isButtonPressed()){
//Mouse.click(MOUSE_RIGHT);
//Mouse.click(MOUSE_LEFT);
Mouse.move(inc, inc, -5);
}
}
bool isButtonPressed() {
if (digitalRead(bPin) == HIGH) {
delay(BUTTON_DEBOUNCE_DELAY);
while (digitalRead(bPin) == HIGH)
;
return true;
}
return false;
}

View File

@ -0,0 +1,55 @@
// ACHTUNG:
// für Midi Eingang die voids von usb_midi.cpp übernehmen -> siehe unten (sind auskommentiert im cpp file)
//#include <usb_midi.h>
#define ledpiny 33
boolean flip=0;
long sendtimer=millis();
void setup() {
pinMode(ledpiny, OUTPUT);
//MidiUSB.begin();
}
void loop() {
// digitalWrite(ledpiny, MidiUSB.isConnected() );
/*
void sendNoteOff(unsigned int channel, unsigned int note, unsigned int velocity);
void sendNoteOn(unsigned int channel, unsigned int note, unsigned int velocity);
*/
if (millis()-sendtimer>=500)
{
if (flip==0)
MidiUSB.sendNoteOn(1, 64, 127);
else
MidiUSB.sendNoteOff(1, 64, 0);
flip=!flip;
sendtimer=millis();
}
MidiUSB.poll();
}
void USBMidi::handleNoteOff(unsigned int channel, unsigned int note, unsigned int velocity) {
digitalWrite(ledpiny,0);
}
void USBMidi::handleNoteOn(unsigned int channel, unsigned int note, unsigned int velocity) {
if (velocity>=0)
digitalWrite(ledpiny,1);
}
void USBMidi::handleVelocityChange(unsigned int channel, unsigned int note, unsigned int velocity) {}
void USBMidi::handleControlChange(unsigned int channel, unsigned int controller, unsigned int value) {}
void USBMidi::handleProgramChange(unsigned int channel, unsigned int program) {}
void USBMidi::handleAfterTouch(unsigned int channel, unsigned int velocity) {}
void USBMidi::handlePitchChange(unsigned int pitch) {}
void USBMidi::handleSongPosition(unsigned int position) {}
void USBMidi::handleSongSelect(unsigned int song) {}
void USBMidi::handleTuneRequest(void) {}
void USBMidi::handleSync(void) {}
void USBMidi::handleStart(void) {}
void USBMidi::handleContinue(void) {}
void USBMidi::handleStop(void) {}
void USBMidi::handleActiveSense(void) {}
void USBMidi::handleReset(void) {}