HELP zit vastin het project wiring en coding voor buttonbox

Projecten die niet passen in bovenstaande onderwerpen
Berichten: 4
Geregistreerd: 26 Dec 2020, 23:30

HELP zit vastin het project wiring en coding voor buttonbox

Berichtdoor Maverick_1971 » 16 Jan 2021, 13:14

na twee weken klooien is het gelukt om de Arduino Mega2560 door de pc te laten zien als een controller https://i.imgur.com/azudhUQ.jpg
nu heb ik de hulp nodig van mensen die mij verder kunnen helpen bij het schijven van de sketch in het arduino programma en de wiring diagram om dit te realizeren https://i.imgur.com/0cuFvnU.jpg

dit werkt wel als ik de leonardo kies maar die heeft niet genoeg AO/A8 aansluiting etc
https://i.imgur.com/P2xSCII.jpg

heeft iemand misschien een oplossing dit te creeeren

groet John

Advertisement

Berichten: 4064
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: HELP zit vastin het project wiring en coding voor button

Berichtdoor shooter » 16 Jan 2021, 18:55

als je ze in een matrix zet dan heb je er voldoende, zoek maar op keyboard matrix
paul deelen
shooter@home.nl

Berichten: 4
Geregistreerd: 26 Dec 2020, 23:30

Re: HELP zit vastin het project wiring en coding voor button

Berichtdoor Maverick_1971 » 16 Jan 2021, 19:27

klopt maar dan moet ik nog een leo aanschaffen echter hoopte ik dit te doen op de MEga 2560 met deze sketch
maar die is bedoeld voor de LEO of is die om te zitten en of te maken voor de Mega 2560

#include <Keypad.h>
#include <Joystick.h>

//DEFINITIONS
#define ENABLE_PULLUPS
#define NUMBUTTONS 27 //replace "?"with number of buttong you are using
#define NUMROWS 6 //replace "?" with number of rows you have
#define NUMCOLS 7 //replace "?" with number of columns you have

//BUTTON MATRIX
//first change number of rows and columns to match your button matrix,
//then replace all "?" with numbers (starting from 0)
byte buttons[NUMROWS][NUMCOLS] = {
{0,1,2,3,4,5,6},
{7,8,9,10,11,12,13},
{14,15,16,17,18,19},
{20,21},
{22,23},
{24,25,26}

};

struct rotariesdef {
byte pin1;
byte pin2;
int ccwchar;
int cwchar;
volatile unsigned char state;
};

#define DIR_CCW 0x10
#define DIR_CW 0x20
#define R_START 0x0

#ifdef HALF_STEP
#define R_CCW_BEGIN 0x1
#define R_CW_BEGIN 0x2
#define R_START_M 0x3
#define R_CW_BEGIN_M 0x4
#define R_CCW_BEGIN_M 0x5
const unsigned char ttable[6][4] = {
// R_START (00)
{R_START_M, R_CW_BEGIN, R_CCW_BEGIN, R_START},
// R_CCW_BEGIN
{R_START_M | DIR_CCW, R_START, R_CCW_BEGIN, R_START},
// R_CW_BEGIN
{R_START_M | DIR_CW, R_CW_BEGIN, R_START, R_START},
// R_START_M (11)
{R_START_M, R_CCW_BEGIN_M, R_CW_BEGIN_M, R_START},
// R_CW_BEGIN_M
{R_START_M, R_START_M, R_CW_BEGIN_M, R_START | DIR_CW},
// R_CCW_BEGIN_M
{R_START_M, R_CCW_BEGIN_M, R_START_M, R_START | DIR_CCW},
};
#else
#define R_CW_FINAL 0x1
#define R_CW_BEGIN 0x2
#define R_CW_NEXT 0x3
#define R_CCW_BEGIN 0x4
#define R_CCW_FINAL 0x5
#define R_CCW_NEXT 0x6

const unsigned char ttable[7][4] = {
// R_START
{R_START, R_CW_BEGIN, R_CCW_BEGIN, R_START},
// R_CW_FINAL
{R_CW_NEXT, R_START, R_CW_FINAL, R_START | DIR_CW},
// R_CW_BEGIN
{R_CW_NEXT, R_CW_BEGIN, R_START, R_START},
// R_CW_NEXT
{R_CW_NEXT, R_CW_BEGIN, R_CW_FINAL, R_START},
// R_CCW_BEGIN
{R_CCW_NEXT, R_START, R_CCW_BEGIN, R_START},
// R_CCW_FINAL
{R_CCW_NEXT, R_CCW_FINAL, R_START, R_START | DIR_CCW},
// R_CCW_NEXT
{R_CCW_NEXT, R_CCW_FINAL, R_CCW_BEGIN, R_START},
};
#endif

