ENCUESTA SALUDABLE
ENCUESTA SALUDABLE
Sensores, pulsadores y su integración en circuitos electrónicos funcionales.
Comprender cómo funcionan los sensores, en especial los pulsadores y los sensores de luz, integrándolos en un sistema electrónico práctico: un contador de 0 a 99 visualizado en un display de 7 segmentos.
Un sensor es un dispositivo capaz de detectar cambios físicos en el entorno (como luz, temperatura o presión) y convertirlos en señales eléctricas que pueden ser procesadas por un sistema electrónico.
Un pulsador es un tipo de interruptor momentáneo. Solo permite el paso de corriente cuando se presiona. En este proyecto, servirá para aumentar (o disminuir) el valor del contador cada vez que se active manualmente.
Es un componente cuya resistencia eléctrica varía según la cantidad de luz que recibe. En condiciones de oscuridad su resistencia es alta; con luz intensa, baja. Esto permite usarlo para activar el contador automáticamente al detectar cambios de iluminación, como una sombra o el paso de una mano.
Visualizador LED 7 segmentos: mostrará números del 0 al 99.
Contador: se incrementará con cada señal de entrada.
Entrada por pulsador: cada vez que se presiona, aumenta en 1 el conteo.
Entrada por sensor de luz: al detectar una disminución en la luz (por ejemplo, al tapar el sensor), también se puede aumentar el contador, generando una interacción sin contacto físico.
Pulsador: como el botón de encendido del televisor, este proyecto usa uno para "decirle" al contador que avance.
Fotoresistor: como las farolas automáticas que se encienden cuando oscurece, el sensor LDR en este proyecto permite contar automáticamente al detectar cambios de luz.
Actividad:
Cada estudiante debe investigar y plasmar en su cuaderno de Innovación Tecnológica:
Título: "Mi primer sistema: Encendiendo un LED con un pulsador"
Puntos de investigación:
¿Busca en la web que color de Led fue mas dificil de inventar y que beneficios trajo a la industria tecnologica?
¿Qué es un VISUALIZADOR 7 SEGMENTOS y para que sirve realiza el respectivo dibujo con sus leds internos y su respectiva nomenclatura?
¿Que es un condicional if else?
¿Por que es importante usar el delay en programacion?
¿Que es la electronica digital y cual es su importancia en la modernidad?.
Nota: Es importante que escriban y dibujen el circuito a mano en su cuaderno.
TRABAJO EN GRUPO (50 minutos)
Actividad grupal en TinkerCAD (Equipos de 3 o 4 estudiantes)
Instrucción:
Diseñar y simular un visualizador de 7 segmentos que cuente del 0 al 99 cuando se presione un pulsador.
Lo que deben entregar:
Circuito funcional en TinkerCAD.
Código en Arduino para programar el conteo.
Plano de montaje (captura de pantalla o dibujo en el cuaderno).
Plano básico del montaje:
Arduino UNO
Pulsador (push button)
Visualizador de 7 segmentos (común cátodo preferiblemente)
Resistencias (220 ohm) para los segmentos
Cables de conexión (protoboard virtual)
CODIGO DE AYUDA.
// Asignación de segmentos del display a los pines del Arduino
// DISPLAY 1 (unidades)
int a = 2;
int b = 3;
int c = 4;
int d = 5;
int e = 6;
int f = 7;
int g = 8;
// DISPLAY 2 (decenas)
int A = 9;
int B = 10;
int C = 11;
int D = 12;
int E = 13;
int F = A0;
int G = A1;
// Pin del pulsador
const int pulsador = A2;
int contador = 0; // Variable para almacenar el contador
int estadoPulsador = 0; // Estado actual del pulsador
int estadoAnterior = 0; // Estado anterior del pulsador
void setup() {
// Configuración de los pines de salida para los displays
pinMode(a, OUTPUT);
pinMode(b, OUTPUT);
pinMode(c, OUTPUT);
pinMode(d, OUTPUT);
pinMode(e, OUTPUT);
pinMode(f, OUTPUT);
pinMode(g, OUTPUT);
pinMode(A, OUTPUT);
pinMode(B, OUTPUT);
pinMode(C, OUTPUT);
pinMode(D, OUTPUT);
pinMode(E, OUTPUT);
pinMode(F, OUTPUT);
pinMode(G, OUTPUT);
// Configuración del pin del pulsador como entrada
pinMode(pulsador, INPUT_PULLUP);
}
void loop() {
// Leer el estado del pulsador
estadoPulsador = digitalRead(pulsador);
// Detectar flanco descendente (cuando se presiona el pulsador)
if (estadoPulsador == LOW && estadoAnterior == HIGH) {
// Incrementar el contador (módulo 100 para que vuelva a 0 después de 99)
contador = (contador + 1) % 100;
// Pequeña espera para evitar rebotes del pulsador
delay(50);
}
// Actualizar el estado anterior del pulsador
estadoAnterior = estadoPulsador;
// Mostrar el número actual en los displays
mostrarNumero(contador);
}
// Función para mostrar un número de 0 a 99 en los dos displays
void mostrarNumero(int numero) {
int decenas = numero / 10;
int unidades = numero % 10;
// Mostrar decenas en el segundo display
mostrarDigito(decenas, true);
// Mostrar unidades en el primer display
mostrarDigito(unidades, false);
}
// Función para mostrar un dígito (0-9) en un display específico
void mostrarDigito(int digito, bool esDecena) {
// Apagar todos los segmentos primero
if (esDecena) {
digitalWrite(A, LOW);
digitalWrite(B, LOW);
digitalWrite(C, LOW);
digitalWrite(D, LOW);
digitalWrite(E, LOW);
digitalWrite(F, LOW);
digitalWrite(G, LOW);
} else {
digitalWrite(a, LOW);
digitalWrite(b, LOW);
digitalWrite(c, LOW);
digitalWrite(d, LOW);
digitalWrite(e, LOW);
digitalWrite(f, LOW);
digitalWrite(g, LOW);
}
// Encender los segmentos según el dígito
switch (digito) {
case 0:
if (esDecena) {
digitalWrite(A, HIGH);
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, HIGH);
digitalWrite(E, HIGH);
digitalWrite(F, HIGH);
digitalWrite(G, LOW);
} else {
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, HIGH);
digitalWrite(g, LOW);
}
break;
case 1:
if (esDecena) {
digitalWrite(A, LOW);
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, LOW);
digitalWrite(E, LOW);
digitalWrite(F, LOW);
digitalWrite(G, LOW);
} else {
digitalWrite(a, LOW);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, LOW);
digitalWrite(e, LOW);
digitalWrite(f, LOW);
digitalWrite(g, LOW);
}
break;
case 2:
if (esDecena) {
digitalWrite(A, HIGH);
digitalWrite(B, HIGH);
digitalWrite(C, LOW);
digitalWrite(D, HIGH);
digitalWrite(E, HIGH);
digitalWrite(F, LOW);
digitalWrite(G, HIGH);
} else {
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, LOW);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, LOW);
digitalWrite(g, HIGH);
}
break;
case 3:
if (esDecena) {
digitalWrite(A, HIGH);
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, HIGH);
digitalWrite(E, LOW);
digitalWrite(F, LOW);
digitalWrite(G, HIGH);
} else {
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, LOW);
digitalWrite(f, LOW);
digitalWrite(g, HIGH);
}
break;
case 4:
if (esDecena) {
digitalWrite(A, LOW);
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, LOW);
digitalWrite(E, LOW);
digitalWrite(F, HIGH);
digitalWrite(G, HIGH);
} else {
digitalWrite(a, LOW);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, LOW);
digitalWrite(e, LOW);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
}
break;
case 5:
if (esDecena) {
digitalWrite(A, HIGH);
digitalWrite(B, LOW);
digitalWrite(C, HIGH);
digitalWrite(D, HIGH);
digitalWrite(E, LOW);
digitalWrite(F, HIGH);
digitalWrite(G, HIGH);
} else {
digitalWrite(a, HIGH);
digitalWrite(b, LOW);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, LOW);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
}
break;
case 6:
if (esDecena) {
digitalWrite(A, HIGH);
digitalWrite(B, LOW);
digitalWrite(C, HIGH);
digitalWrite(D, HIGH);
digitalWrite(E, HIGH);
digitalWrite(F, HIGH);
digitalWrite(G, HIGH);
} else {
digitalWrite(a, HIGH);
digitalWrite(b, LOW);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
}
break;
case 7:
if (esDecena) {
digitalWrite(A, HIGH);
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, LOW);
digitalWrite(E, LOW);
digitalWrite(F, LOW);
digitalWrite(G, LOW);
} else {
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, LOW);
digitalWrite(e, LOW);
digitalWrite(f, LOW);
digitalWrite(g, LOW);
}
break;
case 8:
if (esDecena) {
digitalWrite(A, HIGH);
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, HIGH);
digitalWrite(E, HIGH);
digitalWrite(F, HIGH);
digitalWrite(G, HIGH);
} else {
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
}
break;
case 9:
if (esDecena) {
digitalWrite(A, HIGH);
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, HIGH);
digitalWrite(E, LOW);
digitalWrite(F, HIGH);
digitalWrite(G, HIGH);
} else {
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, LOW);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
}
break;
}
}
DECLARACION DE VARIABLES
CONFIGURACIÓN DE PINES COMO ENTRADAS O COMO SALIDAD.
CODIGO GENERAL CONTADOR DE 0 A 9 ASCENDENTE.
4. Cierre (15 minutos)
Actividad:
Presentación rápida de proyectos por grupo (2 minutos cada uno).
Retroalimentación cruzada:
¿Qué aprendieron hoy?
¿Qué fue lo más difícil del trabajo en grupo?
¿Cómo resolvieron los errores?
Docente: Comentarios finales, correcciones comunes, consejos para optimizar los proyectos.
5. Entregable (Tarea/Post-clase):
Subir a la plataforma (o enviar por correo):
Enlace al proyecto de Tinkercad.
Código comentado en el archivo.inoo .txt.
Una breve descripción
PLATAFORMA QUE SE UTILIZARA PARA LAS PRACTICAS DE PROGRAMACION Y MONTAJES DE PRUEBA.
Tinkercad Circuits
Tinkercad es una colección de Autodesk que engloba diversas herramientas de diseño. Con Tinkercad puedes acceder a aplicaciones para diseñar en 3D, crear y simular circuitos eléctricos y electrónicos, programar, etc.
Todo ello en un entorno muy sencillo de manejar y muy interesante para los alumnos. En este capítulo nos centraremos en Tinkercad Circuits, ya que esta herramienta dispone de los elementos necesarios para crear y simular sistemas de control basados en Arduino. Además. permite la programación online de las placas Arduino del simulador.
Una herramienta muy interesante que ofrece Tinkercad Circuits es el debugger, con ella podemos parar la ejecución de un programa y ver los valores de las variables, algo que con arduino no podemos hacer. Nos permite “parar” el tiempo.
Para comenzar a utilizar Tinkercad debes registrarte a una cuenta de correo electrónico y podrás acceder a todas sus herramientas.
"POR SI QUIERES ESTUDIAR PROGRAMACIÓN EN TUS TIEMPOS LIBRES,O MEJORAR TU PENSAMIENTO LOGICO COMPUTACIONAL".