diff --git a/4button-keyboard.ino b/4button-keyboard.ino index 716cd51..01cec1f 100644 --- a/4button-keyboard.ino +++ b/4button-keyboard.ino @@ -1,33 +1,27 @@ /*THE WORKING VERSION OF THE 4 BUTTON KEYBOARD - -LAYOUT - -RedWire->| - | -____________ -| L1 L2 | -| | -| | -| L3 L4 | -| | ------------- - | | - | | - ---- -L1 = buttonState3, b4, v1, var + 5 -L2 = buttonState1, b2, v3, var - 1 -L3 = buttonState, b1, v2, var + 1 -L3 = buttonState2, b3, v4, var + 10 - - -*/ - + LAYOUT + RedWire->| + | + ____________ + | L1 L2 | + | | + | | + | L3 L4 | + | | + ------------ + | | + | | + ---- + L1 = buttonState3, b4, v1, var + 5 + L2 = buttonState1, b2, v3, var - 1 + L3 = buttonState, b1, v2, var + 1 + L3 = buttonState2, b3, v4, var + 10 + */ //Ints for counting multipress int v1 = 0; int v2 = 0; int v3 = 0; int v4 = 0; - //ints for button pins (only b1 - 4 are in use) const int b1 = 2; const int b2 = 3; @@ -35,14 +29,11 @@ const int b3 = 4; const int b4 = 5; const int b5 = 6; const int b6 = 7; - //int for counting number and submit int var = 0; int subvar = 0; - //Not sure what this does, but don't want to delete it int ptrue = 0; - //ints for counting button presses int buttonState = 0; int lastButtonState = 0; @@ -52,7 +43,6 @@ int buttonState2 = 0; int lastButtonState2 = 0; int buttonState3 = 0; int lastButtonState3 = 0; - //ints for debouncing each button long debounceDelay = 50; long lastDebounceTime = 0; @@ -63,20 +53,16 @@ long lastDebounceTime2 = 0; int state2 = 0; long lastDebounceTime3 = 0; int state3 = 0; - /* the pins are set up as inputs and then set high, -so that when the button is grounded it will notice it -and count it as a button press. this way, there are -no resistors needed for the curcuit. - -The button should be connected from the pin, to the -button, to ground, like this: - -PIN# --> Pin1 of button |--| -- Ground - ^ - Button | - -*/ + so that when the button is grounded it will notice it + and count it as a button press. this way, there are + no resistors needed for the curcuit. + The button should be connected from the pin, to the + button, to ground, like this: + PIN# --> Pin1 of button |--| -- Ground + ^ + Button | + */ void setup() { Serial.begin(9600); Serial.println("Begin Typing"); @@ -93,11 +79,7 @@ void setup() { digitalWrite(b5, HIGH); digitalWrite(b6, HIGH); } - void loop() { - - - state3 = digitalRead(b4); //read if grounded or not if ((millis() - lastDebounceTime3) > debounceDelay) { //if the button has not been pressed within debouncetime, do... buttonState3 = digitalRead(b4); @@ -105,7 +87,7 @@ void loop() { if (buttonState3 == HIGH) { //if the switch was released, do... lastDebounceTime3 = millis(); v1 = 0; //reset the multipress counter, so it does not count it as a press after you release the button - } + } else { //if switch pressed, do... var = var + 5; //setting for what the button does lastDebounceTime3 = millis(); //reset the last debounce @@ -113,7 +95,6 @@ void loop() { } } } - //the same goes for this state = digitalRead(b1); if ((millis() - lastDebounceTime) > debounceDelay) { @@ -122,7 +103,7 @@ void loop() { if (buttonState == HIGH) { lastDebounceTime = millis(); v2 = 0; - } + } else { var = var + 1; lastDebounceTime = millis(); @@ -130,7 +111,6 @@ void loop() { } } } - //and this state1 = digitalRead(b2); if ((millis() - lastDebounceTime1) > debounceDelay) { @@ -139,7 +119,7 @@ void loop() { if (buttonState1 == HIGH) { lastDebounceTime1 = millis(); v3 = 0; - } + } else { var = var - 1; lastDebounceTime1 = millis(); @@ -147,7 +127,6 @@ void loop() { } } } - //... and this state2 = digitalRead(b3); if ((millis() - lastDebounceTime2) > debounceDelay) { @@ -156,7 +135,7 @@ void loop() { if (buttonState2 == HIGH) { lastDebounceTime2 = millis(); v4 = 0; - } + } else { var = var + 10; lastDebounceTime2 = millis(); @@ -164,10 +143,8 @@ void loop() { } } } - - -// this whole section controls what letters correspond to what numbers, -// and when to send the letter out + // this whole section controls what letters correspond to what numbers, + // and when to send the letter out if (var == 1) { //if the variable is 1, if (subvar == 1) { //and, if you pressed the submit button, Serial.print('A'); //print the letter 'A' (A is the first letter in the alphabet) @@ -175,9 +152,7 @@ void loop() { var = 0; //reset the variable, so you can count to the next word. } } - -//the same goes for all the code below, untill the next comment. - + //the same goes for all the code below, untill the next comment. if (var == 2) { if (subvar == 1) { Serial.print('B'); @@ -353,28 +328,22 @@ void loop() { var = 0; } } - -// i know everything above could've been done with a map, but, i didn't do it like that. - -//this next code part control all the multipress. - - - if (v1 == 1) { //if one of the two buttons in the multipress section was pressed, - if (v3 == 1) { //and the second button in the multipress section was pressed, + // i know everything above could've been done with a map, but, i didn't do it like that. + //this next code part control all the multipress. + if (v1 == 1) { //if one of the two buttons in the multipress section was pressed, + if (v3 == 1) { //and the second button in the multipress section was pressed, subvar = 1; //do what you want that multipres section to do. In this case, it was //presss the top two buttons to submit the number. v1 = 0; //reset multipress button stats v3 = 0; //ya, again var = var - 5; //take into account what would normall happen to the variable. - //the top two button can add + 5 and - 1, so doing - 5 and + 1 will reset the + //the top two button can add + 5 and - 1, so doing - 5 and + 1 will reset the //variable to what it would normally be. var = var + 1; //the same here too } } - - //the same goes for the below code, but with different buttons for + //the same goes for the below code, but with different buttons for //multipress, and different actions based on that - if (v2 == 1) { if (v4 == 1) { Serial.print(" "); @@ -383,9 +352,8 @@ void loop() { var = var + 1; var = - 5; } - } - -if (v3 == 1) { + } + if (v3 == 1) { if (v4 == 1) { Serial.println(""); v3 = 0; @@ -393,9 +361,8 @@ if (v3 == 1) { var = var + 1; var = var - 10; } - } - -if (v1 == 1) { + } + if (v1 == 1) { if (v2 == 1) { Serial.print("."); v1 = 0; @@ -403,9 +370,7 @@ if (v1 == 1) { var = var - 1; var = var - 5; } - } - - + } //reset the button states. not sure if i still need these, but dont want to risk deleting them. // lastButtonState = buttonState; @@ -413,27 +378,3 @@ if (v1 == 1) { lastButtonState2 = buttonState2; lastButtonState3 = buttonState3; } - - - - - - - - - - - - - - - - - - - - - - - -