Bienvenido, Invitado
Nombre de Usuario: Contraseña: Recordarme
  • Página:
  • 1

TEMA:

arduino esp32 macro deck problema de pins o de porgramacion 1 mes 4 semanas antes #2786

hola buenas yo no conozco del todo arduino no se sobre que pines son para hacer botones o cosas asi pero aun asi hize que me funcionara hasta cierto punto
solo puedo meter 4 teclados con 1 macro que me cambia lo basico y 3 botones como next, play; pero en los otros botones quiero agregar cosas basicas para agregarlo en obs
pero si agrego los otros botones se queda en bucle el boton que alla asignado.

www.mediafire.com/file/k2pj2okzc6jjotl/teclado-bt.zip/file

#include <Arduino.h>
#include <analogWrite.h>
//analogWrite no es una librería estándar.
//Descárgala desde el menú "Herramientas --> Administrar Bibliotecas buscando
//esp32 analogwrite

#include <BleKeyboard.h>
//BleKeyboard no es una librería estándar.
//Descárgala desde github.com/T-vK/ESP32-BLE-Keyboard/releases y añade el ZIP desde
//el menú "Programa --> Incluir librería --> Añadir biblioteca .ZIP"

//Establecemos el nombre que tendrá nuestro teclado en la red Bluetooth, el desarrollador y el porcentaje de batería inicial
BleKeyboard bleKeyboard("covertsun", "eduarth_solis", 100);

//Teclas || El número representa el PIN donde está conectada la tecla.
const int a_key = 13;
const int b_key = 12;
const int c_key = 14;
const int d_key = 27;
const int e_key = 34:
const int f_key = 15;
const int g_key = 2;

//Encoder || El número representa los pines usados para conectar el encoder.
#define OUTPUT_B 4
#define OUTPUT_A 26
#define BUTTON 25
#define PIN_5V 33
#define PIN_GND 32

//LED RGB || El número representa los pines usados para conectar el diodo RGB de cuatro patas.
int rojo = 19;
int verde = 18;
int azul = 5;

//Variables de control
bool aState;
bool aLastState;
bool lastButtonState = 0;
int programa = 1; //1 = Windows, 2 = Photoshop

void setup(){

Serial.begin(9600);

//TECLAS || NO MODIFICAR
pinMode(a_key, INPUT_PULLUP);
digitalWrite(a_key, HIGH);

pinMode(b_key, INPUT_PULLUP);
digitalWrite(b_key, HIGH);

pinMode(c_key, INPUT_PULLUP);
digitalWrite(c_key, HIGH);

pinMode(d_key, INPUT_PULLUP);
digitalWrite(d_key, HIGH);

pinMode(e_key, INPUT_PULLUP);
digitalWrite(e_key, HIGH);

pinMode(f_key, INPUT_PULLUP);
digitalWrite(f_key, HIGH);

pinMode(g_key, INPUT_PULLUP);
digitalWrite(g_key, HIGH);

//ENCODER || NO MODIFICAR
pinMode(OUTPUT_A, INPUT);
pinMode(OUTPUT_B, INPUT);
pinMode(BUTTON, INPUT_PULLUP);
pinMode(PIN_5V, OUTPUT);
digitalWrite(PIN_5V, HIGH);
pinMode(PIN_GND, OUTPUT);
digitalWrite(PIN_GND, LOW);
aLastState = digitalRead(OUTPUT_A);

//LED RGB || NO MODIFICAR
pinMode(rojo, OUTPUT);
pinMode(verde, OUTPUT);
pinMode(azul, OUTPUT);

bleKeyboard.begin();

setColor(0, 0, 255); //Color de Windows para el led

}

long lastClickTime = 0;

