quarta-feira, 1 de novembro de 2017

Utilizando um acelerômetro com arduino

Código-Fonte:


/*
Módulo / Arduino
X / Pino A0
Y / Pino A1
Z / Pino A2
3.3v / 3.3v
GND / GND
SL / 3.3v
GS / GND
*/

int xp;
int yp;
int zp;

void setup()
{
pinMode(13,OUTPUT); //esq
pinMode(12,OUTPUT); //cima
pinMode(11,OUTPUT); //baixo
pinMode(10,OUTPUT); //dir
pinMode(9,OUTPUT); //G
pinMode(8,OUTPUT); //Alinhado
Serial.begin(9600);
}

void loop()
{
Serial.print("X: ");
xp=analogRead(A0);
Serial.print(xp);

Serial.print("Y: ");
yp=analogRead(A1);
Serial.print(yp);

Serial.print("Z: ");
zp=analogRead(A2);
Serial.println(zp);

  if (xp > 330){ // cima
    digitalWrite(12,HIGH);
    digitalWrite(11,LOW);
  }else if (xp < 320) {
    digitalWrite(11,HIGH);
    digitalWrite(12,LOW);
  }else {
    digitalWrite(11,LOW);
    digitalWrite(12,LOW);
  }
  
  if (yp > 345){ // direita
    digitalWrite(10,HIGH);
    digitalWrite(13,LOW);
  }else if (yp < 325){
    digitalWrite(10,LOW);
    digitalWrite(13,HIGH);
  }else {
    digitalWrite(10,LOW);
    digitalWrite(13,LOW);
  }
  
  
  if (zp > 220){ // gravidade
    digitalWrite(9,HIGH);
  }else {
    digitalWrite(9,LOW);
  }
  
  if (zp < 220 && (yp<335 amp="" yp="">325) && (xp<330 amp="" xp="">320) ){ // estabilizacao
    digitalWrite(9,LOW);
    digitalWrite(10,LOW);
    digitalWrite(11,LOW);
    digitalWrite(12,LOW);
    digitalWrite(13,LOW);
    digitalWrite(8,HIGH);
  }else {
    digitalWrite(8,LOW);
  }
  

}

Nenhum comentário:

Postar um comentário