Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* TITULO: Registrando temperatura ambiente con LM35 y lector de tarjetas micro SD
- AUTOR:
- MARIANO DEL CAMPO GARCÍA (@2016) --> INGENIERO TÉCNICO INDUSTRIAL ESPECIALIDAD ELECTRÓNICA
- - FACEBOOK: https://www.facebook.com/mariano.delcampogarcia
- - TWITTER: https://twitter.com/MarianoCampoGa
- - CORREO: marianodc83@gmail.com
- DESCRIPCIÓN DEL PROGRAMA
- Con este programa se recoge cada 5 segundos el valor de la temperatura que nos entrega el sensor LM35
- para guardarlo en una tarjeta micro SD a través de un lector de tarjetas micro SD específico. Además,
- a través del monitor serie podemos observar la temperatura ambiente a tiempo real y ver los mensajes
- que el programa envía según el estado del lector de tarjetas micro SD.
- ESQUEMA DE CONEXION
- +-----+
- +----[PWR]-------------------| USB |--+
- | +-----+ |
- | GND/RST2 [ ][ ] |
- | MOSI2/SCK2 [ ][ ] A5/SCL[ ] |
- | 5V/MISO2 [ ][ ] A4/SDA[ ] |
- | AREF[ ] |
- | GND[ ] |
- | [ ]N/C SCK/13[ ] | Pin SCK del Lector de tarjetas micro SD
- | [ ]IOREF MISO/12[ ] | Pin MISO del Lector de tarjetas micro SD
- | [ ]RST MOSI/11[ ]~| Pin MOSI del Lector de tarjetas micro SD
- | [ ]3V3 +---+ 10[ ]~| Pin CS del Lector de tarjetas micro SD
- | [ ]5v -| A |- 9[ ]~|
- | [ ]GND -| R |- 8[ ] |
- | [ ]GND -| D |- |
- | [ ]Vin -| U |- 7[ ] |
- | -| I |- 6[ ]~|
- LM35(2) | [ ]A0 -| N |- 5[ ]~|
- | [ ]A1 -| O |- 4[ ] |
- | [ ]A3 INT0/2[ ] |
- | [ ]A4/SDA RST SCK MISO TX>1[ ] |
- | [ ]A5/SCL [ ] [ ] [ ] RX<0[ ] |
- | [ ] [ ] [ ] |
- | UNO_R3 GND MOSI 5V ____________/
- \_______________________/
- NOTAS:
- - Alimentación del Lector de tarjetas micro SD:
- - Pin VCC --> +5V de Arduino
- - Pin GND --> GND de Arduino
- - Denominamos LM35(1), LM35(2) y LM35(3) a los tres pines del sensor LM35, donde LM35(2)
- es el pin central (viendo el sensor por su cara plana, es decir, viendo las letras)
- - Alimentación del sensor LM35:
- - Pin LM35(1) --> +5V de Arduino
- - Pin LM35(3)--> GND de Arduino
- - Si utilizamos el lector de tarjetas micro SD del ETHERNET SHIELD, el pin CS del lector de
- tarjetas micro SD irá conectado al pin 4 de Arduino.
- */
- // Incluimos las librerías
- #include <SPI.h>
- #include <SD.h>
- // Pin digital donde conectamos el pin CS del modulo lector de tarjetas SD
- const int chipSelect = 10; // Pin 4 para SD del ETHERNET SHIELD
- int sensor_LM35 = 0; // Terminal analógico A0 conectado al pin central del LM35
- int valor_leido = 0; // Valor leído de la entrada analógica A0 (0-1024)
- float temperatura = 0; // Valor de la temperatura en grados centígrados (ºC)
- void setup()
- {
- // Configuramos el puerto serie para informar de fallos a traves de el.
- Serial.begin(9600);
- // El pin CS por defecto de la placa arduino debe ser configurado como salida
- // aunque no se use
- pinMode(chipSelect, OUTPUT);
- // Si ha habido error al leer la tarjeta informamos por el puerto serie.
- if (!SD.begin(chipSelect))
- {
- Serial.println("Error al leer la tarjeta\n");
- return;
- }
- }
- void loop()
- {
- valor_leido = analogRead(sensor_LM35); // Leemos el valor de la entrada analógica A0
- temperatura = (valor_leido * 0.00488); // 5V / 1023 = 0.00488 (precisión del A/D)
- temperatura = temperatura / 0.01; // Convierte los voltios en ºC (10mV = 1ºC)
- // Imprimimos la temperatura a través del monitor serie
- Serial.print("Temperatura: ");
- Serial.println(temperatura);
- // Abrimos el fichero donde vamos a guardar los datos (Si no existe se crea automaticamente).
- File dataFile = SD.open("LM35.TXT", FILE_WRITE);
- // Si el fichero es correcto escribimos en el.
- if (dataFile)
- {
- // Escribimos en el fichero el siguiente texto
- dataFile.print("VALOR DE LA TEMPERATURA: ");
- // A continuacion escribimos el valor de la temperatura y saltamos a la linea siguiente.
- dataFile.println(temperatura);
- dataFile.println("---------------------------------- ");
- // Cerramos el archivo.
- dataFile.close();
- // Avisamos de que se ha podido escribir correctamente.
- Serial.println("Valor almacenado correctamente!!!\n");
- // Si no pudimos escribir en el fichero avisamos por el puerto serie.
- }
- else
- {
- Serial.println("Error al escribir en LM35.TXT!!!\n");
- }
- // Esperamos 5s para tomar la siguiente temperatura.
- delay(5000);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement