Neste Projeto Bacana vamos construir um teclado de atalhos para o OBS ou outros softwares, super simples de construir
Materiais:
- Arduino Leonardo
- Botões push button
- Fios
- Cabo USB
- Caixa para acabamento
Para Comprar
Arduino Leonardo
https://produto.mercadolivre.com.br/MLB-1785748973-compativel-arduino-leonardo-r3-rev3-atmega32u4-cabo-usb-_JM
Jumpers
https://produto.mercadolivre.com.br/MLB-1881737043-140-jumpers-rigidos-coloridos-protoboardarduinorobotica-_JM
Botões push button
https://produto.mercadolivre.com.br/MLB-1002274543-kit-25-push-button-chave-tactil-com-capa-arduino-_JM
Códigos usados no vídeo:
/* *************************
* Projeto Bacana - 09/2021
* www.projetobacana.com.br
* Júlio Vansan Gonçalves
*
* https://www.arduino.cc/reference/en/language/functions/usb/keyboard/
*
* *************************/
#include "Keyboard.h"
const int LED=13;
const int bt01=7;
const int bt02=8;
const int bt03=9;
const int bt04=10;
const int bt05=11;
const int bt06=12;
void setup() {
Serial.begin(9600); // Habilita a comunicação serial
pinMode(LED,OUTPUT);
pinMode(bt01,INPUT_PULLUP);
pinMode(bt02,INPUT_PULLUP);
pinMode(bt03,INPUT_PULLUP);
pinMode(bt04,INPUT_PULLUP);
pinMode(bt05,INPUT_PULLUP);
pinMode(bt06,INPUT_PULLUP);
Keyboard.begin();
Serial.println("Iniciando");
}
void loop() {
if (digitalRead(bt01) == LOW) {
enviaMacro('1',bt01);
}//Botão 1
if (digitalRead(bt02) == LOW) {
enviaMacro('2',bt02);
}//Botão 2
if (digitalRead(bt03) == LOW) {
enviaMacro('3',bt03);
}//Botão 3
if (digitalRead(bt04) == LOW) {
enviaMacro('4',bt04);
}//Botão 4
if (digitalRead(bt05) == LOW) {
enviaMacro('5',bt05);
}//Botão 5
if (digitalRead(bt06) == LOW) {
enviaMacro(']',bt06);
}//Botão 6
delay(30);
}//loop
void enviaMacro(char teclaFuncao, int porta){
digitalWrite(LED,HIGH);
Keyboard.press(KEY_LEFT_CTRL);
Keyboard.press(KEY_LEFT_SHIFT);
Keyboard.press(teclaFuncao);
delay(100);
Keyboard.releaseAll();
Serial.print(teclaFuncao);
Serial.println(" Enviada");
while(digitalRead(porta) == LOW) {
delay(30);
}
digitalWrite(LED,LOW);
}//enviaMacro
Versão Final
/* *************************
* Projeto Bacana - 09/2021
* www.projetobacana.com.br
* Júlio Vansan Gonçalves
*
* https://www.arduino.cc/reference/en/language/functions/usb/keyboard/
*
* ************************
*/
#include "Keyboard.h"
const int LED=13;
const int bt01=8;
const int bt02=A3;
const int bt03=A4;
const int bt04=A5;
const int bt05=9;
const int bt06=A2;
const int bt07=10;
const int bt08=A1;
const int bt09=11;
const int bt10=12;
const int bt11=A0;
void setup() {
Serial.begin(9600); // Habilita a comunicação serial
pinMode(LED,OUTPUT);
pinMode(bt01,INPUT_PULLUP);
pinMode(bt02,INPUT_PULLUP);
pinMode(bt03,INPUT_PULLUP);
pinMode(bt04,INPUT_PULLUP);
pinMode(bt05,INPUT_PULLUP);
pinMode(bt06,INPUT_PULLUP);
pinMode(bt07,INPUT_PULLUP);
pinMode(bt08,INPUT_PULLUP);
pinMode(bt09,INPUT_PULLUP);
pinMode(bt10,INPUT_PULLUP);
pinMode(bt11,INPUT_PULLUP);
Keyboard.begin();
Serial.println("Iniciando");
}
void loop() {
if (digitalRead(bt01) == LOW) {
enviaMacro('8',bt01);
}//Botão 1
if (digitalRead(bt02) == LOW) {
enviaMacro('6',bt02);
}//Botão 2
if (digitalRead(bt03) == LOW) {
enviaMacro('3',bt03);
}//Botão 3
if (digitalRead(bt04) == LOW) {
enviaMacro('1',bt04);
}//Botão 4
if (digitalRead(bt05) == LOW) {
enviaMacro('9',bt05);
}//Botão 5
if (digitalRead(bt06) == LOW) {
enviaMacro('7',bt06);
}//Botão 6
if (digitalRead(bt07) == LOW) {
enviaMacro('4',bt07);
}//Botão 7
if (digitalRead(bt08) == LOW) {
enviaMacro('2',bt08);
}//Botão 8
if (digitalRead(bt09) == LOW) {
Serial.println("ctrl_C Enviado");
digitalWrite(LED,HIGH);
Keyboard.press(KEY_LEFT_CTRL);
Keyboard.press('c');
delay(100);
Keyboard.releaseAll();
while(digitalRead(bt09) == LOW) {
delay(50);
}
digitalWrite(LED,LOW);
}//Botão 9
if (digitalRead(bt10) == LOW) {
Serial.println("ctrl_V Enviado");
digitalWrite(LED,HIGH);
Keyboard.press(KEY_LEFT_CTRL);
Keyboard.press('v');
delay(100);
Keyboard.releaseAll();
while(digitalRead(bt10) == LOW) {
delay(50);
}
digitalWrite(LED,LOW);
}//Botão 10
if (digitalRead(bt11) == LOW) {
enviaMacro(']',bt11);
}//Botão 11
delay(30);
}//loop
void enviaMacro(char teclaFuncao, int porta){
digitalWrite(LED,HIGH);
//Keyboard.write(teclaFuncao);
Keyboard.press(KEY_LEFT_CTRL);
Keyboard.press(KEY_LEFT_SHIFT);
// Keyboard.press(KEY_LEFT_ALT);
Keyboard.press(teclaFuncao);
delay(100);
Keyboard.releaseAll();
Serial.print(teclaFuncao);
Serial.println(" Enviada");
while(digitalRead(porta) == LOW) {
delay(30);
}
digitalWrite(LED,LOW);
}//enviaMacro
Link Canal do Youtube da Igreja Projeto 4
https://www.youtube.com/c/IgrejaProjeto4
—
Curta, compartilhe e inscreva-se para ficar atualizado com os nossos conteúdos!
Para saber mais sobre o Canal Projeto Bacana:
E-mail: contato@projetobacana.com.br
Site: https://www.projetobacana.com.br/
Facebook: https://www.facebook.com/projetobacana.com.br
Instagram: https://www.instagram.com/projetobacana.com.br/
Youtube: https://www.youtube.com/channel/UC0e1bfaL0-gnAP2KQA5vxqQ