Arduino LCD termómetro / control de temperatura con sensor de temperatura TMP36GZ añadido 2 relé de chanel, agregó RTC ds1307, añadido un case.based en la guía de WWC. (12 / 36 paso)

Paso 12: Subir este bosquejo para agregar el rtc en el projekt. para continuar.

muestra la temperatura actual
< ~25°c/77° F relé de chanel 2 frío encender ambos canales.
> ~ 30° c / 86° F caliente 2 relé de chanel apagar ambos canales.
Muestra el tiempo real.

/*
22 de septiembre de 2013 ha añadido RTC
13 de septiembre de 2013 ha añadido 2 relé de chanel
12 de septiembre de 2013
25 de octubre de 2012
Base de un proyecto de DJ Mentzik incluye http://www.arduino.cc/en/Tutorial/SwitchCase
Mejorado y modificado por WWC, citin
Los documentos pueden encontrarse en wwwc

Citin

Uso y modife según sea necesario.

Muestra corriente, 8 segundos promedio, Max y Min temperatura, interruptor de relé de chanel 2
encendido / apagado por llegar a min/max datos crudos del sensor y advierte frío/caliente/ok.

Para alambre de la pantalla LCD a tu Arduino, conexión de los siguientes pines:
LCD Pin 6 a pin digital 12
LCD Pin 4 a pin digital 11
LCD Pin 11 al pin digital 5
LCD Pin 12 al pin digital 4
LCD 13 de Pin a pin digital 3
LCD 14 de Pin a pin digital 2
LCD 15 PIN a +
LCD PIN 16 a GNd

*/
estas constantes no va a cambiar:
const int sensorMin = 160;      SARCOPTIOSIS mínima sensor para obtener mínimo temprature, descubierto a través de experimento
const int sensorMax = 215;    sensor máximo, 41, 9celsius = 248 rawdata descubierto mediante experimento

#include < LiquidCrystal.h >
#include < Time.h >
#include < Wire.h >
#include < DS1307RTC.h > / / una biblioteca básica de DS1307 que devuelve la hora como un time_t
#include < LiquidCrystal.h >
incluyen la biblioteca de controladores de LCD

declarar variables
flotador tempC = 0;                                                 Variable para mantener la temperatura Celsius (floating para la precisión de decimales)
flotador tempf = 0;                                                 variable para la celebración de Fareghneit temp
int tempPin = 0;                                                 Declarar la entrada analógica a 0 (A0) de la placa Arduino.
flotador de muestras [8];                                                Matriz para 8 muestras para el cálculo de temperatura media
maxi de flotador = 0, mini = 100;                                       Variables de temperatura máxima y mínima con valores iniciales. LM35 en configuración simple solo mide temperatura superior a 0.
int i;

LiquidCrystal lcd (12, 11, 5, 4, 3, 2);                          inicializar la biblioteca con los números de los pines de interfaz

void setup()
{

Serial.Begin(9600);                                             Abre el puerto serie, establece la tarifa de datos a 9600 bps
setSyncProvider(RTC.get);   la función para obtener la hora del RTC
if(timeStatus()! = ajuste del horario)
Serial.println ("no se puede sincronizar con el RTC");
otra cosa
Serial.println ("RTC ha establecido la hora del sistema");
LCD.Begin (16, 2);                                               Fijar número la pantalla del LCD de filas y columnas:

lcd.setCursor (2, 0);                                            Establecer LCD posición del cursor (columna, fila)
LCD.Print("Bartagamen");                                      Imprimir texto en LCD
lcd.setCursor (3, 1);                                            Establecer LCD posición del cursor (columna, fila)
LCD.Print("Thermometer");                                       Imprimir texto en LCD
Delay(500); esperar 500ms / retardo para leer texto
LCD.Clear(); borrar pantalla LCD / / borrar la pantalla
lcd.setCursor (2, 0);                                            Establecer LCD posición del cursor (columna, fila)
LCD.Print ("LCD aparece");                                     Imprimir texto en LCD
lcd.setCursor (1, 1);                                            Establecer LCD posición del cursor (columna, fila)
LCD.Print ("temperatura media");                                   Imprimir texto en LCD
Delay(2000);                                                    Retardo para leer texto
LCD.Clear();                                                    LCD Clear

}

void loop()
{
digitalClockDisplay();
Delay(1000);
}

