Blog para los futuros profesores del Máster de Secundaria en la especialidad de Tecnología en Salamanca
miércoles, 25 de enero de 2023
Aula domotizada
Control de temperatura y humedad para sistemas de calefacción/ventilación
Datos
Alumna: Estefanía González Taboada
Asignatura: Innovación Docente de la Especialidad de Tecnología
Titulación: Máster Universitario en Profesor de Educación Secundaria Obligatoria y Bachillerato, Formación Profesional y Enseñanza de Idiomas.
Centro: Universidad de SalamancaCurso: 2022/23
Proyecto
Descripción
Este proyecto se basa en un aparato capaz de medir la temperatura y la humedad del ambiente mostrando dichos datos a través de la pantalla LCD. Esta función podría ser aplicada en cualquier sistema de calefacción o ventilación como medida para controlar la temperatura y aclimatar la zona deseada de manera eficiente.
Cuando la temperatura sea “óptima”, el indicador LED verde se encenderá. En este caso, se ha seleccionado que el LED verde indique como temperatura "óptima" una temperatura ambiente igual o superior a 25 grados.
Cuando la temperatura sea “baja”, es decir, inferior a 25 grados se mantendrá encendido el LED de color azul para indicar esa temperatura baja.
Estas temperaturas son programables, es decir, podría cambiarse los valores para que los indicadores lumínicos dieran el aviso a mayor o menor temperatura de la indicada.
En cuanto a su utilidad en base a la enseñanza este proyecto podría utilizarse como una introducción a Arduino dentro de la asignatura de tecnología y digitalización de cualquier curso de la ESO, añadiendo mayor o menor complejidad en relación al curso que sea. Por ejemplo, si es un 1º o 2º curso se podría simplificar o facilitar el código a los alumnos y priorizar que sean capaces de identificar las piezas, los circuitos y realizar los montajes, mientras que si es un 3º o una optativa de 4º curso podríamos centrarnos en explicar como funciona ese código para que pudieran llegar ellos mismos a la solución o realizar modificaciones.
Componentes
1 Placa de Arduino ELEGOO UNO R3
1 Cable USB de alimentación
1 Placa prototipado
1 LCD 16 X 2
1 LED Verde
1 LED Azul
1 Potenciómetro
2 Resistencias 220Ω
1 Sensor de temperatura [TMP36]
Esquemas TINKERCAD
#include <LiquidCrystal.h> #include <dht_nonblocking.h> #define DHT_SENSOR_TYPE DHT_TYPE_11 static const int DHT_SENSOR_PIN = 2; DHT_nonblocking dht_sensor(DHT_SENSOR_PIN, DHT_SENSOR_TYPE); // initialize the LCD library with the numbers of the interface pins LiquidCrystal lcd(7, 8, 9, 10, 11, 12); void setup() { // set up the LCD's number of columns and rows: lcd.begin(16, 2); } /* * Poll for a measurement, keeping the state machine alive. Returns * true if a measurement is available. */ static bool measure_environment(float *temperature, float *humidity) { static unsigned long measurement_timestamp = millis(); /* Measure once every four seconds. */ if (millis() - measurement_timestamp > 1000ul) { if (dht_sensor.measure(temperature, humidity) == true) { measurement_timestamp = millis(); return (true); } } return (false); } void loop() { float temperature; float humidity; /* Measure temperature and humidity. If the functions returns true, then a measurement is available. */ if (measure_environment(&temperature, &humidity) == true) { lcd.setCursor(0, 0); lcd.print("T = "); lcd.print(temperature, 1); lcd.print("C"); lcd.setCursor(0, 1); lcd.print("H = "); lcd.print(humidity, 1); if (temperature > 25.0) { digitalWrite(5, HIGH); digitalWrite(4, LOW); } else { digitalWrite(5, LOW); digitalWrite(4, HIGH); } } }
CAJITA DE MÚSICA ILUMINADA
Datos
Descripción del proyecto
martes, 24 de enero de 2023
MÁQUINA EXPENDEDORA CON ARDUINO
Datos
Alumno: Mariam
Amrhar Martín
Asignatura:
Innovación Docente de la Especialidad de Tecnología
Titulación:
Máster Universitario en Profesor de Educación Secundaria Obligatoria y
Bachillerato, Formación Profesional y Enseñanza de Idiomas.
Centro:
Universidad de Salamanca
Curso:
2022/23
Contexto
El proyecto
está destinado para alumnos de 3º de la ESO que se encuentren cursando la
tecnología de Tecnología, donde podrán ver la utilidad de este tipo de Arduino en
un proyecto que puede ser utilizado para actividades cotidianas como la compra
de aperitivos o snacks en máquinas de vending.
Descripción del proyecto
En primer lugar,
se procederá a hacer una breve introducción sobre qué es Arduino y para qué
puede ser utilizado. Arduino se trata de una plataforma de creación de electrónica
de código abierto, la cual estará basada en hardware y software libre, flexible
y fácil de utilizar para los creadores y desarrolladores, permitiendo la
creación de diferentes tipos de microordenadores de una sola placa a los que la
comunidad de creadores puede darles diferentes tipos de uso.
Su funcionamiento
está basado en un microcontrolador ATMEL, siendo circuitos integrados en los
que se pueden grabar instrucciones, permitiendo la creación de programas que interactúan
con los circuitos de la placa.
Hecha esta
pequeña introducción, se puede ver que existe una gran variedad de proyectos
que se pueden llevar a cabo en Arduino, dónde éste puede ser utilizado para
cualquier cosa, desde relojes hasta robots.
En este
caso en concreto y para la asignatura de Innovación Docente de la Especialidad
de Tecnología se programado un Arduino que servirá como una máquina expendedora,
donde en primer lugar se recibirá al mensaje con un mensaje de “Bienvenido/a!”
en la pantalla LCD 1602 acoplada. Hecho esto se procederá a comprobar si existe
algún producto o no en la infraestructura y para poder hacer esto se utilizará
un botón que servirá como sensor, el cual se mantendrá pulsado en el caso que
no exista ningún producto que dispensar al usuario. Finalmente se imprimirá un
mensaje de error en la pantalla y se encenderá el diodo LED rojo, indicando que
la máquina no puede hacer su función.
A partir
de lo mencionado anteriormente, se continuará viendo que sucederá en el caso
que si se tenga algún producto y el sensor no se active y es que visto esto, se
procederá a definir que el mando a distancia servirá como la detección de
monedas de dichas máquinas, es decir, donde en las máquinas originales se
tendrá el mecanismo de detección de monedas en este caso se tendrá el mando a
distancia, el cual recibirá las señales a través de IR Receiver Module.
Por lo tanto, la máquina una vez haya hecho la comprobación referente a si
existe un objeto y éste sea el caso, el usuario procederá a utilizar el mando
para elegir un producto.
En el caso
que el usuario no seleccione nada en el mando, se irá a un caso error donde existirán
productos, pero el usuario no selecciona nada, por lo tanto, se imprimirá por
pantalla esto y se encenderá el diodo LED rojo, no pudiendo hacer la máquina su
función.
Finalmente,
en el caso que exista el producto y el usuario seleccione en el mando algún
producto, se encenderá el motor Stepper Motor 26byj-48, donde girará un
número determinado de veces hasta que el usuario reciba el producto, mostrando
por pantalla que la operación se ha producido con éxito y se encenderá el diodo
LED verde.
Montaje final y funcionamiento
Se adjuntará
un pequeño vídeo demostrando su funcionamiento
https://youtu.be/TIRdJfLA9Qg
Esquema de montaje
El esquema
del proyecto se ha realizado con la aplicación Autodesk TinkerCad, el
cual se adjuntará a continuación, así como con su circuito.
Materiales Utilizados
- ·
Placa
de Arduino ELEGOO UNO R3
- ·
Protoboard
- ·
Potenciómetro
de 10K
- ·
Diodo
LED rojo
- ·
Diodo
LED verde
- ·
Resistencia
220K Ω (2)
- ·
Resistencia
10KΩ
- ·
Pantalla
LCD 1602
- ·
Cable
puerto USB
- ·
Stepper
Motor 26byj-48
- ·
IR
Receiver Module
- ·
Momentary
button or Switch
Código
lunes, 23 de enero de 2023
SISTEMA DE CONTROL DE TEMPERATURA DE UN INVERNADERO
Vídeo demostrativo
Descripción del Proyecto
El objetivo del presente proyecto es el de controlar a través de un sensor de temperatura y humedad, las condiciones ambientales del interior de un invernadero que se mostrarán en un display y mediante un motor de corriente continúa (un ventilador) y una alarma que nos dará el aviso, se mantendrá la temperatura dentro de los límites determinados previamente.
Como entradas tenemos un sensor de temperatura y humedad, que en el esquema de Tinkerdad lo represento con un sensor de temperatura, ya que el programa no da la opción de seleccionar un único dispositivo que contenga las dos variables, que si lo contiene el paquete físico de Elegoo y como salidas, se mostrarán los valores de temperatura y humedad en la pantalla LCD, en la que se regulará la intensidad a través de un potenciómetro, se regulará la temperatura del interior del invernadero mediante un ventilador y se dará aviso del exceso de la misma con una alarma (buzzer). Como complementos se añadirán un módulo de suministro extra de energía para el tablero de circuitos y una pila de 9V.
Este proyecto podría encuadrarse dentro de la asignatura de tecnología para alumnos de 3º o 4º de la ESO.
Esquema de conexiones con Tinkerdad
Esquema del circuito con Tinkerdad
Código de Programación
#include <LiquidCrystal.h>
#include <dht_nonblocking.h>
#define DHT_SENSOR_TYPE DHT_TYPE_11
#define ENABLE 5
#define DIRA 3
#define DIRB 4
int i;
static const int DHT_SENSOR_PIN = 2;
DHT_nonblocking dht_sensor( DHT_SENSOR_PIN, DHT_SENSOR_TYPE );
// room temperature in Celsius
const float baselineTemp = 24.0;
int tempPin = 0;
// BS E D4 D5 D6 D7
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);
void setup() {
lcd.begin(16, 2);
//---set pin direction
pinMode(ENABLE,OUTPUT);
pinMode(DIRA,OUTPUT);
pinMode(DIRB,OUTPUT);
}
/* Poll for a measurement, keeping the state machine alive. Returns
true if a measurement is available */
static bool measure_environment( float *temperature, float *humidity )
{
static unsigned long measurement_timestamp = millis( );
/* Measure once every three seconds. */
if( millis( ) - measurement_timestamp > 3000ul )
{
if( dht_sensor.measure( temperature, humidity ) == true )
{
measurement_timestamp = millis( );
return( true );
}
}
return( false );
}
void loop() {
float temperature;
float humidity;
/* Measure temperature and humidity. If the functions returns
true, then a measurement is available. */
if( measure_environment( &temperature, &humidity ) == true )
{
lcd.print( "T = " );
lcd.print( temperature, 1 );
lcd.print( " deg. C " );
lcd.setCursor(0, 1);
lcd.print( "H = " );
lcd.print( humidity, 1 );
lcd.print( " % " );
} // if the temperature exceeds the set temperature
if (temperature >= baselineTemp) {
tone(6, 2000, 500);
delay(500);
tone(6, 5000, 500);
delay(500);
tone(6, 7000, 500);
delay(500);
tone(6, 9000, 500);
delay(1000);
tone(6, 7000, 500);
delay(500);
tone(6, 5000, 500);
delay(500);
tone(6, 2000, 500);
delay(500);
digitalWrite(ENABLE,HIGH);// Encender motor-ventilador si Tª>Temperatura base
digitalWrite(DIRA,HIGH);//one way
digitalWrite(DIRB,LOW);
delay(3000);
}
// if the temperature not exceeds the set temperature
if (temperature < baselineTemp ) {
digitalWrite(ENABLE, LOW);// Apagar motor-ventilador
}
}
Datos
Alumno: Aitor Ondarra Vega
Asignatura: Innovación Docente de la Especialidad de Tecnología.
Master: Máster Universitario en Profesor de Educación Secundaria Obligatoria y Bachillerato, Formación Profesional y Enseñanza de Idiomas.
Centro: Universidad de Salamanca.
Curso: 2022/2023.







