Documentos de Académico
Documentos de Profesional
Documentos de Cultura
para acuario
#include <LiquidCrystal.h>
LiquidCrystal lcd ();
// Declaramos la librería para el LCD y los pins por donde le va a llegar la
información
int sensorPin = A0;
int rele = 7;
float centi (){ //Función para leer el dato analógico y convertirlo a digital:
int dato;
dato=analogRead(A0);
float c = (500.0 * dato/1023)-50;
//Esta fórmula sale de la relación del sensor con los grados. Explicación:
/* El sensor de temperatura TMP36 responde a variaciones de 10 mV por cada
garado centígrado pero comienza a -50ºC.
Si el sensor detecta 1ºC en la salida del sensor obtendríamos
(50+1)*10mV=510mV. Otro ejemolo: 26,4ºC = (50+26,4)*10=764mV = 0.764 V.
Tenemos que el convertidor analógico-digital es de 10 bits, los valores variarán
entre 0 y 1023.
entonces Vout=(5V*Dato)/1023 siendo (0 < Dato < 1023) y para ajustar la escala
de grados centígrados: Vout = ((5V*Dato)*100)/1023-50
*/
return (c);
}
float kelvin (float cent) {
float k;
k=cent+273.15;
return (k);
}
//En esta función declaramos un parámetro (le llamamos cent) y nos servirá para
sumarle 273.15 lo que declararemos en esos paréntesis del parámetro.
void setup (){
//Definimos el LCD con dimensión 2x16 y escribimos los caracteres fijos (loa que
no van a cambiar) y como deben posicionarse :
lcd.begin(16,2);
lcd.print ("C= K="); //Ponemos espacios (6) para dejar sitio a los valores (el C
está en la posición 0, o=en la posición 1, 6 espacios,K,=,...)
lcd.setCursor (0,1); //Ponemos el cursor en la posición = de la fila 1 (abajo)
lcd.print ("Temperatura");//Imprimimos las caracteres: Temperatura
pinMode (rele,OUTPUT);//Declaramos el pin rele (pin7) como SALIDA
}
//Hasta aquí definimos que queremso que salga impreso fijo por la pantalla y la
posición.
void loop(){
float Centigrados = centi (); //Declaramos una variable que almacena la función
centi ()
float Kelvin = kelvin (Centigrados); //Declaramos una variable que almacena los
valores de la función kelvin con el parámetro del valor de la variable Centigrados
lcd.setCursor(2,0);
lcd.print (Centigrados);
lcd.setCursor (10,0);
lcd.print (Kelvin);
delay(200);
//Por último, usamos la parte activa del bucle para que constantemente recalcule
los datos para cada variación.
if (Centigrados <24){
digitalWrite(rele,HIGH);
}else {
digitalWrite(rele,LOW);
}
delay (400);
}
Esto es lo que dice “EL FULANO” en el tutorial
Agora temos que preparar o código no IDE de Arduino e temos que ter en
conta os seguintes aspectos importantes:
if (Centigrados<24) {
digitalWrite(rele,HIGH);
} else {
digitalWrite(rele,LOW);
}
Estos son los MENSAJES DE ERROR que da el código al ponerlo a funcionar
Arduino:1.8.12 (Mac OS X), Tarjeta:"Arduino Uno"
/Users/Antonio/Desktop/Curso
Arduino/Termostato_acuario_1/Termostato_acuario_1.ino: In function 'void
setup()':
Termostato_acuario_1:30:7: error: request for member 'begin' in 'lcd', which is of
non-class type 'LiquidCrystal()'
lcd.begin(16,2);
^~~~~
Termostato_acuario_1:31:9: error: request for member 'print' in 'lcd', which is of
non-class type 'LiquidCrystal()'
lcd.print ("C= K="); //Ponemos espacios (6) para dejar sitio a los valores (el C
está en la posición 0, o=en la posición 1, 6 espacios,K,=,...)
^~~~~
Termostato_acuario_1:32:5: error: request for member 'setCursor' in 'lcd', which is
of non-class type 'LiquidCrystal()'
lcd.setCursor (0,1); //Ponemos el cursor en la posición = de la fila 1 (abajo)
^~~~~~~~~
Termostato_acuario_1:33:7: error: request for member 'print' in 'lcd', which is of
non-class type 'LiquidCrystal()'
lcd.print ("Temperatura");//Imprimimos las caracteres: Temperatura
^~~~~
/Users/Antonio/Desktop/Curso
Arduino/Termostato_acuario_1/Termostato_acuario_1.ino: In function 'void
loop()':
Termostato_acuario_1:40:7: error: request for member 'setCursor' in 'lcd', which is
of non-class type 'LiquidCrystal()'
lcd.setCursor(2,0);
^~~~~~~~~
Termostato_acuario_1:41:7: error: request for member 'print' in 'lcd', which is of
non-class type 'LiquidCrystal()'
lcd.print (Centigrados);
^~~~~
Termostato_acuario_1:42:7: error: request for member 'setCursor' in 'lcd', which is
of non-class type 'LiquidCrystal()'
lcd.setCursor (10,0);
^~~~~~~~~
Termostato_acuario_1:43:7: error: request for member 'print' in 'lcd', which is of
non-class type 'LiquidCrystal()'
lcd.print (Kelvin);
^~~~~
exit status 1
request for member 'begin' in 'lcd', which is of non-class type 'LiquidCrystal()'
Este informe podría contener más información con
"Mostrar salida detallada durante la compilación"
opción habilitada en Archivo -> Preferencias.