adk-telemetrie.ino

Arduino Mega ADK (Rev3) · Archivo : adk-telemetrie.ino · Lenguaje : Arduino · Uso : Envoyer des mesures de capteurs vers le téléphone en trames simples

Datos estructurados en vez de chat: la placa envía una línea CSV por segundo (entrada analógica + temperatura aproximada deducida de la referencia interna) a la app Android que traza la curva.

Hardware necesario

Un Arduino Mega ADK Rev3 (ATmega2560 + chip de host USB MAX3421E con puerto USB-A; el pin digital 7 queda reservado para el reset del MAX3421E). 1 teléfono Android + fuente en A0 (potenciómetro recomendado).

Cableado

Cable USB-A → teléfono; potenciómetro en A0 (5 V/GND/curso).

Funcionamiento

Leer la referencia interna del AVR da la tensión de alimentación y de ahí una temperatura aproximada; cada línea con \n es una muestra. Placa « Arduino Mega ADK » en el IDE. Para host USB/ADK, instale la biblioteca USB Host Shield 2.0; no use D7. El puerto USB-A alimenta el accesorio a 5 V.

Para ir más lejos

Añada sensores I2C (BME280) a la trama, o registre en EEPROM cuando el teléfono esté desenchufado.

adk-telemetrie.ino

// Telemetrie ADK : A0 + temperature interne -> trames CSV vers Android.
#include <Max3421e.h>
#include <Usb.h>
#include <AndroidAccessory.h>

AndroidAccessory adk("Arduino", "Mega ADK", "Telemetrie", "1.0", "Fab", "Num");

void setup() {
  Serial.begin(9600);
  adk.Init();
}

void loop() {
  if (adk.isReady()) {
    int a0 = analogRead(A0);
    float vcc = 1100.0 * 1023.0 / analogRead(14); // A14 = bande passante interne
    float temp = (vcc - 500.0) / 10.0;            // approximation 5V
    String trame = String(a0) + "," + String(temp, 1) + "
";
    adk.write(trame.length(), (uint8_t *)trame.c_str());
    Serial.print(trame);
  }
  delay(1000);
}

← Volver a la ficha