Advertisement
Villalba2006

POST_57

Nov 28th, 2016
2,835
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 5.14 KB | None | 0 0
  1. /*  TITULO: Registrando temperatura ambiente con LM35 y lector de tarjetas micro SD
  2.  
  3.     AUTOR:
  4.    
  5.     MARIANO DEL CAMPO GARCÍA (@2016) --> INGENIERO TÉCNICO INDUSTRIAL ESPECIALIDAD ELECTRÓNICA
  6.     - FACEBOOK: https://www.facebook.com/mariano.delcampogarcia
  7.     - TWITTER: https://twitter.com/MarianoCampoGa
  8.     - CORREO: marianodc83@gmail.com
  9.    
  10.    
  11.     DESCRIPCIÓN DEL PROGRAMA
  12.    
  13.     Con este programa se recoge cada 5 segundos el valor de la temperatura que nos entrega el sensor LM35
  14.     para guardarlo en una tarjeta micro SD a través de un lector de tarjetas micro SD específico. Además,
  15.     a través del monitor serie podemos observar la temperatura ambiente a tiempo real y ver los mensajes
  16.     que el programa envía según el estado del lector de tarjetas micro SD.
  17.    
  18.    
  19.     ESQUEMA DE CONEXION
  20.    
  21.                                       +-----+
  22.          +----[PWR]-------------------| USB |--+
  23.          |                            +-----+  |
  24.          |         GND/RST2  [ ][ ]            |
  25.          |       MOSI2/SCK2  [ ][ ]  A5/SCL[ ] |    
  26.          |          5V/MISO2 [ ][ ]  A4/SDA[ ] |    
  27.          |                             AREF[ ] |
  28.          |                              GND[ ] |
  29.          | [ ]N/C                    SCK/13[ ] |  Pin SCK del Lector de tarjetas micro SD
  30.          | [ ]IOREF                 MISO/12[ ] |  Pin MISO del Lector de tarjetas micro SD
  31.          | [ ]RST                   MOSI/11[ ]~|  Pin MOSI del Lector de tarjetas micro SD
  32.          | [ ]3V3    +---+               10[ ]~|  Pin CS del Lector de tarjetas micro SD
  33.          | [ ]5v    -| A |-               9[ ]~|  
  34.          | [ ]GND   -| R |-               8[ ] |  
  35.          | [ ]GND   -| D |-                    |
  36.          | [ ]Vin   -| U |-               7[ ] |  
  37.          |          -| I |-               6[ ]~|  
  38.  LM35(2) | [ ]A0    -| N |-               5[ ]~|  
  39.          | [ ]A1    -| O |-               4[ ] |  
  40.          | [ ]A3                     INT0/2[ ] |  
  41.          | [ ]A4/SDA  RST SCK MISO     TX>1[ ] |  
  42.          | [ ]A5/SCL  [ ] [ ] [ ]      RX<0[ ] |  
  43.          |            [ ] [ ] [ ]              |
  44.          |  UNO_R3    GND MOSI 5V  ____________/
  45.           \_______________________/
  46.  
  47.   NOTAS:
  48.  
  49.    - Alimentación del Lector de tarjetas micro SD:
  50.        - Pin VCC --> +5V de Arduino
  51.        - Pin GND --> GND de Arduino
  52.    - Denominamos LM35(1), LM35(2) y LM35(3) a los tres pines del sensor LM35, donde LM35(2)
  53.      es el pin central (viendo el sensor por su cara plana, es decir, viendo las letras)
  54.    - Alimentación del sensor LM35:
  55.       - Pin LM35(1) --> +5V de Arduino
  56.       - Pin LM35(3)--> GND de Arduino
  57.    - Si utilizamos el lector de tarjetas micro SD del ETHERNET SHIELD, el pin CS del lector de
  58.      tarjetas micro SD irá conectado al pin 4 de Arduino.
  59. */
  60.  
  61.   // Incluimos las librerías
  62.   #include <SPI.h>
  63.   #include <SD.h>
  64.  
  65.   // Pin digital donde conectamos el pin CS del modulo lector de tarjetas SD
  66.   const int chipSelect = 10; // Pin 4 para SD del ETHERNET SHIELD
  67.  
  68.   int sensor_LM35 = 0; // Terminal analógico A0 conectado al pin central del LM35
  69.   int valor_leido = 0; // Valor leído de la entrada analógica A0 (0-1024)
  70.   float temperatura = 0; // Valor de la temperatura en grados centígrados (ºC)
  71.  
  72.   void setup()
  73.   {
  74.     // Configuramos el puerto serie para informar de fallos a traves de el.
  75.     Serial.begin(9600);
  76.      
  77.     // El pin CS por defecto de la placa arduino debe ser configurado como salida
  78.     // aunque no se use
  79.     pinMode(chipSelect, OUTPUT);
  80.      
  81.     // Si ha habido error al leer la tarjeta informamos por el puerto serie.
  82.     if (!SD.begin(chipSelect))
  83.     {
  84.       Serial.println("Error al leer la tarjeta\n");
  85.       return;
  86.     }
  87.   }
  88.    
  89.   void loop()
  90.   {
  91.     valor_leido = analogRead(sensor_LM35); // Leemos el valor de la entrada analógica A0
  92.     temperatura = (valor_leido * 0.00488); // 5V / 1023 = 0.00488 (precisión del A/D)
  93.     temperatura = temperatura / 0.01; // Convierte los voltios en ºC (10mV = 1ºC)
  94.     // Imprimimos la temperatura a través del monitor serie
  95.     Serial.print("Temperatura: ");
  96.     Serial.println(temperatura);
  97.    
  98.     // Abrimos el fichero donde vamos a guardar los datos (Si no existe se crea automaticamente).
  99.     File dataFile = SD.open("LM35.TXT", FILE_WRITE);
  100.        
  101.     // Si el fichero es correcto escribimos en el.
  102.     if (dataFile)
  103.     {
  104.       // Escribimos en el fichero el siguiente texto
  105.       dataFile.print("VALOR DE LA TEMPERATURA: ");
  106.       // A continuacion escribimos el valor de la temperatura y saltamos a la linea siguiente.
  107.       dataFile.println(temperatura);
  108.       dataFile.println("---------------------------------- ");
  109.       // Cerramos el archivo.
  110.       dataFile.close();
  111.        
  112.       // Avisamos de que se ha podido escribir correctamente.
  113.       Serial.println("Valor almacenado correctamente!!!\n");
  114.        
  115.     // Si no pudimos escribir en el fichero avisamos por el puerto serie.
  116.     }
  117.     else
  118.     {
  119.       Serial.println("Error al escribir en LM35.TXT!!!\n");
  120.     }
  121.      
  122.     // Esperamos 5s para tomar la siguiente temperatura.
  123.     delay(5000);
  124.   }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement