- Portada
- Ensablaje mecánico
-
Programación básica
-
Introducción al Montaje Electrónico
-
Resistencias y Ejemplos de cálculo
-
El pulsador
-
La protoboard y los LEDs
-
Entradas y salidas digitales. Lectura de un pulsador y encendido de un led.
-
Entradas Analógicas. Lectura de un potenciómetro.
-
El Servomotor
-
Salidas PWM. Control posición de un servo
-
Cuestionario Programación básica10 xp
-
-
Programación extendida
-
Actividad. Estados de caja. Apertura y cierre
-
Actividad. Dial analógico. Introducción de dígitos. Pantalla LCD
-
Introducción a Funciones
-
Las funciones
-
Actividad. Funcionalidad elemental caja fuerte.
-
El Zumbador
-
Actividad. Sistema de alarma con zumbador
-
Actividad avanzada. Cambio de contraseña. Memoria EEPROM
-
Actividad avanzada. Display: Íconos y animaciones
-
Cuestionario Programación extendida10 xp
-
- Para terminar
Actividad. Funcionalidad elemental caja fuerte.
PROGRAMACIÓN EXTENDIDA
Montaje

Montaje eléctrico. Conexiones
Para implementar la lógica de una caja fuerte con una combinación de 4 dígitos, utilizaremos el potenciómetro para seleccionar los dígitos, una pantalla LCD para mostrar los dígitos seleccionados, y un pulsador para introducir el dígito. Si el código es correcto, la puerta se abre.
En esta activada trabajaremos con las funciones en C y el objetivo será poner en común los montajes de las dos actividades anteriores, de manera que logremos obtener una programación básica de la lógica de la caja fuerte.
Si has seguido las dos actividades anteriores correctamente, no deberás realizar ninguna nueva conexión para este montaje; utilizaremos el montaje anterior.
Programación

Explicación actividad a programar.
Vamos a partir de los dos códigos realizados anteriormente. Recomendamos seguir los siguientes pasos como guía a la hora de realizar la programación de esta actividad.
Utiliza funciones en c para agrupar los comandos/acciones de apertura y cierre de la caja. Es decir, una función que, al ser llamada, realice la apertura de la compuerta. Y, de la misma manera, una función que nos permita bloquear la puerta.
La cámara comienza en un estado inicial estando bloqueada. Por lo tanto, en el setup() deberás tener esto en cuenta, además de haber configurado las entradas y salidas.
Se debe mostrar un mensaje estático de bienvenida en la pantalla durante unos breves segundos. Por ejemplo:
[ Cámara ][ Acorazada]Como pantalla principal, podrías poner: [Dial: ][ Code: ] En donde el dial es el digito en tiempo real del potenciómetro, y code es el código introducido.
En el bucle principal deberás leer continuamente las entradas a la espera de que el usuario presione el pulsador o mueva el potenciómetro. Deberás refrescar la pantalla acorde.
Si se pulsa el botón de "Enter"(pulsador), el digito actual del dial analógico se cargará en la posición de miles (ejemplo: 4XXX). Esto se repetirá para las 4 posiciones (miles, centenas, decenas y unidades). Una vez introducidos los 4 dígitos, se comprobará si el código introducido coincide con el código de desbloqueo. Si es así, se abre la compuerta y se muestra por pantalla "Cámara abierta". Si no coincide el código, se muestra en pantalla "Código erróneo". Tras 2 segundos, el código introducido se borra y se le da la oportunidad al usuario de introducir un nuevo código.
Variables importantes
Se define una variable booleana isBoxOpen para llevar el seguimiento del estado de la caja fuerte (abierta o cerrada), inicializándola como cerrada. También se definen enteredDigit para almacenar el dígito introducido mediante el potenciómetro, enteredCode para almacenar el código introducido por el usuario, y currentDigitIndex para llevar el índice del dígito actual. Además, se define correctCode como el código correcto que debe ser introducido para abrir la caja (en este caso, 1234).
Funciones Auxiliares
Sugerimos la implemtación de las siguientes funciones:
updateLCD(): Actualiza la pantalla LCD para mostrar el código introducido.resetCode(): Reinicia el código introducido.checkCode(): Verifica si el código introducido es correcto.openBox(): Abre la caja fuerte, cambiando el estado de los LEDs y moviendo el servomotor.closeBox(): Cierra la caja fuerte, cambiando el estado de los LEDs y moviendo el servomotor.En la función
setup, se configuran los pines correspondientes al potenciómetro, los pulsadores, los LEDs y el servo. La pantalla LCD se inicializa y se enciende su retroiluminación El servo se coloca en la posición de bloqueo (90 grados). Se muestra un mensaje inicial de bienvenida en la pantalla LCD y, tras ello, se le indica al usuario puede comenzar a introducir el código.if(condición 1 && condición 2) {
}
donde "condición 1" y "condición 2" están concatenadas con el operador condicional "&&" o "Y". Este condicional ejecuta las líneas encerradas entre los corchetes solamente cuando se cumplan o sean ciertas ambas condiciones "condición 1" y "condición 2".
Otro operador de este tipo muy común es "||" o "O", que permite ejecutar las líneas próximas si se cumple alguna de las condiciones "condición 1" o "condición 2".
| Vistas | |
|---|---|
| 2 | Número de vistas |
| 2 | Vistas de miembros |
| 0 | Vistas públicas |
| Acciones | |
|---|---|
| 0 | Gustos |
| 0 | No me gusta |
| 0 | Comentarios |
Compartir por correo
Por favor iniciar sesión para compartir esto webpage por correo.