void digitalClockDisplay()
{

Serial.println("");                                            Línea en blanco para espacio en el monitor serial
Serial.println ("que busca en un proyecto construido por WWC, Citin");  Imprimir texto a monitor Serial
Serial.Print ("Feal libre de uso y modife según sea necesario.");
Serial.println("");                                            Línea en blanco para espacio en el monitor serial
Serial.Print ("TMP36GZ datos:");                               Imprimir texto a monitor Serial
Serial.println(analogRead(tempPin));                           Muestra en el monitor serial el valor muestreado antes de conversión a la verdadera lectura de la temperatura

Inicio de cálculos para el lazo.
para (i = 0; i < = 7; i ++) {/ / obtiene 8 muestras de la temperatura
muestras [i] = (4.4 * analogRead(tempPin) * 26) / 1024.0;    matemáticas de conversión de tmp26gz tiene que ver Cruz.
5V es el voltios de suministro de tmp26gz. Cambiar el appropriatelly tener la medida correcta. Mi caso es 4.4Volts.
Si accionado del USB utiliza valor 4.4v a 4.6v. Si la energía es 7v < a Arduino luego use 4.9v a 5.1v
La tensión es fundamental para una lectura precisa
Serial.println(samples[i]);                                    Imprimir muestras [i] para monitor sertiual

(Nota de LCD: línea 1 es la segunda fila, ya que cuenta comienza con 0):
lcd.setCursor (0, 0);                                           Establecer LCD posición del cursor (columna 0, fila 0)
LCD.Print ("Temp actual es:");                                Imprimir texto en LCD
lcd.setCursor (1, 1);                                           Establecer LCD posición del cursor (columna 1, fila 1)
LCD.Print ("Celsius");                                     Imprimir texto en LCD
lcd.setCursor (12, 1);                                          Establecer LCD posición del cursor (columna 12, fila 1)
LCD.Print(samples[i]);                                         impresión actual muestra temperatura LCD
tempC = tempC + muestras [i];                                    hacer la adición para temperatura media
Delay(4000);                                                    esperar 800ms
leer el sensor:
int sensorReading = analogRead(A0);                           obtener los datos brutos del Sensor para ajustar modo de elaboración
mapa de la gama del sensor a una gama de cuatro opciones:
int rango = mapa (sensorReading, sensorMin, sensorMax, 0, 3);   cambio de don t de salida del sensor.

hacer algo diferente dependiendo de la
valor de rango:
interruptor (rango) {}
caso 0: / / kalt / / Mostrar frío e interruptor ambos relais canales en a estado de relé de control de calor.
analogWrite(8,HIGH);
analogWrite(10,HIGH);
Serial.println("Dark");
lcd.setCursor (1, 1);                                           Establecer LCD posición del cursor (columna 0, línea 1)
LCD.Print("Cold");                                               Imprimir texto en LCD
lcd.setCursor (1, 1);
Delay(800);                                                     espere para que pueda ver el mensaje
rotura;
caso 1: / / ok, nada que hacen relé ambos canales están OFF
Serial.println("DIM");
analogWrite(8,LOW);
analogWrite(10,LOW);
lcd.setCursor (1, 1);
LCD.Print("Rise");                                        Imprimir texto en LCD
lcd.setCursor (1, 1);
Delay(800);                                                   espere para que pueda ver el mensaje
rotura;
caso 2: / / tu mano es unas pocas pulgadas del sensor / / bien, nada relé ambos canales están en la última estadística
Serial.println("Medium");
lcd.setCursor (1, 1);
LCD.Print("OK");                                         Imprimir texto en LCD
lcd.setCursor (1, 1);
Delay(800);                                              espere para que pueda ver el mensaje
rotura;
caso 3: / / tu mano no está ni cerca del sensor
Serial.println("Bright");                                 caliente todo relé a canales de calefacción de parada.
digitalWrite (8, bajo);                                     caliente todo relé a canales de calefacción de parada. Compruebe el relé de estado
digitalWrite (10, bajo);                                    caliente todo relé a canales de calefacción de parada. Compruebe el relé de estado
lcd.setCursor (1, 1);
LCD.Print("Hot");                                       Imprimir texto en LCD
lcd.setCursor (1, 1);
Delay(800);                                               espere para que pueda ver el mensaje
rotura;

}}                                                              // END of FOR loop

