Olá, meu nome é Igor Tenório e preciso de uma possível ajuda de vocês.
Faço curso técnico e tenho um projeto de uma adaptação para cadeiras de rodas. No projeto tenho que fazer o controle de 2 motores através de PWM, comprei uma ponte H que vem com um microcontrolador do Arduíno uno já embutido, em seu manual veio com uma programação para teste porém não estou conseguindo fazer o controle dos motores com Joystick, o máximo que eu consegui implantar na programação foi fazer a leitura de apenas uma parte do Eixo X e Y do Joystick, porém, eu preciso de todos os lados.
Segue abaixo a programação usada até agora.
/*
AFSmartBTN Motor Control Board
AFSmartBTN (R_EN), 4 (L_EN), 7 (VCC) to Arduino 5V pin
AFSmartBTN (GND) to Arduino GND
IBT-2 pins 5 (R_IS) and 6 (L_IS) not connected
*/
#include <LiquidCrystal.h> //Carrega a biblioteca LCD
int RPWM_Output = 5; // Arduino PWM output pin 5; connect to IBT-2 pin 1 (RPWM)
int LPWM_Output = 6; // Arduino PWM output pin 6; connect to IBT-2 pin 2 (LPWM)
int RPWM_Output_MOT2 = 10; // Arduino PWM output pin 5; connect to IBT-2 pin 1 (RPWM)
int LPWM_Output_MOT2 = 11; // Arduino PWM output pin 6; connect to IBT-2 pin 2 (LPWM)
int buttonPin = 12;
int LedStatus = 13;
int eixoX = 3;
int eixoY = 4;
int eixoZ = 1;
int val_x; //Armazena o valor do eixo X
int val_y; //Armazena o valor do eixo Y
// variables will change:
int buttonState =0 ; // ESQUERDA
int buttonStateDir = 0; // DIREITA
int valJoy;
void setup()
{
pinMode(RPWM_Output, OUTPUT);
pinMode(LPWM_Output, OUTPUT);
pinMode(RPWM_Output_MOT2, OUTPUT);
pinMode(LPWM_Output_MOT2, OUTPUT);
pinMode(LedStatus, OUTPUT);
pinMode(buttonPin, INPUT);
}
void loop()
{
//int sensorValue = analogRead(SENSOR_PIN);
int reversePWM = 2300;
int forwardPWM = 2300;
// sensor value is in the range 0 to 1023
// the lower half of it we use for reverse rotation; the upper half for forward rotation
//ESQUERDA (FRENTE)
buttonState = digitalRead(eixoY);
if(buttonState == HIGH)
{
digitalWrite (LedStatus, LOW);
analogWrite(LPWM_Output_MOT2, 0);
analogWrite(RPWM_Output_MOT2, 0);
analogWrite(LPWM_Output, 0);
analogWrite(RPWM_Output, 0);
}
else if(buttonState == LOW)
{
digitalWrite (LedStatus, HIGH);
analogWrite(LPWM_Output, reversePWM);
analogWrite(RPWM_Output, 0);
analogWrite(LPWM_Output_MOT2, 0);
analogWrite(RPWM_Output_MOT2, reversePWM);
}
// sensor value is in the range 0 to 1023
// the lower half of it we use for reverse rotation; the upper half for forward rotation
//DIREITA (RÉ)
buttonStateDir = digitalRead(eixoX);
if(buttonStateDir == HIGH)
{
digitalWrite (LedStatus, LOW);
analogWrite(LPWM_Output_MOT2, 0);
analogWrite(RPWM_Output_MOT2, 0);
analogWrite(LPWM_Output, 0);
analogWrite(RPWM_Output, 0);
}
else if(buttonStateDir == LOW)
{
digitalWrite (LedStatus, HIGH);
analogWrite(LPWM_Output, 0);
analogWrite(RPWM_Output, forwardPWM);
analogWrite(LPWM_Output_MOT2, forwardPWM);
analogWrite(RPWM_Output_MOT2, 0);
}
}
Se tiver como me ajudar eu agradeceria e muito.