euroavia-sevilla / curso-c-arduino

Contenido relacionado con el curso de C y Arduino de Euroavia
http://iot.tesla.studio/
1 stars 0 forks source link

Primera prueba sensórica #1

Open alvaromarbla opened 5 years ago

alvaromarbla commented 5 years ago

Hola, Estaba probando los ejemplos que vienen de serie para probar la placa, y mirando en 6.Sensors-ADXL3xx, he tenido algunos problemillas. En concreto sólo he cambiado los pines de referenciado desde donde toma los datos, según vienen escritos en la D1.

// these constants describe the pins. They won't change:
const int groundpin = GND;             // analog input pin 4 -- ground
const int powerpin = 5V;              // analog input pin 5 -- voltage
const int xpin = D4;                  // x-axis of the accelerometer
const int ypin = D4;                  // y-axis
const int zpin = D4;                  // z-axis (only on 3-axis models)

Los pines del giróscopo he puesto todos el d4 porque no sé a qué pin está referenciado cada eje. El programa no compila si lo dejo como está arriba, pero sí lo hace si cambio los dos primeros pines:


const int groundpin = 18;             // analog input pin 4 -- ground
const int powerpin = 19;              // analog input pin 5 -- voltage

En teoría debería escribirme lo que se lee desde las conexiones (pero no sé muy bien dónde). Por último, hay una línea que no he terminado de descifrar.

Serial.begin(9600); Sé que es para determinar la tasa de bits de transmisión, pero no sé si en concreto la línea inicia la comunicación o sólo fija la tasa.

Muchas gracias!!

CieNTi commented 5 years ago

Buenas!

Lo primero es el tipo de sensor usado. Nosotros usamos un MPU6050, que va por I2C, mientras que tu intentas leer 3 canales analogicos de otro sensor totalmente diferente:

ADXL3xx schematic

Como ves, se espera que cada eje genere una tensión que se leerá de forma independiente. Nuestro caso sin embargo es:

GY-521 schematic

Respecto a la linea de Serial que comentas, toda la información referente a eso tienes que buscarla en la libreria de ESP8266 primero, y si no lo encuentras, en la doc general de Arduino.

Concretamente lo tuyo está en: ESP8266 Serial

alvaromarbla commented 5 years ago

Es independiente entonces si le pongo el pin de referencia el SDA o el SCL?

Y para la tierra y el voltaje, cómo se denominan los pines?

CieNTi commented 5 years ago

O tienes el sensor ADXL3xx pinchado/soldado, o ese método no es compatible. ADXL3xx es por lecturas directas desde canales analogicos (medir tensión, analógica, y pasarlo a un valor digital para procesarlo despues) mientras que el nuestro, el MPU6050, funciona digitalmente a traves de I2C.

Visto asi, no veo la relación de SDA y SCL con referencia, tierra y voltaje, ya que al ser SDA y SCL digitales, sus referencias internas ya las pone el chip, y sólo debes preocuparte de que tengan resistencias de pull-up. El resto es configurar y usar el periférico encargado del I2C (en Arduino se controla mediante Wire).