collapse

* Posts Recentes

Amplificador - Rockboard HA 1 In-Ear por almamater
[Ontem às 19:13]


O que é isto ? por KammutierSpule
[26 de Março de 2024, 19:35]


Bateria - Portátil por almamater
[25 de Março de 2024, 22:14]


Emulador NES em ESP32 por dropes
[13 de Março de 2024, 21:19]


Escolher Osciloscópio por jm_araujo
[06 de Fevereiro de 2024, 23:07]


TP4056 - Dúvida por dropes
[31 de Janeiro de 2024, 14:13]


Leitura de dados por Porta Serie por jm_araujo
[22 de Janeiro de 2024, 14:00]


Distancia Cabo por jm_araujo
[08 de Janeiro de 2024, 16:30]


Meu novo robô por josecarlos
[06 de Janeiro de 2024, 16:46]


Laser Engraver - Alguém tem? por almamater
[16 de Dezembro de 2023, 14:23]

Autor Tópico: Como posso ligar 3 acelerometro MMA7361 em apenas um "Arduino MEGA"  (Lida 2910 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);
}