Hi everyone,
I am very new to programming and I just can't find the info for turning a simple SPST toggle switch into a keyboard input at both the ON and OFF positions without locking up the keyboard.
I wrote a code that works with the switches but needs TWO TOGGLES in order to change the state and send the Keyboard.write.
I read the StateChangeDetection and tried to implement it but that's when my code went to bits...
Please can anyone help? I have probably over complicated this but it is driving me wild now being so close!!!
Thanks in advance for any help offered!
Col
#include <Keyboard.h>
int redLED=13;
int switch1=16;
int switch2=11;
int switch3=10;
int switch4=9;
int switch5=8;
int switch6=7;
int switch7=6;
int switch8=5;
int switch9=4;
int switch10=3;
int switch11=2;
int del1=70;
int switch1Old=0;
int switch1New;
int switch1State=1;
int switch2Old=0;
int switch2New;
int switch2State=1;
int switch3Old=0;
int switch3New;
int switch3State=1;
int switch4Old=0;
int switch4New;
int switch4State=1;
int switch5Old=0;
int switch5New;
int switch5State=1;
int switch6Old=0;
int switch6New;
int switch6State=1;
int switch7Old=0;
int switch7New;
int switch7State=1;
int switch8Old=0;
int switch8New;
int switch8State=1;
int switch9Old=0;
int switch9New;
int switch9State=1;
int switch10Old=0;
int switch10New;
int switch10State=1;
int switch11Old=0;
int switch11New;
int switch11State=1;
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
pinMode(redLED,OUTPUT);
pinMode(switch1,INPUT_PULLUP);
pinMode(switch2,INPUT_PULLUP);
pinMode(switch3,INPUT_PULLUP);
pinMode(switch4,INPUT_PULLUP);
pinMode(switch5,INPUT_PULLUP);
pinMode(switch6,INPUT_PULLUP);
pinMode(switch7,INPUT_PULLUP);
pinMode(switch8,INPUT_PULLUP);
pinMode(switch9,INPUT_PULLUP);
pinMode(switch10,INPUT_PULLUP);
pinMode(switch11,INPUT_PULLUP);
Keyboard.begin();
}
void loop() {
switch1New=digitalRead(switch1);
if(switch1Old==1 && switch1New==0){
if(switch1State==1){
digitalWrite(redLED,HIGH);
Keyboard.write("d");
switch1State=0;}
else{digitalWrite(redLED,LOW);
Keyboard.write("d");
switch1State=1;}}
switch1Old=switch1New;
switch2New=digitalRead(switch2);
if(switch2Old==1 && switch2New==0){
if(switch2State==1){
digitalWrite(redLED,HIGH);
Keyboard.write("s");
switch2State=0;}
else{digitalWrite(redLED,LOW);
Keyboard.write("s");
switch2State=1;}}
switch2Old=switch2New;
switch3New=digitalRead(switch3);
if(switch3Old==1 && switch3New==0){
if(switch3State==1){
digitalWrite(redLED,HIGH);
Keyboard.write("a");
switch3State=0;}
else{digitalWrite(redLED,LOW);
Keyboard.write("a");
switch3State=1;}}
switch3Old=switch3New;
switch4New=digitalRead(switch4);
if(switch4Old==1 && switch4New==0){
if(switch4State==1){
digitalWrite(redLED,HIGH);
Keyboard.write("x");
switch4State=0;}
else{digitalWrite(redLED,LOW);
Keyboard.write("x");
switch4State=1;}}
switch4Old=switch4New;
switch5New=digitalRead(switch5);
if(switch5Old==1 && switch5New==0){
if(switch5State==1){
digitalWrite(redLED,HIGH);
Keyboard.write("z");
switch5State=0;}
else{digitalWrite(redLED,LOW);
Keyboard.write("z");
switch5State=1;}}
switch5Old=switch5New;
switch6New=digitalRead(switch6);
if(switch6Old==1 && switch6New==0){
if(switch6State==1){
digitalWrite(redLED,HIGH);
Keyboard.write("c");
switch4State=0;}
else{digitalWrite(redLED,LOW);
Keyboard.write("c");
switch6State=1;}}
switch6Old=switch6New;
switch7New=digitalRead(switch7);
if(switch7Old==1 && switch7New==0){
if(switch7State==1){
digitalWrite(redLED,HIGH);
Keyboard.write("t");
switch7State=0;}
else{digitalWrite(redLED,LOW);
Keyboard.write("t");
switch7State=1;}}
switch7Old=switch7New;
switch8New=digitalRead(switch8);
if(switch8Old==1 && switch8New==0){
if(switch8State==1){
digitalWrite(redLED,HIGH);
Keyboard.write("y");
switch8State=0;}
else{digitalWrite(redLED,LOW);
Keyboard.write("y");
switch8State=1;}}
switch8Old=switch8New;
switch9New=digitalRead(switch9);
if(switch9Old==1 && switch9New==0){
if(switch9State==1){
digitalWrite(redLED,HIGH);
Keyboard.write("u");
switch9State=0;}
else{digitalWrite(redLED,LOW);
Keyboard.write("u");
switch9State=1;}}
switch9Old=switch9New;
switch10New=digitalRead(switch10);
if(switch10Old==1 && switch10New==0){
if(switch10State==1){
digitalWrite(redLED,HIGH);
Keyboard.write("r");
switch10State=0;}
else{digitalWrite(redLED,LOW);
Keyboard.write("r");
switch10State=1;}}
switch10Old=switch10New;
switch11New=digitalRead(switch11);
if(switch11Old==1 && switch11New==0){
if(switch11State==1){
digitalWrite(redLED,HIGH);
Keyboard.write("f");
switch11State=0;}
else{digitalWrite(redLED,LOW);
Keyboard.write("f");
switch11State=1;}}
switch11Old=switch11New;
delay(del1);
}