martes, 3 de enero de 2012

LM35 - Temperatura y LCD

2 comentarios
Hoy la entrada va a ser un 2x1, aprenderemos a usar dos cosas en una misma entrada, veremos como funciona el sensor de temperatura LM35 y también una pantalla LCD en la que visualizaremos la temperatura.

El componente que vemos en la imagen es el sensor LM35 el cual nos mide una temperatura de -55ºC a 150ºC y una precisión de 0.5ºC a 25ºC, que es muy buena y suficiente para pequeños inventos que podamos hacer en casa.

Si miráis la imagen veréis que tiene tres patillas. La primera empezando por la izquierda es la de entrada de tensión, la segunda es por donde nos dara la señal y la tercera el negativo.

Pantallas LCD hay de muchos tipos yo usare esta de dos líneas porque para esto es suficiente y además es la que me venia en el kit arduino que compre. Para usar esta pantalla bastara con hacer  unas pocas conexiones, un par de líneas de código y ya tendremos funcionando nuestra pantalla.




Como veis el tercer pin tiene la salida de un potenciómetro. Con el potenciómetro lo que haremos será regular el contraste.

El pin de retroiluminación no lleva resistencia porque cogemos directamente del pin 13 de arduino que ya la lleva incorporada.







 //www.playingwitharduino.blogspot.com

#include <LiquidCrystal.h>          //Incluir esta libreria para poder usar el lcd

int Ana1 = A0;                      //Entrada analogica de LM35
LiquidCrystal lcd(12,11,5,4,3,2);   //Definimos la pantalla LCD
int Temp = 0;
char Grados = 'º';

void setup(){
  Serial.begin(9600);      
  lcd.begin(16,2);  
  pinMode(13,OUTPUT);
  digitalWrite(13, HIGH);          //Activamos la retroiluminacion
}

void loop(){
  Temp = analogRead(Ana1);          //Leemos el valor de la entrada analogica
  Temp = map(Temp,0,1024,-55,150);  //Escalamos la señal a grados centigrados
 
  //Mostramos los grados en el serial
  Serial.print("Grados: ");
  Serial.print(Temp);
  Serial.print(Grados);
  Serial.println("C");
 
 
  //Mostramos los grados en la pantalla LCD
  lcd.setCursor(0,0);            //Con este comando decimos en que linea queremos escribir
  lcd.print("Temperatura: ");
  lcd.setCursor(0,1);            
  lcd.print(Temp);
 
 
  delay(10000);                  //Al ser temperatura no hace falta leerlo tan seguido
}

Este es el resultado final:

martes, 27 de diciembre de 2011

Vúmetro – Leds al ritmo de la música

23 comentarios
Como primer proyecto para el blog haremos una cosa bastante fácil, un vúmetro. Un vúmetro no es mas que un instrumento el cual nos indica el nivel de la señal de audio. Nosotros lo que haremos será representarlo con unos leds para que sea mas vistoso. 

Para realizar esto necesitaremos:
  • Arduino
  • Leds
  • Resistencias. Yo he usado de 1 kΩ por cada led
  • Cable de audio
  • Una fuente de audio. Un pc, reproductor, etc
Cosas como la protoboard o cables para hacer las conexiones no creo que haga falta ponerlos :)
El esquema seria una cosa así:



Como podeis ver en la imagen yo no he "pelado" un cable de audio sino que he utilizado un conector de audio que extraje de un lector de cd antiguo, es bastante mas comodo.

Código:

//www.playingwitharduino.blogspot.com

//Declaramos los leds

int LED1 = 3;

int LED2 = 4;

int LED3 = 5;

int LED4 = 6;

int LED5 = 7;

int LED6 = 8;

int LED7 = 9;

int LED8 = 10;



//Las variables que usaremos para el silencio

int Valor;

int Valor1;

int Valor2;

int Valor3;

int Valor4;



//Configuramos los pines y el serial para poder visualizar la entrada analogica

void setup (){

 Serial.begin(9600);

 pinMode(LED1,OUTPUT);

 pinMode(LED2,OUTPUT);

 pinMode(LED3,OUTPUT);

 pinMode(LED4,OUTPUT);

 pinMode(LED5,OUTPUT);

 pinMode(LED6,OUTPUT);

 pinMode(LED7,OUTPUT);

 pinMode(LED8,OUTPUT);

}



void loop (){

  //Leemos el valor

 Valor = analogRead(A0);

 //Transferimos los valores para saber cual era el estado anterior

 Valor4 = Valor3;

 Valor3 = Valor2;

 Valor2 = Valor1;

 Valor1 = Valor;



//Visualizamos los valores en Serial Monitor

 Serial.print("Valor: ");

 Serial.print(Valor);

 Serial.print("\t Valor1: ");

 Serial.print(Valor1);

 Serial.print("\t Valor2: ");

 Serial.print(Valor2);

 Serial.print("\t Valor3: ");

 Serial.print(Valor3);

 Serial.print("\t Valor4: ");

 Serial.println(Valor4);

 

 //Condicionamos que si el programa lee 4 veces seguidas 0 que se apagen los leds, si no ponemos esto los leds parpadearan mucho

if (Valor1+Valor2+Valor3+Valor4==0){

  digitalWrite(LED1,LOW);

  digitalWrite(LED2,LOW);

  digitalWrite(LED3,LOW);

  digitalWrite(LED4,LOW);

  digitalWrite(LED5,LOW);

  digitalWrite(LED6,LOW);

  digitalWrite(LED7,LOW);

  digitalWrite(LED8,LOW);

}

//Encendemos los leds segun el valor de entrada. En este caso la salida de mi pc como mucho me llega a 400 asi que lo dividimos entre ocho leds.

else{

 if (Valor>0){

   digitalWrite(LED1, HIGH);

 }

 else{

   digitalWrite(LED1, LOW);

 }



 if (Valor>50){

   digitalWrite(LED2, HIGH);

 }

 else{

   digitalWrite(LED2, LOW);

 }

 if (Valor>100){

   digitalWrite(LED3, HIGH);

 }

 else{

   digitalWrite(LED3, LOW);

 }



 if (Valor>150){

   digitalWrite(LED4, HIGH);

 }

 else{

   digitalWrite(LED4, LOW);

 }



 if (Valor>200){

   digitalWrite(LED5, HIGH);

 }

 else{

   digitalWrite(LED5, LOW);

 }



 if (Valor>250){

   digitalWrite(LED6, HIGH);

 }

 else{

   digitalWrite(LED6, LOW);

 }



 if (Valor>300){

   digitalWrite(LED7, HIGH);

 }

 else{

   digitalWrite(LED7, LOW);

 }



 if (Valor>350){

   digitalWrite(LED8, HIGH);

 }

 else{

   digitalWrite(LED8, LOW);

}

}




Este es el resultado final:




Espero que os haya gustado.

lunes, 26 de diciembre de 2011

Bienvenidos

0 comentarios

Bienvenidos a “Playing with Arduino”. En este blog iré poniendo los proyectos que vaya haciendo con Arduino, espero que os resulten interesantes. Al principio serán cosas bastante fáciles, luego irán incrementando la dificultad. En caso de duda comentar la entrada y intentare responderos.