Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Igor Tenório

Arduino - programação para cadeira de rodas

Recommended Posts

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Igor Tenório ,

 

Bom, o mínimo para que alguém possa te ajudar é você informar corretamente, pois o estoque de bolas de cristal está zerado no momento.... poste o esquema com ligações e quais são os componentes, e aí sim alguém que entenda de Arduíno pode te ajudar, ok ?

 

Paulo

Compartilhar este post


Link para o post
Compartilhar em outros sites

minha velha e cansada bola de cristal quase zerada meio que entendeu isso...

seu joystick tem 4 saídas e você quer ler cada uma para fazer frente-ré-esquerda-direita

-frente: aciona 2 motores no sentido horário

-ré: os 2 no anti

-esquerda: o da direta no horário

-direita: o da esquerda no horário

Tipo isso?

Ou seu joystick tem saída analógica? Se sim, como é o comportamento dela (com relação ás 4 condições acima)? Joystick com eixo x,y,z nunca vi. Aliás vi nenhum

Considero que vá dominas o lance de pwm, aceleração, velocidade do motor, torque, sobre carga-corrente e afins.

 

Em tempo: arduíno não vai com minha cara por isso nunca me atraiu. Mas 'no fundo no fundo' ele tem algo bom 'por dentro'.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeiro não faça PWM em relé... diminui vida útil, faz um barulho ***** ^^

Fora isso faça um ponte H com outra coisa como algum mosfet de potencia ou darlington com bons dissipadores (tem exemplos na net). Mas se está liso de dinheiro e não sabe montar esses circuitos faça o PWM no relé mesmo...

 

Segundo exiba no serial monitor os valores que você consegue pegar. Não sei com funciona essa tua ponte H já com arduino se tem essa forma de se comunicar com a IDE do arduino ou usa outro software... mas você precisa pegar os dados da leitura analógica e saber a faixa de onde para onde vai a leitura do teu analógico para saber que faixa aplicar e a relacionar ao teu programa.

 

 

 

Em 31/10/2016 às 10:59, Isadora Ferraz disse:

arduíno não vai com minha cara por isso nunca me atraiu. Mas 'no fundo no fundo' ele tem algo bom 'por dentro'.

Sacrilégio!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário






Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×