Serial.println("");                                            Línea en blanco para espacio en el monitor serial
Serial.println("");                                            Línea en blanco para espacio en el monitor serial
tempC = tempC/8.0;                                             calcula el averare de 8 muestras en Celcius

tempf = (tempC * 9) / 5 + 32;                                   convierte Fahrenheit

if(tempC > Maxi) {maxi = tempC;}                               temperatura máx.
if(tempC < mini) {mini = tempC;}                               temperatura mínima set

Enviar resultados a Monitor Serial
Serial.println ("nueva medida:");
Serial.Print ("temperatura media en grados Celsius es");          Imprimir texto a monitor Serial
Serial.println (tempC); //send los datos al ordenador / / enviar los datos a la computadora
Serial.Print ("temperatura media en Fareneit es");         Imprimir texto a monitor Serial
Serial.println (tempf); //send los datos al ordenador / / enviar los datos a la computadora
Serial.Print ("MAX Temperature en Celsius");              Imprimir texto a monitor Serial
Serial.println (maxi); //send los datos al ordenador / / enviar los datos a la computadora
Serial.Print ("temperatura mínima en grados Celsius es");              Imprimir texto a monitor Serial
Serial.println (mini); //send los datos al ordenador / / enviar los datos a la computadora

Enviar resultados a LCD.
lcd.setCursor (0, 1);                                           Establecer LCD posición del cursor (columna 0, línea 1)
LCD.Print ("Fahrenheit");                                     Imprimir texto en LCD
lcd.setCursor (12, 1);                                          Establecer LCD posición del cursor (columna 12, línea 1)
LCD.Print(tempf);                                              Enviar los datos a la LCD

Delay(1000);            Espere segundos para mostrar el Fahrenheit temp y segundos para mostrar los resultados a la LCD de la pantalla antes de comenzar el bucle otra vez = 6 segundos.
LCD.Clear();            borrar pantalla
tempC = 0;                                                     TempC se establece en 0 para que los cálculos pueden realizarse otra vez

Serial.Print(hour());                                         imprimir texto a Serial (PC)
printDigits(minute());
printDigits(second());
Serial.Print("");
Serial.Print(Day());
Serial.Print("");
Serial.Print(month());
Serial.Print("");
Serial.Print(Year());
Serial.println();

lcd.setCursor (2, 0);                                            Establecer LCD posición del cursor (columna, fila)
LCD.Print(hour());                                               imprimir texto en LCd
LCD.Print(":");
LCD.Print (minute());
LCD.Print("");
LCD.Print(Second());
LCD.Print("");
LCD.Print("Uhr");
lcd.setCursor (3, 1);                                           Establecer LCD posición del cursor (columna, fila)
LCD.Print(Day());
LCD.Print(".");
LCD.Print(month());
LCD.Print(".");
LCD.Print(Year());
Delay(6000);                                                   retardo para leer texto

}

void printDigits (int dígitos) {}
función de utilidad para la visualización del reloj digital: impresiones anteriores a colon y lleva 0
Serial.Print(":");
if(digits < 10)
Serial.Print('0');
Serial.Print(digits);

}

Artículos Relacionados

Arduino LCD termómetro con LM35 Sensor de temperatura

Arduino LCD termómetro con LM35 Sensor de temperatura

: actualización del PIN 13: gracias a cybersbpara la captura.El Fritzing esquema muestra el uso de los pines 12 y 13. Esto no se corrige. Debe usar los pines enumerados en el código, los pines 11 y 12.Esto es como el título lo indica, un Arduino powe
Arduino LCD termómetro

Arduino LCD termómetro

