En este pequeño tutorial, vamos a continuar con el desarrollo de nuestro sistema de monitorización de temperatura con Arduino, y en este caso, vamos a implementarle una pantalla LCD para poder mostrar la información.
LCD:
Para desarrollar este sistema he seleccionado una LCD con un KeyPad que me servirá en el futuro para continuar con el desarrollo del sistema. La placa es de DFRobot, es bastante asequible economicamente ( 11.55 $ ).
La LCD esta basada en en una pantalla de cristal líquido matricial de HITACHI, modelo HD44780U.
Las principales características de la placa son las siguientes
- Voltaje de funcionamiento 5V
- 5 botones para programación de menú
- 1 boton de Reset
- Potenciómetro para ajuste manual de retroiluminación LCD
- Juego de Pines:
- D4-D7: Datos de LCD
- D8: Reset
- D9: Activación
- D10: Control de retroiluminación
Diagrama de LCD:
Montaje:
El montaje del circuito del termistor con Arduino se realiza de la manera descrita en el Tutorial#1.01# - Termistor con Arduino, cuyo enlace es el siguiente:
Así pues, lo único que debemos hacer es montar la LCD y empezar a picar código.
Código de Arduino
1 /* Tutorial#1.02# - Termistor+LCD con Arduino 2 3 Monitorizacion de temperatura con sensor NTC sobre plataforma 4 Arduino y representacion en LCD con shield LCD Keypad Shield. 5 6 Algortimo de calculo de temperatura en: 7 http://en.wikipedia.org/wiki/Thermistor 8 */ 9 10 #include <LiquidCrystal.h> 11 12 // select the pins used on the LCD panel 13 LiquidCrystal lcd(8, 9, 4, 5, 6, 7); 14 15 //Pines para las entradas analógicas 16 int analogPin1 = 1; 17 18 //Escala de Avisos 19 int msg= 0; //Barrera para el mensaje de bienvenida 20 21 //Variables para las ecuaciones 22 float TempC = 0.0; // [ºC] Temperatura salida en Celsius 23 24 25 void setup() { 26 lcd.begin(16, 2); // Iniciamos la LCD 27 lcd.setCursor(0,0); 28 //Comenzamos la comunicación puerto serie 29 Serial.begin(9600); 30 if(msg==0) //Mostramos el mensaje de bienvenida una vez 31 { 32 lcd.setCursor(0,0); 33 lcd.print("Termistor LCD"); 34 lcd.setCursor(0,1); 35 lcd.print("Enrique Parro J."); 36 delay(5000); 37 for (int positionCounter = 0; positionCounter < 17; positionCounter++) { 38 // scroll one position left: 39 lcd.scrollDisplayLeft(); 40 // wait a bit: 41 delay(150); 42 } 43 msg = 1; 44 lcd.clear(); //Limpiamos mensaje bienvenida 45 } 46 } 47 48 49 void loop() // Bucle de programa principal 50 { 51 // ********** Algoritmo de termistor ********** 52 double fTemp; 53 double temp = Termistor(analogRead(1)); // Leemos el sensor 54 TempC=temp; 55 Serial.print("Valor de Temp: "); 56 Serial.println(TempC); // envía valor medido 57 delay(100); 58 lcd.clear(); 59 lcd.setCursor(0,0); 60 lcd.println("Temperatura C "); 61 lcd.setCursor(0,5); 62 lcd.print(TempC); 63 delay(1000); 64 } 65 66 //************** Funcion Termistor lectura ***************** 67 double Termistor(int RawADC) { 68 double Temp; 69 Temp = log(((10240000/RawADC) - 10000)); // Termistor de 10 K 70 Temp = 1 / (0.001129148 + (0.000234125 * Temp) + 71 (0.0000000876741 * Temp * Temp * Temp)); 72 Temp = Temp - 273.15; // Conversion de Kelvin a Celsius 73 return Temp; 74 } 75 76
Hola Enrique.
ResponderEliminarQueria hacerte una petición; este mismo proyecto lo podrias hacer para que se pueda regular la temperatura hasta 250ºCelsius y que a traves de un mosfet activase un ventilador???
Tambien pedirte que mostraras todo el montaje mas el codigo.
Te lo agradeceria mucho.
Gracias y recibe un cordial saludo.
Soy autodidacta pero ni sé electronica ni programar arduino.