Está en la página 1de 13

HhSENSOR DE TEMPERATURA LM35 y PROCESSING

En esta práctica vamos a utilizar un simple sensor de Temperatura LM35 que conectaremos al pin
analógico A0 y podremos encender o apagar un LED 13 desde una GUI diseñada desde Processing
que además representará losdatos recibidos del pin A0 por le puerto serie para representarlos y
para guardarlos en un archivo .txt.

EL SENSOR LM35

El LM35 es un sensor de temperatura analógico integrado. A diferencia de otros dispositivos como


los termistores en los que la medición de temperatura se obtiene de la medición de su resistencia
eléctrica, el LM35 es un integrado con su propio circuito de control, que proporciona una salida de
voltaje proporcional a la temperatura.

Es un sensor analógico de temperatura de salida lineal, con un rango de -55ºC (-550mV) a 150ºC
(1500 mV) y en su salida da 10mV por cada grado centígrado con una precisión de 0,5ºC .

Para hacer la lectura de la temperatura en grados centígrados, en el programa de Arduino tenemos


que hacer una sencilla fórmula matemática. Primero de todo, tenemos el sensor conectado a una
entrada analógica del Arduino (que recordemos son de 10 bits). El voltaje de salida del sensor es
interpretado por el Arduino con valores (donde 0V es 0 y.... 5V es 1023).

Para poder convertir estos valores nuevamente a voltios, hay que multiplicar el valor por 5 (que
son los 5 Voltios máximos de señal que da el sensor) y dividirlo por 1023 que es el entero más
grande en un rango de 10 bits. Luego tenemos que convertir este voltaje en grados centígrados.
Ahora tenemos que 10mV son 1ºC. Si multiplicamos estos 10mV por 100, tendremos que 1V son
1ºC.

La formula final sería la siguiente:


Temperatura en ºC = (Valor A0 * 5 * 100) / (1023)

CONEXIONES CON ARDUINO

El led lo pondremos en el pin13 a diferencia del dibujo.

CÓDIGO ARDUINO

int led=13;

int temp;// Variable sensor de temperaura

boolean status=LOW; //Estado del led

