Bom dia! Sou novato em programação com Arduino e estou tendo dificuldades com meu projeto de TCC.
Estou construindo um ROV onde os motores serão controlados por joysticks por um Arduíno UNO e este irá receber dados de sensores do ROV que terá um Arduíno MEGA. A comunicação será através da porta serial e é com essa comunicação que estou tendo dificuldades.
Até o momento consegui fazer o controle de apenas um motor e não estou conseguindo controlar os demais. Um amigo que tem um conhecimento básico me disse que poderia fazer usando um array, assim escrevi a programação do transmissor mas não consegui nada além disso.
Se alguém puder me ajudar com esse problema, agradeço desde já.
Abaixo está a programação do transmissor e do receptor, respectivamente e em terceiro a provável programação de um array do transmissor.
--------------------------------------------------------------------------------
// transmissor
int joystick_1_y;
void setup() {
Serial.begin(19200); // habilita comunicção serial
}
void loop() {
// leitura joystick movimentação frente/trás
joystick_1_y = (analogRead(A0) / 4); // lê o pino analógico A0 e mapeia os valores para 0 - 255
Serial.write(joystick_1_y); // envia o valor via serial em modo binário
}
--------------------------------------------------------------------------------
// receptor
int mov_frontal = 2;
int mov_reverso = 3;
int j_1 = 0;
int val_1;
byte inc_1;
void setup() {
Serial.begin(19200); // habilita comunicação serial
pinMode(mov_frontal, OUTPUT); // declara o pino 2 como saída
pinMode(mov_reverso, OUTPUT); // declara o pino 3 como saída
Serial.flush(); // limpa o buffer
}
void loop() {
if(Serial.available()) { // se há bits vindo da porta serial
inc_1 = Serial.read(); // seta o valor para a variável val_1
val_1 = map(inc_1, 0, 255, 0, 1023);
j_1 = val_1 - 512;
j_1 = abs(j_1);
}
if(j_1 >= 510) {
j_1 = 510;
}
if(j_1 <= 200 && j_1 > 20) {
j_1 = 200;
}
if(j_1 <= 20) {
j_1 = 0;
}
if(val_1 > 500) {
analogWrite(mov_frontal, j_1/6);
analogWrite(mov_reverso, j_1/2);
}
if(val_1 < 500) {
analogWrite(mov_frontal, j_1/2);
analogWrite(mov_reverso, j_1/6);
}
if(val_1 <= 520 && val_1 >= 510) {
analogWrite(mov_frontal, 0);
}
}
--------------------------------------------------------------------------------
// transmissor com Array
int joystick_1_y;
int joystick_1_x;
int myArray[2];
unsigned int frente_tras;
unsigned int rotacao;
void setup() {
Serial.begin(19200); // habilita comunicção serial
}
void loop() {
joy_1_y();
myArray[0] = frente_tras;
joy_1_x();
myArray[1] = rotacao;
for(unsigned int i = 0; i < 1; i++) {
Serial.write(myArray[i]);
}
}
int joy_1_y() {
// leitura joystick movimentação frente/trás
joystick_1_y = (analogRead(A0) / 4); // lê o pino analógico A0 e mapeia os valores para 0 - 255
Serial.write(joystick_1_y); // envia o valor via serial em modo binário
}
int joy_1_x() {
// brilho da luz
joystick_1_x = (analogRead(A1)) / 4; // lê o pino analógico A1 e mapeia os valores para 0 - 255
Serial.println(joystick_1_x); // envia o valor via serial em modo binário
}
Tags:
Sr HM, bom dia,
Gostaria de ajudar, mas para facilitar, que tal postar um desenho doa seu projeto.
Rui
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por