void loop(){
if (bleKeyboard.isConnected()){

// SETEAMOS EL PROGRAMA QUE QUEREMOS UTILIZAR CON LA CUARTA TECLA
if(digitalRead(d_key)==LOW){
if(programa == 1){ //Windows
setColor(255, 0, 0);
programa = 2;
}else{//Photoshop
setColor(0, 0, 255);
programa = 1;
}
delay(150);
bleKeyboard.releaseAll();
}

//Primera tecla
if(digitalRead(a_key)==LOW){
if(programa == 1){//Windows
bleKeyboard.press(KEY_MEDIA_PREVIOUS_TRACK);
}else{//Photoshop
bleKeyboard.press('v');
}
delay(150);
bleKeyboard.releaseAll();
}

//Segunda tecla
if(digitalRead(b_key)==LOW){
if(programa == 1){//Windows
bleKeyboard.press(KEY_MEDIA_PLAY_PAUSE);
}else{//Photoshop
bleKeyboard.press('r');
}
delay(150);
bleKeyboard.releaseAll();
}

//Tercera tecla
if(digitalRead(c_key)==LOW){
if (programa == 1){//Windows
bleKeyboard.press(KEY_MEDIA_NEXT_TRACK);
}else{//Photoshop
bleKeyboard.press(KEY_LEFT_CTRL);
bleKeyboard.press('s');
}
delay(150);
bleKeyboard.releaseAll();
}
//cuarto tecla
if(digitalRead(e_key)==LOW){
if(programa == 1){//Windows
bleKeyboard.press(KEY_RIGHT_CTRL);
delay(50);
bleKeyboard.press(KEY_F5);
}else{//Photoshop
bleKeyboard.press(KEY_LEFT_ALT);
bleKeyboard.press(KEY_LEFT_CTRL);
bleKeyboard.press('z');
}
delay(150);
bleKeyboard.releaseAll();
}
//quinto tecla
if(digitalRead(f_key)==LOW){
if (programa == 1){//Windows
bleKeyboard.press(KEY_HOME);
}else{//Photoshop
bleKeyboard.press(KEY_LEFT_CTRL);
bleKeyboard.press('z');
}
delay(150);
bleKeyboard.releaseAll();
}
//sexto tecla
if(digitalRead(g_key)==LOW){
if (programa == 1){//Windows
bleKeyboard.press(KEY_END);
}else{//Photoshop
bleKeyboard.press(KEY_LEFT_SHIFT);
bleKeyboard.press(KEY_LEFT_CTRL);
bleKeyboard.press('s');
}
delay(150);
bleKeyboard.releaseAll();
}
//ENCODER
if (millis() - lastClickTime > 1000){
aState = digitalRead(OUTPUT_B);

if (aState != aLastState){
if (digitalRead(OUTPUT_A) != aState){
//IZQUIERDA
switch (programa){
case 1: //Windows
bleKeyboard.press(KEY_MEDIA_VOLUME_DOWN);
break;
case 2: //Photoshop - Zoom out
bleKeyboard.press(KEY_LEFT_CTRL);
bleKeyboard.press(47);
delay(10);
break;
}
}else{
//DERECHA
switch (programa){
case 1: //Windows
bleKeyboard.press(KEY_MEDIA_VOLUME_UP);
break;
case 2: //Photoshop - Zoom in
bleKeyboard.press(KEY_LEFT_CTRL);
bleKeyboard.press(93);
delay(10);
break;
}
}
bleKeyboard.releaseAll();
aLastState = aState;
}

if (digitalRead(BUTTON) == LOW){
if (lastButtonState == HIGH){
//BOTÓN
switch (programa){
case 1: //Windows
bleKeyboard.press(KEY_MEDIA_MUTE);
break;
case 2: //Photoshop - Guardar
bleKeyboard.press(KEY_LEFT_CTRL);
bleKeyboard.press('s');
delay(100);
break;
}
bleKeyboard.releaseAll();
lastClickTime = millis();
}
lastButtonState = LOW;
} else {
lastButtonState = HIGH;
}
}
//FIN DEL ENCODER

}
}

void setColor(int red, int green, int blue){
analogWrite(rojo, red);
analogWrite(verde, green);
analogWrite(azul, blue);
}

Por favor, Identificarse o Crear cuenta para unirse a la conversación.

arduino esp32 macro deck problema de pins o de porgramacion 1 mes 4 semanas antes #2787

El problema que veo yo es que utilizas una libreria no estandar. Hay que famiiarizarse con esa librerias para saber si el problema es tema de la librerias o de la programacion.
Como no es un tema de librerias estandar, se va complicar la cosa, y yo personalmente no tengo tiempo para dedicarle a el funcionamiento de esta librerias y del programa.
Esperemos que alguien este interesado en este proyecto y te eche una mano.
El siguiente usuario dijo gracias: eduarth solis

Por favor, Identificarse o Crear cuenta para unirse a la conversación.

Última Edición: por Jose Luis.
  • Página:
  • 1
Tiempo de carga de la página: 0.118 segundos
Gracias a Foro Kunena