PROTEGER A NEOTERRA CON ARDUINO
Elizabeth Estrada
Created on August 26, 2024
More creations to inspire you
MINERALS AND ROCKS
Escape games
NERVOUS SYSTEM ESCAPE ROOM
Escape games
CEVICHE ESCAPE GAME
Escape games
THUNBERG CASE. TIME SOLDIERS
Escape games
SPACE INVADERS GAME
Escape games
A WORLD OF SPORTS
Escape games
HARRY POTTER ESCAPE GAME
Escape games
Transcript
¿Pertenecer o morir?
Misión:Seguridad en neoterra
Comenzar
1
2
3
4
5
La misión
La ciudad de NeoTerra ha emergido como un refugio de desarrollo sostenible con el fin de proteger a los pocos humanos del planeta que han logrado sobrevivir a un virus mortal sumamente contagioso, el virus cada vez se hace más resistente y se ha apoderado de cualquier ser con vida fuera de esta ciudad. Aunque todo parece estar bajo control,la gran capacidad de mutación de este virus ha traído consigo nuevas amenazas que ponen en riesgo la seguridad y estabilidad de la ciudad.
La misión
Como ingenieros de élite, mejor conocidos como los “Ingenieros de la resistencia” tienen la misión de proteger NeoTerra desarrollando y programando soluciones tecnológicas avanzadas utilizando una poderosa herramienta llamada Arduino. Solo hay una regla en Neo Terra, todos los habitantes sin excepción están llamados a involucrarse con el crecimiento de la ciudad y su seguridad, en caso de no hacerlo, serán desterrados y quedarán al acecho del virus que se ha apoderado del resto de la humanidad.
La base
NIVEL UNO
NIVEL UNO
NeoTerra ha sido blanco de ataques continuos que intentan burlar los sistemas de seguridad de la ciudad. Han habido reportes de intentos de intrusión en áreas restringidas, lo que requiere un sistema de alarma confiable para proteger los puntos críticos. ¿Están listos para el desafío?
ADELANTE
¡¡¡PREFIERO EL DESTIERRO!!!
¡atentos ingenieros!
DESAFÍO 6
DESAFÍO 1
DESAFÍO 2
DESAFÍO 4
DESAFÍO 3
DESAFIO 5
IINSIGNIA LOGRADA
MATERIAL A UTILIZAR
Programar una entrada o salida
deSAFÍO 1ALARMA ANTI-INTRUSOS
AYUDA
Instalación de librerías: “Grove_Chainable_RGB_LED”. Configuración de entradas y salidas:
- Salida Digital: buzzer (variable - “alarma”)
- Entrada Digital: sensor Pirolico (variable - “intruso”)
- Instrucciones para led RGB:
- Encender la alarma (buzzer) 2 segundos y apagarla (esto solo lo hará una vez).
- Encender el led en color azul por 1 segundo, apagarlo y encender el led en color rojo por 2 segundos.. y así cíclicamente.
Nivel 2
Desafío 1: Alarma Anti intrusos
- Instalar la librería: Grove_Chainable_RGB_LED
- Incluir la librería #include "ChainableLED.h" hasta arriba del programa.
- Usar la función ChainableLED leds(6,7,1); definir pines del led en “D6”.
- Recuerde usar la función delay para crear retardos de tiempo para el buzzer
- Usar la función leds.setColorRGB(0,R,G,B); donde se indica el led, color rojo, verde y azul.
- El valor de 255 indica la intensidad del color, experimente si quiere con ella.
Configuración de entradas y salidas: Alumbrado público
- Salida Digital: led rojo (variable - “foco”),
- Salida Digital: relay (variable - “cerradura”).
- Entrada Analógica: sensor de luz (variable - “luz”).
- Encender la cerradura (relay) 3 segundos y apagarlo (esto solo lo hará una vez).
- Encender el foco ( led rojo) 5 segundos, apagarlo 2 segundos … y así cíclicamente.
Programar una entrada o salida
deSAFÍO 2
AYUDA
IINSIGNIA LOGRADA
MATERIAL A UTILIZAR
Nivel 2
Desafío 2: Alumbrado Público
- En sensor de luz es analógico, puede conectarlo en uno de los puertos marcados A0 al A3.
- Antes del setup:
- Configurar el led, el relay y el sensor de luz.
- En el setup:
- Configurar entradas o salidas a los sensores.
- En el loop:
- Escribir en el led y relay
- Recuerde usar la función delay para crear retardos de tiempo para el led y relay
IMaterial a utilizar
IINSIGNIA LOGRADA
Programar una entrada o salida
deSAFÍO 3
Instalación de librerías: “Grove_LED_Bar” y “Grove Ultrasonic Ranger”Configuración de entradas y salidas:
- Salida Digital: led verde (variable - “indicador”)
- Encender el indicador (led verde) 5 segundos y apagarla (esto solo lo hará una vez).
- Encender la barra led completamente por 3 segundos, usando la instrucción bar.setLevel(10); después apagarla por 2 segundos usando la instrucción bar.setLevel(10);... y así cíclicamente.
AYUDA
Nivel 2
Desafío 3:
Antes del setup:
- Asegurarse de instalar las librerías buscando en el Arduino IDE: Grove_LED_Bar y Grove Ultrasonic Ranger
- Incluir la librería en el código #include <Ultrasonic.h>
- Incluir la librería en el código #include <Grove_LED_Bar.h>
- El voltaje al que trabaja la barra led es de 3.3V, si lo tiene a 5V puede que no funcione correctamente.
- Usar la función Grove_LED_Bar bar(4, 3, 0); para configurar la barra led (En este ejemplo está conectado en D3).
- Usar la función Ultrasonic ultrasonic(7); para configurar el sensor ultrasónico (En este ejemplo está conectado en D7).
- En el setup:
- Configurar el led como salida.
- En el loop:
- Escribir en el led y usar el delay para crear retardos de tiempo
- Usar la función bar.setLevel(10); para encender la barra led donde 10 es todos los leds encendidos y 0 todos los leds apagados.
IMaterial a utilizar
Instalación de librerías: “Grove-LCD RGB Backlight” y “Grove Temperature And Humidity Sensor”Configuración de entradas y salidas:
- Salida Digital: led del botón (variable - “indicador”)
- Entrada Digital : botón (variable -” interruptor”)
- Instrucciones para el display LCD:
- Instrucciones para el sensor de temperatura y humedad:
- Encender el indicador (led del botón) 10 segundos y apagarlo (esto solo lo hará una vez).
- Desplegar su nombre en el display LCD con las instrucciones:
IINSIGNIA LOGRADA
Programar una entrada o salida
deSAFÍO 4
AYUDA
Nivel 2
Desafío 4:
Antes del setup:
- Asegurarse de instalar las librerías buscando en el Arduino IDE: Grove-LCD RGB Backlight y Grove Temperature And Humidity Sensor
- Incluir las librerías en el código #include <Wire.h> #include <rgb_lcd.h> //Librerías del LCD
- Incluir la librería en el código #include "Grove_Temperature_And_Humidity_Sensor.h"
- Definir el sensor que vamos a ocupar con la instrucción #define DHTTYPE DHT11
- Usar función DHT dht(3, DHTTYPE); para configurar el pin en el que conectamos al sensor, en este caso está conectado a D3.
- Con la función rgb_lcd lcd; se declara al LCD como salida
- Recuerde antes del setup configurar el botón
- En el setup:
- Configurar el led del botón como salida y prenderlo
- Utilice las funciones lcd.begin(16,2); y dht.begin(); para inicializar el sensor y el LCD
- En el loop:
- Declare una variable numérica que se le asigne dht.readTemperature();
- Utilizar función lcd.setCursor(A,B); Donde A es la columna del LCD y B las filas, considere que empieza en 0.
- Utilice la función lcd.print("Texto"); Para mostrar texto en el LCD
- Utilice la función lcd.print(variable); Para mostrar el valor de la variable en el LCD.
IMaterial a utilizar
IINSIGNIA LOGRADA
Programar una entrada o salida
deSAFÍO 5
AYUDA
Instalación de librerías: “Grove-LCD RGB Backlight”Configuración de entradas y salidas:
- Entrada Digital: sensor de vibración (variable - “sismografo”)
- Salida Digital: speaker (variable - “alerta”)
- Instrucciones para el display LCD:
- Encender la alerta (speaker) 5 segundos y apagarla (esto solo lo hará una vez).
- Desplegar cíclicamente su nombre en el display LCD con las instrucciones:
Nivel 2
Desafío 5:
- Antes del setup:
- Asegurarse de instalar la librería buscando en el Arduino IDE: Grove-LCD RGB Backlight
- Incluir las librerías en el código #include <Wire.h> #include <rgb_lcd.h> //Librerías del LCD
- Con la función rgb_lcd lcd; se declara al LCD como salida
- Configurar el sensor y la bocina con sus pines.
- Declare una variable tipo entero sonido = 1911; El 1911 es el tono que va a emitir nuestra bocina
- En el setup:
- Configurar el sensor y la bocina como entradas o salidas
- Utilice la función lcd.begin(16,2); para inicializar el LCD
- En el loop:
- Utilizar función lcd.setCursor(A,B); Donde A es la columna del LCD y B las filas, considere que empieza en 0.
- Utilice la función lcd.print("Texto"); Para mostrar texto en el LCD
- Escribir en la bocina y usar el delay para crear retardos de tiempo
IMaterial a utilizar
- Instalación de librerías: “Grove 4-Digit Display”
- Configuración de entradas y salidas:
- Entrada Digital: sensor touch (variable - “interruptor”)
- Salida Digital: motor (variable - “microsismo”)
- Instrucciones para el display de 4 dígitos:
- #include "TM1637.h"
- TM1637 tm1637(6,7);
- tm1637.init();
- tm1637.set(BRIGHT_TYPICAL);
- Acciones:
- Encender el microsismo (motor) 5 segundos y apagarlo durante 7 segundos (esto solo lo hará una vez).
- Desplegar cíclicamente los números 1,1,3 y 0 en el display de con la ayuda de las instrucciones:
- char numero=0;
- tm1637.display(0,numero); Donde 0 es la posición del display y num es el número que se va a poner
IINSIGNIA LOGRADA
Programar una entrada o salida
deSAFÍO 6
AYUDA
Nivel 2
Desafío 6:
- Antes del setup:
- Asegurarse de instalar la librería buscando en el Arduino IDE: Grove 4-Digit Display
- Incluir la librería en el código #include "TM1637.h"
- Declara variables CLK y DIO para los pines donde conectaste el display (Por ejemplo si lo conectas en D6, deben ser CLK=6 y DIO=7)
- Usar la función TM1637 tm1637(CLK,DIO); para configurar el display
- Configurar el sensor y el motor con sus pines.
- En el setup:
- Usar los comandos tm1637.init(); y tm1637.set(BRIGHT_TYPICAL); para inicializar el display.
- Configurar el sensor y el motor como entradas o salidas
- En el loop:
- Declara una variable tipo char y asigna el numéro que quieres que se ponga en el display (ejemplo char num=0;)
- tm1637.display(0,num); Donde 0 es la posición del display , num es lo que se va poner
- Escribir en el motor y usar el delay para crear retardos de tiempo
La base
NIVEL DOS
Ataques dirigidos a la red eléctrica están causando apagones inesperados, esto afecta a todos nuestros sistemas. Es crucial desarrollar sistemas más inteligentes, el virus sigue asechando.
ADELANTE
¡¡¡PREFIERO EL DESTIERRO!!!
¡vamos bien, pero no es suficiente!
NIVEL 2
DESAFÍO 6
DESAFÍO 1
DESAFÍO 2
DESAFÍO 4
DESAFÍO 3
DESAFIO 5
Nivel 2
deSAFÍO 1ALARMA ANTI-INTRUSOS
Monitorear un sensor en el monitor serial
MATERIAL A UTILIZAR
IINSIGNIA LOGRADA
AYUDA
Declaración de variables
- Variable tipo entero: num1 = 7
- Variable tipo entero: num2 = 6
- Variable tipo entero: dividendo = 89
- Variable tipo flotante: divisor = 2.84
- Desplegar su nombre, edad y ocupación en diferentes líneas de texto en el monitor serial.
- Desplegar el texto “Resultado de la suma:” seguido del valor que da la suma de num1 y num2.
- Realizar una división con el valor de dividendo y divisor, mostrar el resultado como tipo double en el monitor serial.
Nivel 3
DESAFÍO 1: AYUDA
- En el setup:
- Ocupar Serial.begin(9600); Para inicializar el monitor serial
- En el loop:
- Usar Serial.println("Texto"); o Serial.print(variable, decimales); para que se despliegue una línea de texto en el monitor serial.
- Los valores numéricos enteros se declaran con int
- Recuerde la prioridad de los operadores aritméticos al hacer los cálculos (), *, /, %, +, -
deSAFÍO 2Alumbrado público
Monitorear un sensor en el monitor serial
MATERIAL A UTILIZAR
IINSIGNIA LOGRADA
AYUDA
Declaración de variables
- Variable tipo entero: dividendo = 89
- Variable tipo flotante: divisor = 2.84
- Variable tipo entero: sensor = analogRead()
- Desplegar su nombre, edad y ocupación en diferentes líneas de texto en el monitor serial.
- Desplegar en el monitor serial el valor que arroja la lectura del sensor de luz cada 2 segundos.
- Realizar una división con el valor de dividendo y divisor, mostrar el resultado como tipo double en el monitor serial.
Nivel 3
AYUDA PARA EL DESAFÍO 2
En el setup:
- Ocupar Serial.begin(9600); Para inicializar el monitor serial
- Usar Serial.println("Texto"); o Serial.print(variable, decimales); para que se despliegue una línea de texto en el monitor serial.
- Cuando se declare la variable “sensor”, hacerlo en el void loop().
- Los valores numéricos enteros se declaran con int
deSAFÍO 3medidor de nivel de agua
Monitorear un sensor en el monitor serial
MATERIAL A UTILIZAR
IINSIGNIA LOGRADA
AYUDA
Declaración de variables
- Variable tipo entero: cm = ultrasonic.MeasureInCentimeters()
- Variable tipo flotante: inch
- Desplegar su nombre, edad y ocupación en diferentes líneas de texto en el monitor serial.
- Desplegar en el monitor serial el texto “Medicion en centimetros:” seguido del valor de la variable cm
- Realizar la operación para convertir de centímetros a pulgadas y asignar el resultado a la variable “inch”
- Desplegar en el monitor serial el texto “Medicion en pulgadas:” seguido del valor de la variable inch.
Nivel 3
- En el setup:
- Ocupar Serial.begin(9600); Para inicializar el monitor serial
- En el loop:
- Usar Serial.println("Texto"); o Serial.print(variable, decimales); para que se despliegue una línea de texto en el monitor serial, use más de una para escribir todos los datos como nombre, ocupación y edad.
- Declarar una variable entera y asignarle función ultrasonic.MeasureInCentimeters();
- Desplegar en el monitor serial, dividiendo el valor de la variable entera entre 2.14 para obtener pulgadas.
AYUDA PARA EL DESAFÍO 3
deSAFÍO 4control de temperatura
Monitorear un sensor en el monitor serial
MATERIAL A UTILIZAR
IINSIGNIA LOGRADA
AYUDA
Declaración de variables
- Variable tipo flotante: celcius =dht.readTemperature()
- Variable tipo flotante: kelvin
- Desplegar su nombre, edad y ocupación en diferentes líneas de texto en el monitor serial.
- Desplegar cada 2 segundos en el monitor serial el texto “Temperatura en celsius” seguido del valor de la variable celsius.
- Realizar la operación para convertir de grados celsius a kelvin y asignar el resultado a la variable “kelvin”
- Desplegar cada 1 segundo en el monitor serial el texto “Temperatura en kelvin” seguido del valor de la variable kelvin.
- Desplegar en el display LCD el texto “Temperatura” y abajo el valor de la variable celsius.
Nivel 3
- En el setup:
- Ocupar Serial.begin(9600); Para inicializar el monitor serial
- En el loop:
- Usar Serial.println("Texto"); o Serial.print(variable, decimales); para que se despliegue una línea de texto en el monitor serial, use más de una para escribir todos los datos como nombre, ocupación y edad.
- El sensor entrega la temperatura en grados celsius, para pasarlo a kelvin se tiene que sumar 273.15
- Utilice la función lcd.print("Texto"); Para mostrar texto en el LCD
- Utilice la función lcd.print(variable); Para mostrar el valor de la variable en el LCD.
AYUDA PARA EL DESAFÍO 4
deSAFÍO 5alerta sísmica
Monitorear un sensor en el monitor serial
MATERIAL A UTILIZAR
IINSIGNIA LOGRADA
AYUDA
Declaración de variables
- Variable tipo entero: num1 = 7
- Variable tipo entero: num2 = 6
- Variable tipo entero: dividendo = 89
- Variable tipo flotante: divisor = 2.84
- Desplegar su nombre, edad y ocupación en diferentes líneas de texto en el monitor serial.
- Desplegar en el monitor serial y el display LCD el texto “Resultado suma:” seguido del valor que da la suma de num1 y num2.
- Realizar una división con el valor de dividendo y divisor, mostrar el resultado como tipo double en el monitor serial.
Nivel 3
DESAFÍO 5: AYUDA
- En el setup:
- Ocupar Serial.begin(9600); Para inicializar el monitor serial
- En el loop:
- Usar Serial.println("Texto"); o Serial.print(variable, decimales); para poner texto en el monitor serial, use más de una para escribir todos los datos como nombre, ocupación y edad.
- Los valores numéricos enteros se declaran con int
- Aplicar una conversión de valores numéricos ejemplo double(valor2);
- Utilice la función lcd.print(variable); Para mostrar el valor de la variable en el LCD.
- Recuerde la prioridad de los operadores aritméticos al hacer los cálculos (), *, /, %, +, -
deSAFÍO 6generador de microsismo
Monitorear un sensor en el monitor serial
MATERIAL A UTILIZAR
IINSIGNIA LOGRADA
AYUDA
Declaración de variables
- Variable tipo entero: num1 = 7
- Variable tipo entero: num2 = 6
- Variable tipo entero: dividendo = 89
- Variable tipo flotante: divisor = 2.84
- Desplegar su nombre, edad y ocupación en diferentes líneas de texto en el monitor serial.
- Desplegar el texto “Resultado de la suma:” seguido del valor que da la suma de num1 y num2.
- Realizar una división con el valor de dividendo y divisor, mostrar el resultado como tipo double en el monitor serial.
Nivel 3
Desafío 6: Ayuda
- En el setup:
- Ocupar Serial.begin(9600); Para inicializar el monitor serial
- En el loop:
- Usar Serial.println("Texto"); o Serial.print(variable, decimales); para poner texto en el monitor serial, use más de una para escribir todos los datos como nombre, ocupación y edad.
- Declare más variables char num=1;para poner más números en el display con la sentencia tm1637.display(3,num);
- Los valores numéricos enteros se declaran con int
- Aplicar una conversión de valores numéricos ejemplo double(valor2);
- Recuerde la prioridad de los operadores aritméticos al hacer los cálculos (), *, /, %, +, -
La base
NIVEL tres
Ustedes son Ingenieros de Élite, ¿lo están demostrando?El resto de la vida humana depende de ustedes, ¿qué harán para que no se extinga?
ADELANTE
¡¡¡PREFIERO EL DESTIERRO!!!
¿realmente lo son?
NIVEL 3
DESAFÍO 6
DESAFÍO 1
DESAFÍO 2
DESAFÍO 4
DESAFÍO 3
DESAFIO 5
Nivel 4
Controlar los sensores con estructuras de control
IINSIGNIA LOGRADA
MATERIAL A UTILIZAR
AYUDA
deSAFÍO 1ALARMA ANTI-INTRUSOS
- Declaración de variables
- Variable tipo entero: lectura=digitalRead(intruso);
- Acciones:
- Con el ciclo if, hacer un programa que cuando intruso (sensor Pirolico) detecte movimiento:
- Encender la alarma (buzzer) 3 segundos y apagarla por 2 segundos cíclicamente.
- Encender el led en color azul por 1 segundo, apagarlo y encender el led en color rojo por 2 segundos.. y así cíclicamente.
- Desplegar en el monitor serial el texto “Intruso detectado!”
- En caso contrario (cuando intruso no detecte nada):
- Desplegar en el monitor serial el texto “No hay intrusos”
- Mantener apagado el led y la alarma (buzzer).
Nivel 4
Encuentra la pista que necesitas para seguir avanzando
- En el setup:
- Ocupar Serial.begin(9600); Para inicializar el monitor serial
- En el loop:
- Usar Serial.println("Texto"); o Serial.print(variable, decimales); para poner texto en el monitor serial, use más de una para escribir todos los datos como nombre, ocupación y edad.
- Declare más variables char num=1;para poner más números en el display con la sentencia tm1637.display(3,num);
- Los valores numéricos enteros se declaran con int
- Aplicar una conversión de valores numéricos ejemplo double(valor2);
- Recuerde la prioridad de los operadores aritméticos al hacer los cálculos (), *, /, %, +, -
Controlar los sensores con estructuras de control
IINSIGNIA LOGRADA
MATERIAL A UTILIZAR
AYUDA
Declaración de variables
- Variable tipo entero: lectura = analogRead(luz);
- Identificar cual es el valor máximo del sensor de luz en el lugar donde se encuentra
- Con el ciclo if, hacer un programa que cuando luz (sensor de luz ) sea menor que el (máximo valor- 200):
- Encender la cerradura (relay) 3 segundos y apagarla por 2 segundos … cíclicamente.
- Encender el foco ( led rojo) .
- Desplegar en el monitor serial el texto “Es noche, sistema de seguridad activado”
- En caso contrario (cuando luz tenga más que (máximo valor- 200)):
- Desplegar en el monitor serial el texto “Aún hay luz, sistema de seguridad esperando”
- Mantener apagado el foco ( led rojo)y la cerradura (relay).
deSAFÍO 2Alumbrado público
Nivel 4
Encuentra la pista que necesitas para seguir avanzando
- Identificar cual es el valor máximo del sensor de luz en el lugar donde se encuentra
- En el loop:
- Declarar una variable entera asignándole analogRead(variable);
- Cuando el valor del sensor sea máximo el led y relay deben estar apagados.
- Cuando el valor del sensor disminuya a ValorMáximo-150 el led y relay deben estar encendidos.
- Recuerde usar los operadores como mayor que <, menor que > o mayor igual <= y menor igual >= para la condición del if. ejemplo (if (valor<300))
Controlar los sensores con estructuras de control
IINSIGNIA LOGRADA
MATERIAL A UTILIZAR
AYUDA
Declaración de variables
- Variable tipo entero: cm = ultrasonic.MeasureInCentimeters();
- Con el ciclo if, hacer un programa que cuando cm (sensor ultrasónico ) sea mayor o igual que 11:
- Apagar la barra led
- Encender el indicador ( led verde) .
- Desplegar en el monitor serial el texto “Ya no hay agua, llenar de inmediato”
- Crear con ciclos else if (cuando cm vaya de 1 cm hasta 10 cm detectados):
- Encender la barra led con el número de leds que corresponden inversamente a cada condición (ejemplo detecta 10 cm, enciende 1 led, detecta 7 cm encienden 4 led)
- Desplegar en el monitor serial el texto “Tanque al x% de su capacidad”, donde x cambia de acuerdo a la medida de cm.
deSAFÍO 3medidor de nivel de agua
Nivel 4
DESAFÍO 3: AYUDA
- La barra led funciona correctamente con 3.3 V, no tener el shield a 5V.
- En el loop:
- Con varios if, condicionar al código para que cuando la medida sea 10 cm, prenda el led y la barra led esté solamente con un led encendido y cuando vaya disminuyendo la distancia, la barra se ilumine con más leds. Cuando alcance la distancia de 1 cm, la barra led debe tener todos los leds, y el led verde debe estar apagado.
- Usar la función bar.setLevel(10); para encender la barra led donde 10 es todos los leds encendidos y 0 todos los leds apagados
- Recuerde usar los operadores como mayor que <, menor que > o mayor igual <= y menor igual >= para la condición del if.
Controlar los sensores con estructuras de control
IINSIGNIA LOGRADA
MATERIAL A UTILIZAR
AYUDA
Declaración de variables
- Variable tipo entero: lecturaboton= digitalRead(interruptor);
- Con el ciclo if, hacer un programa que cuando lecturaboton (interruptor ) sea igual a 0:
- Encender el indicador (led del botón)
- Desplegar en el monitor serial el texto “Temperatura en kelvin” seguido del valor de la variable kelvin.
- Desplegar en el display LCD el texto “Temperatura” y abajo el valor de la variable celsius.
- En caso contrario ( lecturaboton (boton ) sea igual a 1):
- Apagar el indicador (led del botón)
- Desplegar en el monitor serial el texto “Presionar el botón para desplegar datos en el display ”
- Usar la instruccion lcd.clear(); para limpiar el display y que no aparezca ningún mensaje.
deSAFÍO 4control de temperatura
Nivel 4
Encuentra la pista que necesitas para seguir avanzando
- El valor del botón es siempre 1 hasta que es presionado, cuando eso sucede su valor es 0.
- En el loop:
- Declarar una variable entera asignándole digitalRead(variabledelsensor);
- Crear un ciclo if, en donde si la variable recién creada es igual a 0, despliegue en el monitor serial que el sensor mide la temperatura en grados kelvin, en el LCD la temperatura en grados celsius y el led se encienda.
- Use la condición else para limpiar el LCD usando lcd.clear(); y apagar el led.
- Recuerde usar el operador == para la condición del if.Ejemplo (if(variable==1))
Controlar los sensores con estructuras de control
IINSIGNIA LOGRADA
MATERIAL A UTILIZAR
AYUDA
Declaración de variables
- Variable tipo entero: lecturasismo= digitalRead(sismografo);
- Variable tipo entero : tono= 1911;
- Con el ciclo if, hacer un programa que cuando lecturasismo(boton ) sea igual a 0:
- Desplegar en el display LCD el texto “Alerta sísmica”
- Con un ciclo for que su máximo valor sea 49, prender la bocina con un delay en microsegundos de la variable tono.
- En caso contrario ( lecturasismo (sensor de vibración ) sea igual a 1):
- Apagar la bocina (speaker)
- Usar la instrucción lcd.clear(); para limpiar el display y después desplegar el texto “Todo bien”.
- Mostrar en el monitor serial el texto “Placas tectónicas tranquilas”
deSAFÍO 5alerta sísmica
Nivel 4
DESAFÍO 5: AYUDA
- En el loop:
- Declarar una variable entera asignándole digitalRead(variabledelsensor);
- Crear un ciclo if, en donde si la variable recién creada es igual 1, despliegue en el LCD “alerta sismica” y el speaker encienda y apague mediante un for; cuando la variable sea igual a 0 despliegue en el LCD “Todo bien” y el speaker no suene.
- Recuerde la sintaxis del for(int variable=0; condición ;incremento de variable)
- Recuerde usar el operador == para la condición del if. Ejemplo (if(variable==1))
Controlar los sensores con estructuras de control
IINSIGNIA LOGRADA
MATERIAL A UTILIZAR
AYUDA
Declaración de variables
- Variable tipo entero: touch= digitalRead(interruptor);
- Con el ciclo if, hacer un programa que cuando touch(sensor touch ) sea igual a 1:
- Desplegar en el monitor serial el texto “Sismo activado”
- Encender el microsismo (motor) durante 5 segundos y apagarlo.
- Mantener los números 1,1,3 y 0 en el display
- En caso contrario (touch (sensor touch ) sea igual a 0):
- Apagar el microsismo (motor)
- Desplegar en el monitor serial el texto “Placas tectónicas tranquilas”
- Mostrar en el display los números 0,0,0 y 0
deSAFÍO 6generador de microsismo
Nivel 4
DESAFÍO 6: AYUDA
- En el loop:
- Declarar una variable entera asignándole digitalRead(variabledelsensor);
- Crear una ciclo if, en donde si la variable recién creada es igual 1, en el monitor serial despliegue “Sismo activado” y el motor encienda durante 5 segundos; cuando la variable sea igual a 0 en el monitor serial despliegue"Placas tectonicas tranquilas" y el motor esté apagado.
- Recuerde que en el delay() se usan microsegundos, por lo tanto 1000 es 1 segundo.
- Recuerde usar el operador == para la condición del if. Ejemplo (if(variable==1))
La base
NIVEL cuatro
"El verdadero poder de un ingeniero de élite no está en lo que puede hacer solo, sino en lo que podemos lograr juntos."
ADELANTE
¡¡¡PREFIERO EL DESTIERRO!!!
el equipo
NIVEL 4
DESAFÍO 6
DESAFÍO 1
DESAFÍO 2
DESAFÍO 4
DESAFÍO 3
DESAFIO 5
Nivel Final
Complemento con el uso de funciones
IINSIGNIA LOGRADA
MATERIAL A UTILIZAR
AYUDA
deSAFÍO 1 y 2
- Pasos a seguir
- Nombrar una carpeta con el mismo nombre del código del Desafío 2.
- Guardar ambos códigos en la misma carpeta.
- Modificar los códigos ya creados en el nivel 3
- Modificaciones a los códigos del nivel 3:
- En el desafío 3
- Cambiar el nombre de la función setup(), por el nombre configuracióndesafio1
- Cambiar el nombre de la función loop(), por el nombre programadesafio1
- Verificar que ningún sensor o actuador estén conectados en los mismos pines.
- En el desafío 4
- En la función setup(), colocar la función del desafío 1 que solo se hará una vez
- En la función loop(), colocar la función del desafío 1 que se repetirá cíclicamente.
Nivel 5
Encuentra la pista que necesitas para seguir avanzando
DESAFÍO 1 y 2
- Ambos códigos deben estar en la misma carpeta creada en el explorador de windows.
- La carpeta debe tener el mismo nombre que uno de los códigos (ejemplo: Desafío_2_Nivel4)
- Un solo sketch debe tener las funciones void setup() y void loop()
- Verifique que las funciones no tengan el mismo nombre, no pueden existir dos funciones o más que tengan el mismo nombre.
- Si la función solo se ejecutará una vez en el desafío, colóquela en la función setup()
- Si la función se repetirá cíclicamente, colóquela en la función loop()
Complemento con el uso de funciones
IINSIGNIA LOGRADA
MATERIAL A UTILIZAR
AYUDA
deSAFÍO 3 y 4: Temperatura y agua
- Pasos a seguir
- Nombrar una carpeta con el mismo nombre del código del Desafío 4.
- Guardar ambos códigos en la misma carpeta.
- Modificar los códigos ya creados en el nivel 3.
- Modificaciones a los códigos del nivel 3:
- En el desafío 3
- Cambiar el nombre de la función setup(), por el nombre configuracióndesafio3
- Cambiar el nombre de la función loop(), por el nombre programadesafio3
- Verificar que ningún sensor o actuador estén conectados en los mismos pines.
- En el desafío 4
- En la función setup(), colocar la función del desafío 3 que solo se hará una vez
- En la función loop(), colocar la función del desafío 3 que se repetirá cíclicamente.
Nivel 5
Encuentra la pista que necesitas para seguir avanzando
DESAFÍO 3 y 4
- Ambos códigos deben estar en la misma carpeta creada en el explorador de windows.
- La carpeta debe tener el mismo nombre que uno de los códigos (ejemplo: Desafío_4_Nivel4)
- Un solo sketch debe tener las funciones void setup() y void loop()
- Verifique que las funciones no tengan el mismo nombre, no pueden existir dos funciones o más que tengan el mismo nombre.
- Si la función solo se ejecutara una vez en el desafío, colóquela en la función setup()
- Si la función se repetirá cíclicamente, colóquela en la función loop()
Complemento con el uso de funciones
IINSIGNIA LOGRADA
MATERIAL A UTILIZAR
AYUDA
.Desafío 5 y 6: Sismo
- Pasos a seguir
- Nombrar una carpeta con el mismo nombre del código del Desafío 6.
- Guardar ambos códigos en la misma carpeta.
- Modificar los códigos ya creados en el nivel 3
- Modificaciones a los códigos del nivel 3:
- En el desafío 5
- Cambiar el nombre de la función setup(), por el nombre configuracióndesafio5
- Cambiar el nombre de la función loop(), por el nombre programadesafio5
- Verificar que ningún sensor o actuador estén conectados en los mismos pines.
- En el desafío 6
- En la función setup(), colocar la función del desafío 5 que solo se hará una vez
- En la función loop(), colocar la función del desafío 5 que se repetirá cíclicamente.
Nivel 5
Encuentra la pista que necesitas para seguir avanzando
DESAFÍO 5 Y 6
- Ambos códigos deben estar en la misma carpeta creada en el explorador de windows.
- La carpeta debe tener el mismo nombre que uno de los códigos (ejemplo: Desafío_6_Nivel4)
- Un solo sketch debe tener las funciones void setup() y void loop()
- Verifique que las funciones no tengan el mismo nombre, no pueden existir dos funciones o más que tengan el mismo nombre.
- Si la función solo se ejecutara una vez en el desafío, colóquela en la función setup()
- Si la función se repetirá cíclicamente, colóquela en la función loop()
La base
NIVEL cinco
REPORTE AL CUARTEL GENERAL
¿CUÁL FUE EL RESULTADO DE LA MISIÓN?
Respuesta incorrecta
Respuesta incorrecta
Respuesta correcta
Respuesta incorrecta
¿Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat enim ad minima veniam?
pregunta 3/3
Misión completada
Has ayudado al desarrollo sostenible de NeoTerra y con ello, asegurar tu supervivencia
Empezar de nuevo
¿Seguro que quieres salir?
Perderás el progreso
Volver
salir
Misión fallida
Hasta la vista, baby...
Intentar de nuevo