Proyecto para las Olimpiadas Electrónica 2022
Esquemático realizado por el equipo de los siguientes integrantes:
*Ángel Toloza – 44.370.736
*Facundo Videla -46.227.923
Código Arduino Uno
/*El siguiente codigo fue progamado por el grupo de Facundo Videla Prats y Angel Enrique Toloza
Cavallo, donde el siguiente codigo controlara la manta dependiendo de la funcion
* seleccionada y la temperatura que se desea mantener, de modo evitar que la misma se caliente
o enfrie de forma execiva.
* Pra el funcionamiento del siguiente codigo sera necesario la libreria "DHT11" la cual sera vital
para el control de temparatura.
*/
#include <DHT11.h>
int pin=5; //pin digital por donde se medira la temperatura
DHT11 dht11(pin);
int estado=0;
#define In 4
#define F 3
#define C 2
void setup() {
Serial.begin(9600);
pinMode(In, INPUT_PULLUP); //Boton de inicio, la misma no esta puesta en la placa por que esta
estaria conectada directamente del pin al boton y de ahi al negativo
pinMode(F, OUTPUT); //Salida para encender el Frio
pinMode(C, OUTPUT); //Salida para encender el calor
pinMode(6, OUTPUT); //Salida para encender la valvula que cambiara o movera el agua para
mantener todo el liquido a la misma temperatura
digitalWrite(6, HIGH);
void loop() {
int err;
float temp, hum; //de aca solo se usara la temp(temperatura), solo que el codigo no funciona
si no esta completo
if((err = dht11.read(hum, temp)) == 0) // Si devuelve 0 es que ha leido bien
Serial.print("Temperatura: ");
Serial.print(temp);
Serial.println();
else //El puerto Serie fue puesto para medir y probar
Serial.println();
Serial.print("Error Num :");
Serial.print(err);
Serial.println();
}
delay(1000);
if(!digitalRead(In)){
delay(500);
estado++;
if(estado >=3){
estado=0;
switch (estado) {
case 0:
digitalWrite(C, LOW);
digitalWrite(F, LOW);
break;
case 1:
digitalWrite(F, LOW); //Valores de temperatura de prueba(los verdaderos valores no
se los hemos puestos ya que no teniamos los elementos para probarlo)
if(temp <= 23.00){
digitalWrite(C, HIGH);
if(temp >= 25.00){
digitalWrite(C, LOW);
}
break;
case 2:
digitalWrite(C, LOW); //Valores de temperatura de prueba(los verdaderos valores no se
los hemos puestos ya que no teniamos los elementos para probarlo)
if(temp <= 23.00){
digitalWrite(F, HIGH);
if(temp >= 25.00){
digitalWrite(F, LOW);
break;
default:break;
Esquemático para el diseño de placa