// #######################################################
#define maxTeclas 20
// #######################################################
int switchPinB = 41;
int switchPinA = 43;
int switchPinC = 45;
// ——————————————————-
int switchPinE = 47;
int switchPinX = 49;
// ——————————————————-
int delayToque = 300;
// #######################################################
char sequencia[maxTeclas];
void leTeclas(){
// ——————————————————-
int aceitaTeclas = true;
int contaTeclas=0;
sequencia[contaTeclas]=0;
Serial.println(“Nova sequencia”);
do{
// TECLA A
if(digitalRead(switchPinA) == LOW) {
Serial.print(“A”);
sequencia[contaTeclas]=’A’;
contaTeclas++;
sequencia[contaTeclas]=0;
delay(delayToque);
}
// TECLA B
if(digitalRead(switchPinB) == LOW) {
Serial.print(“B”);
sequencia[contaTeclas]=’B’;
contaTeclas++;
sequencia[contaTeclas]=0;
delay(delayToque);
}
// TECLA C
if(digitalRead(switchPinC) == LOW) {
Serial.print(“C”);
sequencia[contaTeclas]=’C’;
contaTeclas++;
sequencia[contaTeclas]=0;
delay(delayToque);
}
// TECLA ENTER
if(digitalRead(switchPinE) == LOW) {
Serial.println(“”);
Serial.println(“Enter”);
Serial.println(“”);
delay(delayToque);
aceitaTeclas=false;
}
// TECLA X – ESC
if(digitalRead(switchPinX) == LOW) {
Serial.println(“”);
Serial.println(“X – ESC”);
Serial.println(“”);
Serial.println(“Nova sequencia LIMPA”);
aceitaTeclas = true;
contaTeclas=0;
sequencia[contaTeclas]=0;
delay(delayToque);
}
// MAXIMO DE TECLAS LIDO
if(contaTeclas==maxTeclas){
aceitaTeclas=false;
}
}while(aceitaTeclas==true);
}
// #######################################################
void imprimeSequencia(){
// ——————————————————-
int contaTeclas=0;
contaTeclas = strlen(sequencia);
Serial.print(“Sequencia gravada com “);
Serial.print(contaTeclas);
Serial.println(” instrucoes.”);
Serial.print(“## “);
for(int i=0; i<contaTeclas;i++){
Serial.print(sequencia[i]);
if(i<contaTeclas-1) {
Serial.print(“,”);
}
}
Serial.println(” ##”);
Serial.println(“”);
}
// #######################################################
void setup() {
// ——————————————————-
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(switchPinB, INPUT_PULLUP);
pinMode(switchPinA, INPUT_PULLUP);
pinMode(switchPinC, INPUT_PULLUP);
pinMode(switchPinE, INPUT_PULLUP);
pinMode(switchPinX, INPUT_PULLUP);
}
// #######################################################
void loop() {
// ——————————————————-
// put your main code here, to run repeatedly:
leTeclas();
// executa sequencia
imprimeSequencia();
}