Hola chicos este es Gaige TheEngineer aquí para darle un proyecto arduino básico: termómetro de la pantalla LCD de ArduinoEsto es algo que un niño de 12 años de edad puede hacer bastante fácil. Tan por favor disfruta y revisa mi canal de Youtube (aun
Arduino OLED termómetro e higrómetro con DHT11 para principiantes

Arduino OLED termómetro e higrómetro con DHT11 para principiantes

¡ Hola! Voy a mostrarte cómo hacer un Arduino OLED termómetro e higrómetro * con DHT11.El OLED que utilizamos hoy en día es 1.3″ pulgadas en tamaño, características 128 × 64 píxeles y usa el Bus SPI. En el siguiente paso encontrará más información út
Arduino WiFi termómetro (con página web) - Arduino wireless

Arduino WiFi termómetro (con página web) - Arduino wireless

Lo que usted necesitaUna placa Arduino (cualquier placa compatible es aceptable).LM-35 (para utilizar con el archivo suministrado se puede utilizar DS18B20 pero tienes que convertir el código fuente respectivamente).Módulo de router WiFi HLK-RM04.Fue
LCD termómetro proyecto TI MSP-EXP430FR5739 FraunchPad

LCD termómetro proyecto TI MSP-EXP430FR5739 FraunchPad

esto fue creada usando Energia.Principalmente para mi uso como un dispositivo práctico para aprender a programa microcontroladores. Esto es lo que he hecho después de revisar los consejos de este hilo - gracias chicos 43oh.com.Me gustaría añadir algu
Arduino LED termómetro

Arduino LED termómetro

Este es mi primer proyecto usando un Arduino Uno , así como publicar en Instructables. Haré mi mejor esfuerzo para hacer de este instructable como claro y y al punto como sea posible.Quería tomar un objeto doméstico y añadir un temperatura y un senso
Ahorre $5 para glándula LCD termómetro de oído infrarrojo Digital precisa y cubierta de una enfermería gratis! Impresionante!

Ahorre $5 para glándula LCD termómetro de oído infrarrojo Digital precisa y cubierta de una enfermería gratis! Impresionante!

Recibí esto por correo hace unos días y estoy impresionadoen cuanto llegó empaquetado! Cuando abrí la caja me sorprendió encontrar este producto en espuma gruesa dentro de una caja muy robusta! Usted no puede ver la pantalla LCD en absoluto hasta que
LCD, potenciómetro y pwm led con Arduino

LCD, potenciómetro y pwm led con Arduino

Lo que usted necesita:Placa ArduinoPANTALLA LCD 16 * 2Recortador de 10 kΩPotenciómetro 10 kΩLED 5mm220, 330 resistencias ΩAlgunos puentesProtoboardQué dibujo se hace:En este bosquejo, se imprimirá el valor de potenciómetro analógico en la pantalla lc
Arduino Nano y Visuino: Control de servos con codificador rotatorio

Arduino Nano y Visuino: Control de servos con codificador rotatorio

Hay un montón de Instructables que Servo control con potenciómetro, sin embargo a veces es útil controlar con un Codificador rotatorio. En este Instructable, les mostraré lo fácil que es implementar esto con la ayuda de Visuino - un ambiente de desar
Pantalla Blynk Arduino DS18B20 termómetro en iOS o Android

Pantalla Blynk Arduino DS18B20 termómetro en iOS o Android

Temperatura se muestra en mi dispositivo Android.Paso 1: introducciónEn este Instructable voy a intentar mostrar cómo armar un pequeño proyecto para utilizar la aplicación Blynk (optainable en http://www.blynk.cc/) para mostrar la temperatura de form
Arduino Nano y Visuino: Control de Servos con Joystick

Arduino Nano y Visuino: Control de Servos con Joystick

Controlando Servos conectado a Arduino con Joystick es muy común. Con la ayuda de Visuino, un entorno de desarrollo gráfico fácil de usar para Arduino, lograr esto nunca ha sido tan fácil!Tenga en cuenta que la anotación en algunas de las fotos en es
LCD termómetro digital

LCD termómetro digital

para el código fuente y el diseño cheque este link http://blog.dewataelektronik.com/?p=65
Termómetro de Arduino DIY con DS18B20

Termómetro de Arduino DIY con DS18B20

Hola, todo el mundo! Hoy voy a mostrarte cómo hacer LCD o serie * termómetro DS18B20 digitaltemperature sensor usando Arduino, protoboard, puentes. Así que usted puede medir la temperatura del aire, líquidos como el agua y la temperatura de la tierra
Termómetro Arduino Digital (con DS18B20)

Termómetro Arduino Digital (con DS18B20)

Hola,Hoy voy a mostrar cómo hacer su propio termómetro digital con sensor de temperatura DS18B20 y arduino uno.Este termómetro puede medir temperaturas de-55 ° C a + 125 ° C (-67 ° F +257 ° f). Hay botones, uno para encender/apagar luz de pantalla y