//BUTTON MATRIX PART 2
byte rowPins[NUMROWS] = {0,1,2,3,4,5}; //change "?" to the pins the rows of your button matrix are connected to
byte colPins[NUMCOLS] = {A0,A1,A2,A3,A4,A5,A6}; //change "?" to the pins the rows of your button matrix are connected to

Keypad buttbx = Keypad( makeKeymap(buttons), rowPins, colPins, NUMROWS, NUMCOLS);

//JOYSTICK SETTINGS
Joystick_ Joystick(JOYSTICK_DEFAULT_REPORT_ID,
JOYSTICK_TYPE_JOYSTICK,
32, //number of buttons
0, //number of hat switches
//Set as many axis to "true" as you have potentiometers for
false, // y axis
false, // x axis
true, // z axis
true, // rx axis
true, // ry axis
true, // rz axis
false, // rudder
false, // throttle
false, // accelerator
false, // brake
false); // steering wheel

const int numReadings = 20;

int readings[numReadings]; // the readings from the analog input
int index = 0; // the index of the current reading
int total = 0; // the running total
int currentOutputLevel = 0;

//POTENTIOMETERS PART 1
//add all the axis' which are enabled above
int zAxis_ = 0;
int RxAxis_ = 0;
int RyAxis_ = 0;
int RzAxis_ = 0;


//POTENTIOMETERS PART 2
//Which pins are your potentiometers connected to?
int potentiometerPin1 = A11; //Change "?" to the pin your potentiometer is connected to
int potentiometerPin2 = A10;
int potentiometerPin3 = A9;
int potentiometerPin4 = A8;
const bool initAutoSendState = true;


void setup() {
Joystick.begin();
rotary_init();
for (int thisReading = 0; thisReading < numReadings; thisReading++) {
readings[thisReading] = 0;
}
}

void loop() {

CheckAllButtons();
CheckAllPotentiometers();
}

//POTENTIOMETERS PART 3
//change the details to match teh details above for each potentiometer you are using
void CheckAllPotentiometers(){

//potentiometer 1
currentOutputLevel = getAverageOutput(potentiometerPin1);
zAxis_ = map(currentOutputLevel,0,1023,0,255);
Joystick.setZAxis(zAxis_);

//potentiometer 2
currentOutputLevel = getAverageOutput(potentiometerPin2);
RxAxis_ = map(currentOutputLevel,0,1023,0,255);
Joystick.setRxAxis(RxAxis_);

//potentiometer 3
currentOutputLevel = getAverageOutput(potentiometerPin3);
RyAxis_ = map(currentOutputLevel,0,1023,0,255);
Joystick.setRyAxis(RyAxis_);

//potentiometer 4
currentOutputLevel = getAverageOutput(potentiometerPin4);
RzAxis_ = map(currentOutputLevel,0,1023,0,255);
Joystick.setRzAxis(RzAxis_);

}

int getAverageOutput(int pinToRead){
index = 0;
total = 0;

while (index < numReadings){
readings[index] = analogRead(pinToRead);
total = total + readings[index];
index = index + 1;
//delay (1);
}
return total / numReadings;
}


void CheckAllButtons(void) {
if (buttbx.getKeys())
{
for (int i=0; i<LIST_MAX; i++)
{
if ( buttbx.key[i].stateChanged )
{
switch (buttbx.key[i].kstate) {
case PRESSED:
case HOLD:
Joystick.setButton(buttbx.key[i].kchar, 1);
break;
case RELEASED:
case IDLE:
Joystick.setButton(buttbx.key[i].kchar, 0);
break;
}
}
}
}
}

void rotary_init() {

}
void CheckAllEncoders(void) {
Serial.println("Checking rotaries");
};

Berichten: 4064
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: HELP zit vastin het project wiring en coding voor button

Berichtdoor shooter » 16 Jan 2021, 20:44

dat heeft te maken met de USB poort die zit andere pinnen en andere timing,
paul deelen
shooter@home.nl

Terug naar Overige projecten

Wie is er online?

Gebruikers in dit forum: Google [Bot] en 8 gasten