¡Tu solución está lista!
Nuestra ayuda de expertos desglosó tu problema en una solución confiable y fácil de entender.
Mira la respuestaMira la respuesta done loadingPregunta: 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
}- Hay 3 pasos para resolver este problema.SoluciónPaso 1Mira la respuesta completaPaso 2
El código que tiene varios errores de sintaxis y también faltan algunas librerías necesarias. Por fa...
DesbloqueaPaso 3DesbloqueaRespuestaDesbloquea
Estudia mejor, ¡ahora en español!
Entiende todos los problemas con explicaciones al instante y pasos fáciles de aprender de la mano de expertos reales.