/* Las patitas del modulo:
Arduino solo aguanta formato FAT16 y FAT32
CD: Card Detect se conecta a tierra cuando no hay SD en el socket.
DO/MISO: SPI data output (MISO)
SCK: SPI CLOCK
DI/MOSI: SPI DATA INPUT
CS: Chip Select
DI/MOSI: PIN 23 (VSPI) o PIN 13 (HSPI)
DO/MISO: PIN 19 (VSPI) o PIN 12 (HSPI)
CLK: PIN 18 (VSPI) o PIN 14 (HSPI)
CS: PIN 5 (VSPI) o PIN 15 (HSPI)
SD.begin(cspin); //Inicia la libreria SD y la tarjeta. Con ello se inicia el uso del bus SPI ()
el pin SS del hardware debe mantenerse como una salida o las funciones de la libreria SD no funcionaran
cspin (opcional): El pin conectado a la linea de seleccion de la SD: pone en default al pin de harware SS del bus SPI.
1 si se conecto, 0 si no es asi.
SD.exists(filename); Prueba si un archivo o directorio existe en la tajeta SD.
filename: El nombre del archivo que se verifica si existe, puede incluir directorio (delimitado por slashes /)
SD.mkdir (filename); Crea un directorio en la SD. Esto tambien va a crear directorios intermedios que no existen.
SD.mkdir(a/b/c) va a crear a b y c.
SD.open (filepath, mode); Abre un archivo en la tarjeta SD. Si el archivo se abre para escritura será creado si es que no existe aun (pero el directorio que lo contiene ya debe existir)
modo: FILE_READ abre el archivo para lectrura, iniciando desde el inicio del archivo
FILE_WRITE abre el archivo para lectura y escritura, iniciando al final del archivo).
Si no se puede abrir el archivo manda un 0;
SD.remove(filename); Quita un archivo de la SD.
SD.rmdir(filename); Quita un directorio de la SD. El directorio debe estar vacio.
*/
// --- Añadiendo librerias arduino para analogReadMilliVolts ---
#include <Arduino.h>
#include <SD.h>
#include <SPI.h>
// --- Declaración variables ---
const int anv = 2;
int anval = 0;
int anmili = 0;
int valormedido =0;
File archivodatos;
void setup()
{
Serial.begin(115200);
Serial.print("Detección de la SD...");
if (!SD.begin(5)) { //Se declara un if en el pin para detección del inicio de la SD, si se inicia manda un 1 pero al estar negado es 0 lo cual hace que no entre al if que entra a un while eterno.
Serial.println("No se pudo Iniciar la SD");
while (true);
}
Serial.println("Iniciación de tarjeta correcta.");
}
void loop()
{
// Abre el archivo para guardar un valor y si no existe lo genera.
archivodatos = SD.open("wokwi.txt", FILE_WRITE);
if (archivodatos) {
valormedido = analogReadMilliVolts(anv);
archivodatos.print("Time(ms)=");
archivodatos.print(millis());
archivodatos.print(", lectura=");
archivodatos.println(valormedido);
archivodatos.close();
}
else {
Serial.println("Error abriendo el archivo");
}
delay(500);
}
//anval = analogRead(anv);
//anmili = analogReadMilliVolts(anv);
//Programa para detectar los pines SPI de una tarjeta
//void setup() {
//Serial.begin(115200);
//Serial.print("MOSI: ");
//Serial.println(MOSI);
//Serial.print("MISO: ");
//Serial.println(MISO);
//Serial.print("SCK: ");
//Serial.println(SCK);
//Serial.print("SS: ");
//Serial.println(SS);
//}