Especificaciones del Micro Controlador.
Tarjeta | Nombre |
---|---|
Microcontroller | ATmega328 |
USB connector | Mini-B USB |
Pins | Built-in LED Pin 13 |
Digital I/O Pins | 14 |
Analog input pins | 8 |
PWM pins | 6 |
Communication | |
UART | Yes |
I2C | Yes |
SPI | Yes |
Power | |
Input voltage (nominal) | 7-12V |
DC Current per I/O Pin | 20 mA |
Clock speed | ATmega328 16 MHz |
Memory | 2KB SRAM, 32KB flash 1KB EEPROM |
Dimensions | Weight 5gr |
Width | 18 mm |
Length | 45 mm |
Tarjeta NANO Arduino
NANO Pin Out.
Sensor temperatura DHT11
Pantalla Liquida LCD Display 20 x 4.
Real Time Clock RTC_DS1307
// Sensor de temperatura humedad DHT11 conectado a NANO y LCD(20x4) // Julio 2015 // Jorge L. Herrera // Version 0.1 #include "DHT.h" #include "Wire.h" #include "RTClib.h" #include "LiquidCrystal_I2C.h" // SETUP CRISTAL LIQUIDO LiquidCrystal_I2C lcd(0x3F,20,4); // Conectar SCL a A5 // Conectar SDA a A4 // SETUP SENSOR HUMEDAD // Conectar el pin 1 (el primero de la izquierda) del sensor a +5V // Conectar el pin 2 del sensor al pin 2 del Arduino // Conectar el pin 4 (el primero de la derecha) del sensor a GROUND // Conectar una resistencia de 10K del pin 2 (datos) al pin 1 (power) del sensor. #define DHTPIN 2 #define DHTTYPE DHT11 // Inicializando el sensor DHT para 16mhz Arduino (Normal) DHT dht(DHTPIN, DHTTYPE); // NOTA: Si se quiere trabajar con un procesador mas rápido como el Arduino Due o // Teensy, es necesario incrementar el threshold. // Esto se puede hacer usando un tercer parámetro para éste. // El valor adecuado está en función de la rapidez del CPU pero en general a mayor // rapidez mas grande el valor del parámetro. Por ejemplo un procesador a 84 Mhz // DHT dht(DHTPIN, DHTTYPE, 30); // SETUP REAL TIME CLOCK CHIP RTC_DS1307 RTC; void setup(){ lcd.backlight(); lcd.init(); dht.begin(); Wire.begin(); RTC.begin(); RTC.adjust(DateTime(__DATE__, __TIME__)); } void loop(){ //Desplegar Fecha y Hora DateTime now = RTC.now(); //FECHA //Dia lcd.setCursor(0,0); lcd.print(now.day(), DEC); lcd.print('/'); //Mes lcd.print(now.month(), DEC); lcd.print('/'); //Ano lcd.print(now.year(), DEC); lcd.print(' '); //HORA lcd.setCursor(10,0); lcd.print(now.hour(), DEC); lcd.print(':'); //lcd.setCursor(13,0); lcd.print(now.minute(), DEC); lcd.print(':'); lcd.print(now.second(), DEC); // Recibe lecturas sensor humedad. delay(1000); // La lectura de la temperatura y humedad toma alrededor de 250 milisegundos! // Las lecturas del sensor pueden estar el alto por 2 segundos ‘old’ // (esto ya que es un //procesador muy lento) float h = dht.readHumidity(); // Lectura de temperature en Celsius float t = dht.readTemperature(); // Lectura de temperatura en Fahrenheit float f = dht.readTemperature(true); // Verifica si las lecturas fueron correctas o se dio un timeout (intenta nuevamente). if (isnan(h) || isnan(t) || isnan(f)){ lcd.setCursor(0,1); lcd.print("No se obtuvieron valores adecuados del sensor DHT!"); return; } // Calculando el índice de calor (Heat Index); es la relación Grados Farenheith / Grados Celcius float hi = dht.computeHeatIndex(f, h);
//lcd.clear(); lcd.setCursor(0,1); lcd.print("Humedad: "); lcd.setCursor(10,1); lcd.print(h); lcd.print(" %"); lcd.setCursor(0,2); lcd.print("Temp: "); lcd.print(int(t)); // t y f se cambian a entero por motivo de espacio en LCD. lcd.print(" *C"); lcd.setCursor(13,2); lcd.print(int(f)); lcd.print(" *F"); lcd.setCursor(0,3); lcd.print("Ind Cal: "); lcd.print(hi); lcd.print(" *F"); }