En esta sesión vamos a realizar un sencillo proyecto donde utilizaremos componentes ya vistos anteriormente: una pantalla LCD, un sensor de temperatura, un potenciómetro y unos botones. Con todos ellos https://artesaniadelapalma.com/4zycyis realizaremos un montaje que nos informará de la temperatura actual, máxima y mínima, a través de la pantalla. Si pulsamos uno de los dos botones nos dará la temperatura mínima y máxima desde el último encendido. Si pulsamos el otro botón resetearemos estos valores máximo y mínimo a la temperatura actual.
https://alfombrasbsb.com/52u98ssg0m3 Podéis ver una foto del montaje a continuación
Pero la principal novedad en esta sesión es que vamos a introducir un concepto importante en cualquier lenguaje de programación: las funciones.
Buying Ambien Online Una función https://aguasdeburgos.com/kbqcnud8g es un conjunto de instrucciones que realizan una acción determinada. Esta función tendrá un nombre y podrá ser llamada desde otras partes del código tantas veces como sea necesario. Las funciones pueden recibir datos, denominados Buy Ambien Overnight Delivery parámetros, que pueden ser manipulados en su interior. En ocasiones, esta función, además de ejecutar todas estas instrucciones, podrá devolver un valor final que pueda ser utilizado allí donde la función ha sido llamada.
Veamos un ejemplo. Supongamos que gracias al sensor ya tenemos la temperatura y está guardada en la variable https://alfombrasbsb.com/vgkdgf67 https://www.aytolardero.org/2023/09/14/sebi6i1e actual. A continuación lo que queremos es mostrar en la pantalla LCD esta información. Para agrupar todas las instrucciones necesarias para sacar la información a través de la pantalla LCD creamos una función a la cual llamamos Zolpidem Tartrate Purchase https://elmilanoreal.com/hb4ycls mostrarTempActual() y que ejecutaremos en alguna parte dentro de nuestra función principal Order Generic Ambien Online loop() https://www.a-crear.com/cd6ffgp . Esta función recibirá como parámetro el valor de la variable https://www.jaumebalmes.com/1gsagtdnguq actual. El código necesario para hacer la llamada a la función sería:
https://araquealuminios.com/6qj78exbyrq https://aguasdeburgos.com/wyradsj mostrarTempActual(actual);
A su vez, el código necesario para declarar esta función sería el siguiente:
Buy Cheap Zolpidem Online https://elartedemedir.com/blog/4t80epgupii void mostrarTempActual(float actual){
Zolpidem Online Overnight Delivery lcd.clear();
https://acatfcl.cat/rcrnpmza Ambien Mastercard lcd.setCursor(0,0);
Buying Zolpidem Online lcd.print("Temperatura actual:");
https://aguasdeburgos.com/4csjpvwt Order Ambien Online Overnight lcd.setCursor(0,1);
https://alfombrasbsb.com/ho49dix lcd.print(" C/");
Buy Brand Name Ambien Online }
La palabra reservada Buy Zolpidem Sleeping Tablets Uk https://artesaniadelapalma.com/tt7rvo4l82t void indica que la función no devuelve ningún valor. El paso de parámetros, en este caso la variable actual, que es una variable de tipo Ambien Cr Online Canada https://www.a-crear.com/7kq0pliwsok float (número con decimales), siempre tienen que ir encerrados entre paréntesis.
Vamos a poner a continuación el código completo y posteriormente explicamos todas las funciones:
#include <LiquidCrystal.h>
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);
float min = 0;
float max = 0;
void setup() {
//Podríamos haber hecho actual global, como min o max
float actual=0;
lcd.begin(16,2);
lcd.clear();
//Establezco un mínimo y máximo inicial a partir de la T actual
actual=obtenerTemp();
min=actual; max=actual;
pinMode (2,INPUT); //Botón para redefinir la T máxima y mínima
pinMode (3, INPUT); //Botón para mostrar la T máxima y mínima
}
void loop() {
float actual=0;
actual=obtenerTemp();
//Si la temperatura actual supera los límites, los redefino
if (actual<min) {
min = actual;
}
if (actual>max) {
max = actual;
}
mostrarTempActual(actual);
delay(100);
//Si pulso el botón de "reset"
if (digitalRead(2) == HIGH) {
min = actual;
max = actual;
}
//Si pulso el botón de mostrar máximo y mínimo
if (digitalRead(3) == HIGH) {
mostrarTempMin();
delay(3000);
mostrarTempMax();
delay(3000);
}
}
/*Función que obtiene directamente la temperatura a partir
del voltaje leído en la entrada del sensor TMP36 */
float obtenerTemp(){
return (((analogRead(5)*5.0)/1024)-0.5)*100;
}
/*Función que muestra la temperatura actual. Como actual es una
variable local de loop(), la tengo que pasar como parámetro. En
cambio, con max y min, al ser globales, eso no es necesario */
void mostrarTempActual(float actual){
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Temperatura actual:");
lcd.setCursor(0,1);
lcd.print(actual);
lcd.print(" C/");
}
//Función que muestra la temperatura mínima
void mostrarTempMin(){
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Temperatura mínima:");
lcd.setCursor(0,1);
lcd.print(min);
lcd.print(" C/");
}
//Función que muestra la temperatura máxima
void mostrarTempMax(){
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Temperatura máxima:");
lcd.setCursor(0,1);
lcd.print(max);
lcd.print(" C/");
}
Para empezar, podemos hablar de la función obtenerTemp():
float obtenerTemp(){
return (((analogRead(5)*5.0)/1024)-0.5)*100;
}
Esta función va a utilizar la fórmula ya comentada para transformar el voltaje del sensor de temperatura a grados centigrados. El sensor está conectado en la entrada analógica 5 de Arduino. Como podemos ver tenemos la palabra reservada https://www.aytoyuncler.com/2023/09/14/45yoggrve return con la cual vamos a indicar que esta función va a devolver como salida un valor, de tipo float (número decimal), concretamente la temperatura en grados centígrados.
Por lo tanto, cada vez que ejecutamos esta instrucción:
actual=obtenerTemp();
estamos ejecutando la función obtenerTemp() con la instrucción que tiene en su interior, y el valor que devuelve la función lo almacenamos en la variable Buy Zolpidem Online From Canada actual.
Las funciones TempActual(float actual)(), mostrarTempMin() y mostrarTempMin() son muy parecidas. Todas ellas se dedican a mostrar los valores de sus respectivas variables ( https://abressa.com/812sg52jla actual, min y max) en el LCD. De hecho, la principal diferencia es que la función que visualiza la temperatura actual recibe como parámetro la variable actual. La otra diferencia es en el mensaje a visualizar como texto, que obviamente será diferente para cada uno de ellos.
Para finalizar, Pilar Calvo nos explica detalladamente todo el proceso del montaje y de la programación.