Mini robot con acelerometro ADXL345 (ARDUINO)

Planos:



Codigo:


#include <Wire.h>
#include <ADXL345.h>

int motor1 = 5; //Se define los pines de los dos motores
int motor2 = 6;

int motor3 = 9;
int motor4 = 10;



ADXL345 adxl; //variable adxl es una instancia de la libreria ADXL345

int x, y, z;
int rawX, rawY, rawZ;
int mappedRawX, mappedRawY;

void setup() {
  Serial.begin(9600);
  adxl.powerOn();
  pinMode(motor1,OUTPUT);
  pinMode(motor2,OUTPUT);
  pinMode(motor3,OUTPUT);
  pinMode(motor4,OUTPUT);
 
}

void loop() {
  adxl.readAccel(&x, &y, &z); // lee los valores del acelerómetro y los almacena en las variables x, y, z

  rawX = x - 7;
  rawY = y - 6;
  rawZ = z + 10;
 
  if (rawX < -255) rawX = -255; else if (rawX > 255) rawX = 255;
  if (rawY < -255) rawY = -255; else if (rawY > 255) rawY = 255;
 
  mappedRawX = map(rawX, -255, 255, 0, 360);
  mappedRawY = map(rawY, -255, 255, 0, 360);
 
  digitalWrite(motor1,mappedRawX);
  delay(200);
  digitalWrite(motor2,mappedRawY);
  delay(200);
  digitalWrite(motor3,mappedRawX);
  delay(200);
  digitalWrite(motor4,mappedRawY);
  delay(200);
 
 
  Serial.print(" mappedRawX = "); Serial.print(mappedRawX); //Imprime en el monitor serial la ubicacion del acelerometro
  Serial.print(" mappedRawY = "); Serial.println(mappedRawY);

}

Suscribete:
https://www.youtube.com/channel/UCXdDujYQCm_4UCJElWHB08g

Comentarios

Publicar un comentario

Entradas populares de este blog