void setup(){

Serial.begin(9600);

pinMode(led,OUTPUT);

void loop(){

temp = analogRead(A0); //Lee los datos del sensor LM35

temp = (5.0 * temp * 100)/1023.0;//Formula para convertir a ºC


Serial.println(temp); //Enviamos los datos en forma de byte

delay(100);

if(Serial.available()>0) {

byte dato = Serial.read(); //Los almacena en la variable "dato"

if(dato==65) //Si recibe una "A" (en ASCII "65") cada vez cambia led

status=!status; //Cambia el estatus del led

digitalWrite(led,status);

}
Practica 05 – Uso del Sensor de Temperatura

Allistter

4 años ago

Anuncios

Objetivo:

Aprender a manjejar un sensor de temperatura. Y a usar la función map y constrain de Arduino.

Material necesario:

1 – Tarjeta ARDUINO UNO

1 – Cable USB para Arduino

1 – Tarjeta Protoboard

1 – Software IDE de Arduino

1 Sensor de Temperatura LM35

1 LED RGB catodo comun ó en su caso 2 LEDs comunes de colores Rojo y Azul.

2 Resistencias de 330 ohms.

Cables

Descripción

Conectamos el sensor de temperatura a la protoboard, teniendo el lado plano del sensor de frente
realizamos las conexiones de la siguiente forma:

El pin izquierdo lo conectamos a 5v.

El pin derecho lo conectamos a tierra.


El pin central lo conectamos a cualquier pin analógico de nuestro Arduino (el pin A0 en nuestro
caso).

Conectamos dos LEDs de distintos colores, agregamos una resistencia a cada LED en la parte plana
que vaya a tierra.

El otro pin del LED lo conectamos uno al 3 y 5 que son los que tienen funcionalidad PWM.

Conectamos los cables de tierra y 5V de la Arduino a la protoboard.

Cargamos el código.

Diagrama de conexión de la práctica realizado en Fritzing

Diagrama de conexión de la práctica realizado en Fritzing

Código

/* Practica 5 - Uso del Sensor de temperatura.

Encender un LED rojo o azul dependiendo de la temperatura*/

const int sensor = 0; // entrada del sensor LM35

const int ledRojo = 3; // pin del LED rojo

const int ledAzul = 5; // pin del LED azul

long miliVolts;
long temperatura;

int brillo;

long calctemp(int datosSensor){

/*Calculamos los mV en la entrada*/

miliVolts = (analogRead(datosSensor) * 5000L) / 1023;

/* Calculamos la temperatura*/

temperatura = miliVolts / 10;

/*Regresamos el valor de temperatura*/

return temperatura;

void setup () {
Serial.begin(9600); // iniciamos la comunicacion serial

/*Declaramos los LEDs como salida*/

pinMode(ledRojo, OUTPUT);

pinMode(ledAzul, OUTPUT);

void loop () {

/*Llamamos a la función para calcular temperatura

y guardamos el valor*/

temperatura = calctemp(sensor);

/*Ajustamos la escala de temperatura para poder usar analoWrite*/

brillo = map(temperatura, 10, 40, 0, 255);


/*Restringimos el rango de brillo entre 0 y 255*/

brillo = constrain(brillo, 0, 255);

/*Ajustamos el color de los LED*/

analogWrite(ledRojo, brillo);

analogWrite(ledAzul, 250-brillo);

/*Mandamos el valor de la temperatura al monitor serial

y agregamos un delay para no saturar el monitor*/

Serial.print("Temperatura: ");

Serial.print(temperatura);

Serial.println("grados");

delay(200);
}

Resultados

El resultado es un termómetro con salida visual que son los LEDs si la temperatura aumenta el LED
azul aumenta su brillo y el del rojo disminuye, si baja la temperatura ocurre lo contrario.

Experiencia

Lo nuevo de esta práctica fue aprender el uso del sensor de temperatura LM35, y en cuanto a
programación el uso de dos funciones de Arduino el map y el constrain, que en este caso el map lo
emplee para convertir los valores a un rango de 0-255 y el constrain para restringir los valores a ese
rango.
�Tutorial para aprender a construir un sencillo lanzador de dados

Redacción >Categorías: Arduino - Genuino, Tutoriales Arduino

Construye un dado electrónico con Arduino Uno

Este tutorial no pertenece al libro de John Boxall. En este tutorial vamos a hacer nuestro propio
circuito con Arduino que simule los movimientos de un dado. Este es un proyecto simple y es ideal
para conocer más de los fundamentos de Arduino. Este proyecto utiliza una variedad de LEDs y
resistencias para hacer el circuito. También usaremos un interruptor para decirle a nuestro Arduino
cuándo generar una nueva cara de dados.

Componentes

El equipo que necesitarás en este proyecto de dados Arduino se enumeran a continuación:

Arduino Uno

7 LEDs

7 resistencias de 100 ohmios (marrón negro marrón)

1 resistencia de 100k ohmio 100k (amarillo negro marrón)

Interruptor / pulsador físico

Tablero de circuitos o breadboard


Cable para el tablero

Esquema del circuito

Este circuito como he dicho antes es relativamente fácil y puede ser rápidamente realizado. En el
siguiente diagrama de circuitos de abajo servirá para ayudarte a ser capaz de colocar todo en el
lugar correcto. Debajo del diagrama continua la explicación.

Un interruptor está configurado en un circuito de tipo H, por ejemplo en nuestro diagrama es un


lado H. Los cables superior izquierdo y superior derecho están separados de los cables inferiores.
Al pulsar el botón se conecta la parte superior y la parte inferior de los cables que forman un
circuito activando así nuestros dados. Ejecutamos una conexión 3v3 al interruptor y tenemos una
resistencia de 100k a tierra. Entre el resistor de 100k y el interruptor tenemos el cable funcionando
hasta el pin 2. Esto detectará cuando el interruptor ha sido presionado.

Cada uno de los LEDs se posicionan para asemejarse a una cara de dado. Estos están un poco más
espaciados por lo que es más fácil de ver en el circuito de diagrama de arriba.

Cada uno de los LEDs está conectado al raíl de tierra a través de una resistencia de 100 ohmios. El
final positivo de los LEDS se conecta a un pin en el Arduino. Puedes ver qué LED están conectados
a qué pin en la tabla de abajo.

El código

En éste proyecto introducimos un dispositivo de entrada (interruptor) y también producimos un


número aleatorio utilizando la función randomSeed ().

Este código es bastante largo por lo que lo hemos colocado al final del tutorial. De todas maneras
os vamos a explicar partes del código para ver exactamente lo que estamos haciendo para
ayudarte a entender mejor lo que estás haciendo.
En el ejemplo siguiente estamos declarando las variables. BottomLeft se refiere a la ubicación del
LED, lo que facilita su identificación al editar el script. El número que estamos dando a estas
variables son los pines a los que están conectados.

Las variables state y randNumber se utilizarán para almacenar números.

int button = 2; //LED for DICE int bottomLeft = 3; int middleLeft = 4; int upperLeft = 5; int middle
= 6; int bottomRight = 7; int middleRight = 8; int upperRight = 9; int state = 0; long randNumber;

Este siguiente fragmento de código es la configuración y es donde asignamos pines para ser salida
o entradas y cualquier otra cosa que necesitamos configurar antes de ejecutar cualquier código
adicional. Utilizamos RandomSeed para configurar un generador de números aleatorios.

//Initial setup void setup(){ pinMode(bottomLeft, OUTPUT); pinMode(middleLeft, OUTPUT);


pinMode(upperLeft, OUTPUT); pinMode(middle, OUTPUT); pinMode(bottomRight, OUTPUT);
pinMode(middleRight, OUTPUT); pinMode(upperRight, OUTPUT); pinMode(button, INPUT);
Serial.begin(9600); randomSeed(analogRead(0)); }

La parte de bucle de nuestro script continúa haciendo bucle hasta que el Arduino se apaga o se
carga un nuevo conjunto de código. Al inicio del bucle de dados Arduino verificamos si el
interruptor ha sido presionado (alto).

Si se cumplen las condiciones, cambiamos el estado a 1 y obtenemos un número aleatorio entre 1


y 7. Una vez que tengamos el número aleatorio verificamos qué es y ejecutamos la función
relevante. Una vez que la función se hace esperamos 4 segundos y luego apagamos los LEDs y
volvemos a nuestro estado normal de 0.

void loop(){ //Read our button if high then run dice if (digitalRead(button) == HIGH && state ==
0){ state = 1; randNumber = random(1, 7); delay(100); Serial.println(randNumber); if
(randNumber == 6){ six(); } if (randNumber == 5){ five(); } if (randNumber == 4){
four(); } if (randNumber == 3){ three(); } if (randNumber == 2){ two(); } if
(randNumber == 1){ one(); } delay(4000); clearAll(); state = 0; } }

A continuación se muestra un ejemplo de la función seis. Esto se llama cuando el dado produce el
número seis. Como se puede ver claramente, convierte todos los LEDS relevantes a alto. Esto hará
que todos los LEDs se enciendan para que obtenga la cara correcta de los dados mostrándose en
nuestro circuito.
void six() { digitalWrite(bottomLeft, HIGH); digitalWrite(middleLeft, HIGH);
digitalWrite(upperLeft, HIGH); digitalWrite(bottomRight, HIGH); digitalWrite(middleRight,
HIGH); digitalWrite(upperRight, HIGH); }

Esperamos que disfrutes de este proyecto de dados Arduino y que te haya ayudado a enseñar más
sobre los fundamentos del Arduino, a continuación te dejamos el código completo.

l: Planetalector

Temática:

Infantil | A partir de 7 años

Colección: FUERA DE COLECCIÓN Y ONE SHOT

Número de páginas: 2

Un fascinante enigma que esconde una gran sorpresa

Sinopsis de La estrella de siete puntas:

Nicolás y su familia se acaban de mudar a su nuevo hogar, justo enfrente de su colegio. La noche
antes del inicio del curso escolar algo le sobresalta. Una bola

También podría gustarte