jueves, 4 de abril de 2013

Puerto Serial: Arduino Uno Vs Arduino Leonardo

Una de las diferencias entre estos 2 modelos, es la forma del uso del puerto UART.

El Arduino Uno, que vemos en la fig. anterior tiene incorporado en el chip, un convertidor USB a UART para trabajar con el PC. y se usar para su programación la clase Serial (como siempre).
El problema que tuve fue cuando el mismo código queria usarlo en Leonardo con un modulo XBee.
lo que no sabía era que este famoso LEONARDO 
Tiene Un chip más poderoso que puede trabajar con una conexión USB y un puerto UART (Serial) a la ves,
eso significa que hay que usar distinto puerto serial en el caso de LEONARDO, como acostumbraba usar Arduino Uno, pensaba que era lo mismo, ¡Pero no! a la hora de usar los puertos 0 y 1 de Leonardo hay que usar su segunda librería "Serial1" que distingue con el puerto "Serial" que es el USB, y tiene otras cualidades para usar un Teclado o un Mouse.

Concluyendo: Arduino Leonardo Tiene 2 Puertos Serial, uno conectado al USB y el otro al pin 0 y 1.

miércoles, 7 de noviembre de 2012

Probando Sensor de Humedad y Temperatura DHT11

He Comprado un Sensor para mi proyecto con Arduino Uno despues de hacer varios intento Buscando sensores de Humedad Probé usando HS1101 pero este necesita necesita armar un esquema para enviar pulsos y ser medidos. y necesita varios componentes de no muy fácil acceso que luego publicare mas adelante.
Busque este sensor porque se ve fácil simple conectar con una placa.

Aquí una imagen del Sensor



Caracteristicas:
- Tamaño reducido.
- Voltaje de operación: 3V-5.5V
- Rango Humedad: 20-90% de Humedad Relativa (+-5%).
- Rango temperatura : 0-50ºC (+-2°C).
- Resolución Humedad: 1RH / 8 bits
- Resolución Temperatura: 1ºC / 8 bits.
- Sensor montado en una board con el hardware necesario para su uso.
- Tamaño: 3.1cm x 1.4cm

Codigo Ejemplo para arduino:

jueves, 1 de noviembre de 2012

Tutorial uso thermistor en arduino

Los termistores son barato y facil de usar lo mas complicado es la formula matematica para hacer la conversión de variación de Voltaje a Grados C°

Este es la forma de ver el ejemplo a desarrollar:

Software Utilizado: Aquí
Hardware utilizado en este tutorial: 

Instrucciones:

Vamos a utilizar un LCD para leer la temperatura del termistor. Sigue este otro tutorial Arduino LCD para obtener el trabajo con la placa Arduino. Si no desea utilizar una pantalla LCD para obtener las lecturas de la temperatura, siempre puedes cambiar el codigo a utilizar para la conexión del serial del Arduino con el computador para leer la temperatura de el termianl Serial en el monitor.

Usa tu protoboard sin soldadura para hacer las conexiones del termistor:

El Esquema a armar es:
Se nota que cable rojo a Fuente de 5v, el amarillo es la señal enviada y el negro es cable a tierra.

Software:

Descargue el software Arduino ejemplo thermistor aquí , y descomprimir el archivo en mi documento donde arduino crea una carpeta por defecto..

Ahora tendrá una carpeta llamada "arduino_thermistor"

Inicie el software de Arduino y cargar el thermistor Arduino programa de ejemplo, haga clic en Archivo-> Sketchbook-> Abrir

Navegue a la carpeta arduino_thermistor y seleccione la opción "arduino_thermistor.pde" archivo.

cree el dibujo del Thermistor Arduino a tu placa Arduino, luego pulsando el botón "Upload to I/O board" botón. Tras la descarga, usted debe ver la temperatura actual en la pantalla LCD.

Aquí está el código:

/*
    Arduino thermistor example software
    Tutorial:  http://www.hacktronics.com/Tutorials/arduino-thermistor-tutorial
    Copyright (c) 2010 Mark McComb, hacktronics LLC
    License: http://www.opensource.org/licenses/mit-license.php (Go crazy)
*/

#include 
#include 

/*
LCD Connections:
rs (LCD pin 4) to Arduino pin 12
rw (LCD pin 5) to Arduino pin 11
enable (LCD pin 6) to Arduino pin 10
LCD pin 15 to Arduino pin 13
LCD pins d4, d5, d6, d7 to Arduino pins 5, 4, 3, 2
*/

LiquidCrystal lcd(12, 11, 10, 5, 4, 3, 2);
int backLight = 13;    // pin 13 will control the backlight

void setup(void) 
{
  pinMode(backLight, OUTPUT);
  digitalWrite(backLight, HIGH); // turn backlight on. Replace 'HIGH' with 'LOW' to turn it off.
  lcd.begin(20, 4);              // rows, columns.  use 16,2 for a 16x2 LCD, etc.
  lcd.clear();                   // start with a blank screen
  lcd.setCursor(0,0);            // set cursor to column 0, row 0
}

double Thermister(int RawADC) 
{
  double Temp;
  // See http://en.wikipedia.org/wiki/Thermistor for explanation of formula
  Temp = log(((10240000/RawADC) - 10000));
  Temp = 1 / (0.001129148 + (0.000234125 * Temp) + (0.0000000876741 * Temp * Temp * Temp));
  Temp = Temp - 273.15;           // Convert Kelvin to Celcius
  return Temp;
}

void printTemp(void) 
{
  double fTemp;
  double temp = Thermister(analogRead(0));  // Read sensor
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print("Temperature is:");
  lcd.setCursor(0,1);
  lcd.print(temp); 
  lcd.print(" C / ");
  fTemp = (temp * 1.8) + 32.0;    // Convert to USA
  lcd.print(fTemp);
  lcd.print(" F");  
  if (fTemp > 68 && fTemp < 78) 
  {
    lcd.setCursor(0,3);
    lcd.print("Very comfortable");
  }
}

void loop(void) 
{
  printTemp();
  delay(1000);
}
 

Salida a la Luz de Mi Blog Enfocado a la Informática

Cree este blog pensando en lo que puede llegar a ser ARDUINO en el futuro y
dedicarle un espacio a esta pequeña y gigante herramienta Open-Hardware 
y todo relacionado con la informática y la creación