Boa tarde,
Estou a desenvolver um projecto para uma disciplina da universidade e precisava de ajuda no seguinte:
Tenho de controlar um carro telecomandado por um acelerómetro, basicamente a minha ideia é um arduino a receber x y z de um acelerómetro (MMA7361) e a enviar via um modulo de RF 315MHz para outro arduino instalado num carro e esse arduino controlar os motores do carro.
Para já estou a testar a parte de comando e já fiz o seguinte código e é neste que queria ver se alguém me sabe dizer uma ideia melhor:
#include <AcceleroMMA7361.h>
AcceleroMMA7361 accelero;
//====== INICIAR VARIAVEIS ======
int x;
int y;
int z;
void setup()
{
Serial.begin(9600);
accelero.begin(13, 12, 11, 10, A0, A1, A2);
accelero.setARefVoltage(5);
accelero.setSensitivity(HIGH);
accelero.calibrate();
}
void loop()
{
x = accelero.getXRaw();
y = accelero.getYRaw();
z = accelero.getZRaw();
Serial.print("\nx: ");
Serial.print(x);
Serial.print("\ty: ");
Serial.print(y);
Serial.print("\tz: ");
Serial.print(z);
//-----Comando de velocidade para frente e para tras-----
if (y >=100 && y<280 ) {
Serial.println("\n\ny velocidade -1");
}
if (y >=280 && y<370 ) {
Serial.println("\n\ny Parado");
}
if (y >=370 && y<400) {
Serial.println("\n\ny velocidade 1");
}
if (y >=400 && y<450 ) {
Serial.println("\n\ny velocidade 2");
}
if (y >=450 && y<500 ){
Serial.println("\n\ny velocidade 3");
}
//-----Comando para direita, frente ou esquerda-----
if ( x<300 ) { //virar totalmente a direita
Serial.println("\nx Direita 2");
}
if (x >=300 && x<320 ) { //virar metade a direita
Serial.println("\nx Direita 1");
}
if (x >=320 && x<360 ) { //Segue em frente
Serial.println("\nx Em Frente");
}
if (x >=360 && x<380 ) { //virar metade a esquerda
Serial.println("\nx Esquerda 1");
}
if (x >=380 ) { //virar totalmente a esquerda
Serial.println("\nx Esquerda 2");
}
delay(500); //(delay para dar para analisar a porta serial)
}
Aqui fica um esquema da montagem trocando apenas o acelerómetro pelo MMA7361.
Se alguém poder ajudar agradeço imenso,
Cumprimentos,
José Moura