collapse

* Posts Recentes

UPS trovada por KammutierSpule
[Ontem às 18:38]


Odin - A better alternative to C, C++ and maybe Rust. por blabla
[10 de Junho de 2024, 18:59]


Meu novo robô por josecarlos
[10 de Junho de 2024, 12:17]


Transmissão de energia sem fios por dropes
[09 de Junho de 2024, 14:51]


MINI560 - corrente sem carga? por KammutierSpule
[14 de Maio de 2024, 15:09]


Arame de Estendal por SerraCabo
[11 de Maio de 2024, 14:15]


LLM Crawlers por TigPT
[04 de Maio de 2024, 21:40]


Emulador NES em ESP32 por dropes
[04 de Maio de 2024, 14:48]


Circuito Microfone que funcione por almamater
[27 de Abril de 2024, 17:14]


O que é isto ? por SerraCabo
[12 de Abril de 2024, 14:20]

Autor Tópico: Como posso ligar 3 acelerometro MMA7361 em apenas um "Arduino MEGA"  (Lida 3042 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline megamartinelle

  • Mini Robot
  • *
  • Mensagens: 101
Galera gostaria de uma pequena ajuda :D

Meu objetivo é conectar 3 acelerometros MMA7361 no arduino mega para controlar 9 servos. tenho o código para controle de 3 que no caso é apenas um acelerometro. Como posso fazer para controlar os 3 no mesmo arduino?

Código:

#include <Servo.h>

Servo Servo_Y;                               

Servo Servo_X;

Servo Servo_Z;

int Eixo_X,Eixo_Y,Eixo_Z;

int Medicao1[15],Media_X;

int Medicao2[15],Media_Y;

int Medicao3[15],Media_Z;

int i,j,l;

int Pino_Sleep = 8;

void setup()
{
Serial.begin(9600);

pinMode(Pino_Sleep, OUTPUT);

digitalWrite(Pino_Sleep, HIGH);

Servo_Z.attach(11);
Servo_X.attach(10);
Servo_Y.attach(9);

i=0;
j=0;
l=0;
}

void loop()
{

Eixo_X = analogRead(0);

Medicao1=Eixo_X;

Media_X=(Medicao1[0]+Medicao1[1]+Medicao1[2]+Medicao1[3]+Medicao1[4]+Medicao1[5]+Medicao1[6]+Medicao1[7]+Medicao1[8]+Medicao1[9]+Medicao1[10]+Medicao1[11]+Medicao1[12]+Medicao1[13]+Medicao1[14])/15;
i++;

if(i>=15)i=0;
Media_X=map(Media_X,171,499,180,0);

Servo_X.write(Media_X);


Eixo_Y = analogRead(1);

Medicao2[j]=Eixo_Y;


Media_Y=(Medicao2[0]+Medicao2[1]+Medicao2[2]+Medicao2[3]+Medicao2[4]+Medicao2[5]+Medicao2[6]+Medicao2[7]+Medicao2[8]+Medicao2[9]+Medicao2[10]+Medicao2[11]+Medicao2[12]+Medicao2[13]+Medicao2[14])/15;

j++;

if(j>=15)j=0;

Media_Y=map(Media_Y,184,511,180,0);

Servo_Y.write(Media_Y);


Eixo_Z = analogRead(2);

Medicao3[l]=Eixo_Z;


Media_Z=(Medicao2[0]+Medicao2[1]+Medicao2[2]+Medicao2[3]+Medicao2[4]+Medicao2[5]+Medicao2[6]+Medicao2[7]+Medicao2[8]+Medicao2[9]+Medicao2[10]+Medicao2[11]+Medicao2[12]+Medicao2[13]+Medicao2[14])/15;

l++;

if(l>=15)l=0;

Media_Z=map(Media_Z,184,511,180,0);

Servo_Z.write(Media_Z);

Serial.print(" Eixo X: ");
Serial.print(Media_X);

Serial.print(" Eixo Y: ");
Serial.println(Media_Y);

Serial.print(" Eixo Z: ");
Serial.println(Media_Z);
delay(1);
}