Paste
Copy
Cut
Options

¡Tu solución está lista!

Nuestra ayuda de expertos desglosó tu problema en una solución confiable y fácil de entender.

Mira la respuesta
  • Pregunta: necesito ayuda para el código de arduino, cuando lo compilo, muestra un error al compilar en arduino nano, necesito ejecutar esto en el nano gracias aqui esta mi codigo #incluir <RTClib.h> #incluir <SD.h> #incluir <SPI.h> #include <Cable.h> #incluye "MS5837.h" #include "Cable.h" #incluye "MPU9250.h" // un objeto MPU9250 con el sensor MPU-9250 en el bus I2C 0

    necesito ayuda para el código de arduino, cuando lo compilo, muestra un error al compilar en arduino nano, necesito ejecutar esto en el nano

    gracias aqui esta mi codigo

    #incluir <RTClib.h>
    #incluir <SD.h>
    #incluir <SPI.h>
    #include <Cable.h>
    #incluye "MS5837.h"
    #include "Cable.h"
    #incluye "MPU9250.h"

    // un objeto MPU9250 con el sensor MPU-9250 en el bus I2C 0 con dirección 0x68
    MPU9250 IMU (Cable, 0x68);
    estado int;
    #define ledPin 13
    #define wakePin 2
    RTC_DS3231 rtc;
    #define DS3231_I2C_ADDRESS 0x68
    // Convertir números decimales normales a decimal codificado en binario
    byte decToBcd(valor byte){
    retorno ((valor/10*16) + (valor%10));
    }
    // Convertir decimal codificado en binario a números decimales normales
    byte bcdToDec(valor byte){
    retorno ((valor/16*10) + (valor%16));
    }

    constante int cs=10;
    const int MOSIpin=11;
    const int MISOpin=12;
    byte Indicador de alarma=0;
    byte ledStatus=1;
    sonda MS5837;
    minutos largos sin firmar = 60000;

    Archivo sensorArchivo;

    configuración vacía () {

    Serial.begin(9600);

    Serial.println("Iniciando");

    Alambre.begin();
    Serial.print("Inicializando tarjeta...");
    // asegúrese de que el pin de selección de chip predeterminado se declare SALIDA

    pinMode(wakePin,ENTRADA);
    pinMode (ledPin, SALIDA);
    escritura digital (pin led, ALTO);

    // ver si la tarjeta está presente
    si (!SD.begin(cs))
    {
    Serial.println("La tarjeta no pudo inicializarse o no está presente");

    devolver;
    }
    Serial.println("tarjeta inicializada.");

    // abre el archivo llamado Hellofile.txt

    Archivo sensorFile = SD.open("Hola.txt");

    // si el archivo está disponible, lee el archivo
    si (archivosensor)
    {
    while (sensorFile.disponible())
    {
    Serial.write(sensorFile.read());
    }
    archivosensor.close();
    }
    // si el archivo no se puede abrir dar informe de error
    demás {
    Serial.println("Error al abrir el archivo de texto");
    }

    rtc.begin();
    rtc.adjust(FechaHora(__FECHA__, __HORA__));


    sensor.setModel(MS5837::MS5837_02BA);
    sensor.init();

    sensor.setFluidDensity(997); // kg/m^3 (997 agua dulce, 1029 para agua de mar)

    // establecer el tiempo inicial aquí:
    // DS3231 segundos, minutos, horas, día, fecha, mes, año
    establecerDS3231hora(30,42,16,5,13,10,16);
    }
    void setDS3231time(byte segundo, byte minuto, byte hora, byte dia de la semana, byte
    díaDelMes, byte mes, byte año){
    // establece los datos de fecha y hora en DS3231
    Wire.beginTransmission(DS3231_I2C_ADDRESS);
    Alambre.escribir(0); // establecer la próxima entrada para comenzar en el registro de segundos
    Wire.write(decToBcd(segundo)); // establecer segundos
    Wire.write(decToBcd(minuto)); // establecer minutos
    Wire.write(decToBcd(hora)); // establecer horas
    Wire.write(decToBcd(dayOfWeek)); // establece el día de la semana (1=domingo, 7=sábado)
    Wire.write(decToBcd(dayOfMonth)); // establecer fecha (1 a 31)
    Wire.write(decToBcd(mes)); // establecer mes
    Wire.write(decToBcd(año)); // establece el año (0 a 99)
    Cable.endTransmission();
    }
    void readDS3231time(byte *segundo,
    byte *minuto,
    byte *hora,
    byte *día de la semana,
    byte *díaDelMes,
    byte *mes,
    byte *año){
    Wire.beginTransmission(DS3231_I2C_ADDRESS);
    Alambre.escribir(0); // establece el puntero de registro DS3231 en 00h
    Cable.endTransmission();
    Wire.requestFrom(DS3231_I2C_ADDRESS, 7);
    // solicita siete bytes de datos de DS3231 a partir del registro 00h
    *segundo = bcdToDec(Wire.read() & 0x7f);
    *minuto = bcdToDec(Wire.read());
    *hora = bcdToDec(Wire.read() & 0x3f);
    *dayOfWeek = bcdToDec(Wire.read());
    *dayOfMonth = bcdToDec(Wire.read());
    *mes = bcdToDec(Wire.read());
    *año = bcdToDec(Wire.read());
    }
    void mostrarTiempo(){
    byte segundo, minuto, hora, día de la semana, día del mes, mes, año;
    // recuperar datos de DS3231
    readDS3231hora(&segundo, &minuto, &hora, &día de la semana, &díadelmes, &mes,
    &año);
    // enviarlo al monitor serial
    Serial.print(hora, DIC);
    // convierte la variable de byte en un número decimal cuando se muestra
    Serial.imprimir(":");
    si (minuto <10){
    Serial.imprimir("0");
    }
    Serial.print(minuto, DEC);
    Serial.imprimir(":");
    si (segundo <10){
    Serial.imprimir("0");
    }
    Serial.print(segundo, DEC);
    Serie.imprimir(" ");
    Serial.print(díaDelMes, DIC);
    Serial.imprimir("/");
    Serial.print(mes, DIC);
    Serial.imprimir("/");
    Serial.print(año, DIC);
    Serial.print(" Día de la semana: ");
    cambiar (día de la semana) {
    caso 1:
    Serial.println("Domingo");
    romper;
    caso 2:
    Serial.println("Lunes");
    romper;
    caso 3:
    Serial.println("Martes");
    romper;
    caso 4:
    Serial.println("Miércoles");
    romper;
    caso 5:
    Serial.println("Jueves");
    romper;
    caso 6:
    Serial.println("Viernes");
    romper;
    caso 7:
    Serial.println("Sábado");
    romper;
    }
    mientras (! Serie) {}

    // iniciar la comunicación con IMU
    estado = IMU.begin();
    si (estado < 0) {
    Serial.println("Inicialización de IMU fallida");
    Serial.println("Verifique el cableado de la IMU o intente apagar y encender");
    Serial.print("Estado: ");
    Serial.println(estado);
    mientras(1) {}
    }

    }
    bucle vacío () {

    sensor.read();


    Serial.print("Presión: ");
    Serial.print(sensor.presion());
    Serial.println("mbar");

    Serial.print("Temperatura: ");
    Serial.print(sensor.temperatura());
    Serial.println(" grados C");

    Serial.print("Profundidad: ");
    Serial.print(sensor.profundidad());
    Serial.println("m");

    Serial.print("Altitud: ");
    Serial.print(sensor.altitud());
    Serial.println("m sobre el nivel medio del mar");

    sensorFile = SD.open("Hola.txt",FILE_WRITE);
    sensorFile.print("Presión: ");
    sensorFile.print(sensor.presion());
    sensorFile.println("mbar");

    sensorFile.print("Temperatura: ");
    sensorFile.print(sensor.temperatura());
    sensorFile.println(" grados C");

    sensorFile.print("Profundidad: ");
    sensorFile.print(sensor.profundidad());
    sensorFile.println(" m");

    sensorFile.print("Altitud: ");
    sensorFile.print(sensor.altitud());
    sensorFile.println("m sobre el nivel medio del mar");

    // leer el sensor
    IMU.leerSensor();
    // mostrar los datos
    Serial.print("AccelX: ");
    Serial.print(IMU.getAccelX_mss(),6);
    Serie.imprimir(" ");
    Serial.print("AccelY: ");
    Serial.print(IMU.getAccelY_mss(),6);
    Serie.imprimir(" ");
    Serial.print("AccelZ: ");
    Serial.println(IMU.getAccelZ_mss(),6);

    Serial.print("GyroX: ");
    Serial.print(IMU.getGyroX_rads(),6);
    Serie.imprimir(" ");
    Serial.print("GyroY: ");
    Serial.print(IMU.getGyroY_rads(),6);
    Serie.imprimir(" ");
    Serial.print("GyroZ: ");
    Serial.println(IMU.getGyroZ_rads(),6);

    Serial.print("MagX: ");
    Serial.print(IMU.getMagX_uT(),6);
    Serie.imprimir(" ");
    Serial.print("MagY: ");
    Serial.print(IMU.getMagY_uT(),6);
    Serie.imprimir(" ");
    Serial.print("MagZ: ");
    Serial.println(IMU.getMagZ_uT(),6);

    Serial.print("Temperatura en C: ");
    Serial.println(IMU.getTemperature_C(),6);
    Serial.println();


    sensor.read();
    DateTime ahora = rtc.now(); // lee la hora actual del módulo RTC
    //Escribir en la tarjeta microSd de marca de tiempo
    sensorFile.print(ahora.año(),DEC);
    archivosensor.print("/");
    sensorFile.print(ahora.mes(),DEC);
    archivosensor.print("/");
    sensorFile.print(ahora.día(),DEC);
    archivosensor.print(" ");
    sensorFile.print(ahora.hora(),DEC);
    archivosensor.print(":");
    sensorFile.print(ahora.minuto(),DEC);
    archivosensor.print(":");
    sensorFile.print(ahora.segundo(),DEC);
    archivosensor.print(" ");
    uint32_t m=milis();
    archivosensor.print(m);
    archivosensor.print("\r\n ");

    sensorFile.print("AccelX: ");
    sensorFile.print(IMU.getAccelX_mss(),6);
    archivosensor.print(" ");
    sensorFile.print("AccelY: ");
    sensorFile.print(IMU.getAccelY_mss(),6);
    archivosensor.print(" ");
    sensorFile.print("AccelZ: ");
    sensorFile.println(IMU.getAccelZ_mss(),6);

    sensorFile.print("GyroX: ");
    sensorFile.print(IMU.getGyroX_rads(),6);
    archivosensor.print(" ");
    sensorFile.print("GyroY: ");
    sensorFile.print(IMU.getGyroY_rads(),6);
    archivosensor.print(" ");
    sensorFile.print("GyroZ: ");
    sensorFile.println(IMU.getGyroZ_rads(),6);

    sensorFile.print("MagX: ");
    sensorFile.print(IMU.getMagX_uT(),6);
    archivosensor.print(" ");
    sensorFile.print("MagY: ");
    sensorFile.print(IMU.getMagY_uT(),6);
    archivosensor.print(" ");
    sensorFile.print("MagZ: ");
    sensorFile.println(IMU.getMagZ_uT(),6);

    sensorFile.print("Temperatura en C: ");
    sensorFile.println(IMU.getTemperature_C(),6);
    sensorFile.println();

    archivosensor.close();
    tiempo de visualización(); // mostrar los datos del reloj en tiempo real en el monitor serie,
    retraso (1000); // cada segundo

    }

  • Chegg Logo
    Hay 3 pasos para resolver este problema.
    Solución
    Paso 1

    El código que tiene varios errores de sintaxis y también faltan algunas librerías necesarias. Por fa...

    Mira la respuesta completa
    answer image blur
    Paso 2
    Desbloquea
    Paso 3
    Desbloquea
    Respuesta
    Desbloquea