I have been trying to make this diy h-shifter project
i used the code from the post but when I'm not activating any switches it types "0123456701234567" and on and on. Even when all switches are pressed, it still types it. I've tried changing
to
, I've tried changing the second "if"s to "else"s but that gives me an error message.
I checked the wiring and it is all correctly wired with the microswitches. could it be a problem with the teensy 2.0's pins?
i used the code from the post but when I'm not activating any switches it types "0123456701234567" and on and on. Even when all switches are pressed, it still types it. I've tried changing
Code:
if (digitalRead(gearR) == 0) // gear engaged (the '0' means the pin has been shorted to the ground, causing a drop in voltage on that pin)
{
Keyboard.press('0'); // send a keypress (and hold) '0' to the computer via Keyboard HID
}
if (digitalRead(gearR) == 1) //gear disengaged (the '1' means the pin is no longer shorted to the ground, which increases voltage on that pin)
{
Keyboard.release('0'); //tells the PC to let go of the key (otherwise, it would continue to hold it forever, even after another gear is selected)
}
Code:
if (digitalRead(gearR) == 1) // gear engaged (the '0' means the pin has been shorted to the ground, causing a drop in voltage on that pin)
{
Keyboard.press('0'); // send a keypress (and hold) '0' to the computer via Keyboard HID
}
if (digitalRead(gearR) == 0) //gear disengaged (the '1' means the pin is no longer shorted to the ground, which increases voltage on that pin)
{
Keyboard.release('0'); //tells the PC to let go of the key (otherwise, it would continue to hold it forever, even after another gear is selected)
}
I checked the wiring and it is all correctly wired with the microswitches. could it be a problem with the teensy 2.0's pins?
Code:
//Pin assignments for each gear
int gearR = 0; // Reverse gear set to pin 0
int gear1 = 1;
int gear2 = 2;
int gear3 = 3;
int gear4 = 4;
int gear5 = 5;
int gear6 = 6;
int gear7 = 7;
void setup()
{
//Gear Inputs
pinMode(gearR, INPUT); // Set the gear as an input
digitalWrite(gearR, HIGH);
pinMode(gear1, INPUT);
digitalWrite(gear1, HIGH);
pinMode(gear2, INPUT);
digitalWrite(gear2, HIGH);
pinMode(gear3, INPUT);
digitalWrite(gear3, HIGH);
pinMode(gear4, INPUT);
digitalWrite(gear4, HIGH);
pinMode(gear5, INPUT);
digitalWrite(gear5, HIGH);
pinMode(gear6, INPUT);
digitalWrite(gear6, HIGH);
pinMode(gear7, INPUT);
digitalWrite(gear7, HIGH);
}
// Below is where the functions for each keypress and release are assigned.
// If you currently have any of the number keys 0-7 mapped to a function, you can change them out below.
// Be sure to change the key for both the "Press" function, and the "Release" function for each gear.
// Note, these are the number keys above the letter keys on a keyboard, NOT the number pad keys.
void loop()
{
//////////*** Reverse GEAR ***\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
if (digitalRead(gearR) == 0) // gear engaged (the '0' means the pin has been shorted to the ground, causing a drop in voltage on that pin)
{
Keyboard.press('0'); // send a keypress (and hold) '0' to the computer via Keyboard HID
}
if (digitalRead(gearR) == 1) //gear disengaged (the '1' means the pin is no longer shorted to the ground, which increases voltage on that pin)
{
Keyboard.release('0'); //tells the PC to let go of the key (otherwise, it would continue to hold it forever, even after another gear is selected)
}
//////////*** 1ST GEAR ***\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
if (digitalRead(gear1) == 0)
{
Keyboard.press('1');
}
if (digitalRead(gear1) == 1) //gear disengaged
{
Keyboard.release('1');
}
//////////*** 2ND GEAR ***\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
if (digitalRead(gear2) == 0)
{
Keyboard.press('2');
}
if (digitalRead(gear2) == 1) //gear disengaged
{
Keyboard.release('2');
}
//////////*** 3RD GEAR ***\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
if (digitalRead(gear3) == 0)
{
Keyboard.press('3');
}
if (digitalRead(gear3) == 1) //gear disengaged
{
Keyboard.release('3');
}
//////////*** 4TH GEAR ***\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
if (digitalRead(gear4) == 0)
{
Keyboard.press('4');
}
if (digitalRead(gear4) == 1) //gear disengaged
{
Keyboard.release('4');
}
//////////*** 5TH GEAR ***\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
if (digitalRead(gear5) == 0)
{
Keyboard.press('5');
}
if (digitalRead(gear5) == 1) //gear disengaged
{
Keyboard.release('5');
}
//////////*** 6TH GEAR ***\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
if (digitalRead(gear6) == 0)
{
Keyboard.press('6');
}
if (digitalRead(gear6) == 1) //gear disengaged
{
Keyboard.release('6');
}
//////////*** 7TH GEAR ***\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
if (digitalRead(gear7) == 0)
{
Keyboard.press('7');
}
if (digitalRead(gear7) == 1) //gear disengaged
{
Keyboard.release('7');
}
}