Este código pertenece al archivo «main.cpp» y es el archivo principal del proyecto.
#include <Arduino.h>
#include "hc04.h"
#include "sdcard.h"
Ultrasonico sensor(25, 26);
SDGuardar sd;
void setup() {
Serial.begin(9600);
if (sd.inicializar()) {
Serial.println("Tarjeta SD inicializada correctamente.");
} else {
Serial.println("Error al inicializar la tarjeta SD.");
return;
}
sensor.iniciar();
}
void loop() {
int distancia = sensor.obtenerDistancia();
Serial.print("Distancia en cm: ");
Serial.println(distancia);
sd.guardarDatos(distancia);
}
El siguiente código pertenece al archivo «sdcard.cpp»:
#include "sdcard.h"
SDGuardar::SDGuardar() {}
bool SDGuardar::inicializar() {
return SD.begin(5);
}
void SDGuardar::guardarDatos(int distancia) {
if (!SD.exists("/datos.txt")) {
// Si el archivo no existe, créalo
dataFile = SD.open("/datos.txt", FILE_WRITE);
} else {
// Si el archivo ya existe, abrelo en modo escritura para añadir datos
dataFile = SD.open("/datos.txt", FILE_APPEND);
}
if (dataFile) {
dataFile.print("Distancia: ");
dataFile.print(distancia);
dataFile.println(" cm");
dataFile.close();
}
}
El siguiente código pertenece al archivo «sdcard.h»:
#ifndef SDCARD_H
#define SDCARD_H
#include <Arduino.h>
#include <SD.h>
class SDGuardar {
public:
SDGuardar();
bool inicializar();
void guardarDatos(int distancia);
private:
File dataFile;
};
#endif
El siguiente código pertenece al archivo «hc04.cpp»:
#include "hc04.h"
Ultrasonico::Ultrasonico(int trigPin, int echoPin) {
_trigPin = trigPin;
_echoPin = echoPin;
}
void Ultrasonico::iniciar() {
pinMode(_trigPin, OUTPUT);
pinMode(_echoPin, INPUT);
}
int Ultrasonico::obtenerDistancia() {
digitalWrite(_trigPin, LOW);
delayMicroseconds(2);
digitalWrite(_trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(_trigPin, LOW);
long duration = pulseIn(_echoPin, HIGH);
int distance = duration * 0.034 / 2;
delay(1000); // Ajustar el tiempo para medir y guardar
return distance;
}
El siguiente código pertenece al archivo «hc04.h»:
#ifndef HC04_H
#define HC04_H
#include <Arduino.h>
class Ultrasonico {
public:
Ultrasonico(int trigPin, int echoPin);
void iniciar();
int obtenerDistancia();
private:
int _trigPin;
int _echoPin;
};
#endif
Deja una respuesta Cancelar la respuesta