Salve galera, adaptei esse codigo aqui as minhas necessidades no chat gpt e ele criou essa matriz mas nao estou entendendo a ligaçao alguem que entenda de ligacao em matriz que possa me auxiliar ilustrar por exemplo?
#include <JoystickGTEC.h>
// Aumente o número de botões suportados para 36 botões
Joystick_ Joystick(JOYSTICK_DEFAULT_REPORT_ID, JOYSTICK_TYPE_GAMEPAD,
36, 0,
false, false, false,
false, false, false,
false, false,
false, false, false);
// Defina os pinos para a matriz de botões 6x6
const int rowPins[6] = {2, 3, 4, 5, 6, 7}; // Linhas da matriz
const int colPins[6] = {8, 9, 10, 11, 12, 13}; // Colunas da matriz
// Atualize o array de estados dos botões
int lastButtonState[36] = {0}; // Para 36 botões
void setup() {
// Configurar os pinos das linhas como saídas e os pinos das colunas como entradas
for (int i = 0; i < 6; i++) {
pinMode(rowPins[i], OUTPUT);
digitalWrite(rowPins[i], HIGH); // Inicialmente desativar as linhas
pinMode(colPins[i], INPUT_PULLUP); // Ativar pull-up nas colunas
}
// Configurar pinos D0, D1 e D2
pinMode(0, INPUT_PULLUP);
pinMode(1, INPUT_PULLUP);
pinMode(2, INPUT_PULLUP);
Joystick.begin();
}
void loop() {
// Manter comportamento específico para D0, D1 e D2
for (int index = 0; index < 3; index++) {
int currentButtonState = map(digitalRead(index), HIGH, LOW, LOW, HIGH);
if (currentButtonState != lastButtonState[index]) {
Joystick.pressButton(index);
delay(150);
Joystick.releaseButton(index);
lastButtonState[index] = currentButtonState;
}
}
// Ler a matriz de botões 6x6
for (int row = 0; row < 6; row++) {
digitalWrite(rowPins[row], LOW); // Ativar linha
for (int col = 0; col < 6; col++) {
int index = 3 + (row * 6) + col; // Índice dos botões na matriz
int currentButtonState = map(digitalRead(colPins[col]), HIGH, LOW, LOW, HIGH);
if (currentButtonState != lastButtonState[index]) {
Joystick.setButton(index, currentButtonState);
lastButtonState[index] = currentButtonState;
}
}
digitalWrite(rowPins[row], HIGH); // Desativar linha
}
delay(150);
}
esse é o codigo e essa e a matriz que ele me deu, mas nao acho a identificaçao dos pino no arduino pro micro essa e a matriz
Conexões
- Linhas (L1 a L6):
- Conecte L1 a D6
- Conecte L2 a D7
- Conecte L3 a D8
- Conecte L4 a D9
- Conecte L5 a D10
- Conecte L6 a D11
- Colunas (C1 a C6):
- Conecte C1 a D0 (RX)
- Conecte C2 a D1 (TX)
- Conecte C3 a D2
- Conecte C4 a D3
- Conecte C5 a D4
- Conecte C6 a D5
Montagem da Matriz
Para cada botão da matriz 6x6:
- L1 a L6 serão as linhas.
- C1 a C6 serão as colunas.
As linhas e colunas devem ser conectadas aos pinos do Arduino conforme listado acima. Cada botão será colocado no cruzamento de uma linha e uma coluna.