Mini robot con acelerometro ADXL345 (ARDUINO)
Planos:
Codigo:
#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
Hay un error
ResponderEliminar