Sie sind auf Seite 1von 24

UNIVERSIDAD REY JUAN CARLOS

Prcticas
[Escriba el subttulo del documento]
Alexandru
[Seleccione la fecha]

[Escriba aqu una descripcin breve del documento. Normalmente, una


descripcin breve es un resumen corto del contenido del documento.
Escriba aqu una descripcin breve del documento. Normalmente, una
descripcin breve es un resumen corto del contenido del documento.]

Bloque 1
En este bloque se recopilan y se explican los hitos (del 1.1 hasta 1.14)
realizados el primer da de prcticas. Los cdigos estn en el fichero .zip
entregado, dentro de la carpeta Hitos 1.

Hito 1.1
El hito consiste en entender la funcin de void setup(), mediante la
elaboracin de un cdigo.

Cdigo

Hito 1.2
Manejar entradas digitales mediante la funcin digitalWrite para ello se
elabor un cdigo que en enciende un led y tras 8 segundos lo apaga y
enciende otro que a su vez se apaga tras 8 segundos.

Cdigo

Hito 1.3
Utilizar la funcin digitalRead, para leer el valor de un pin digital y utilizar
ese valor.
Se hizo un programa que encendiera un led cuando se accionara el botn.
Cuando el botn estuviese en su estado de no accin el led deba estar
apagado

Cdigo

Hito 1.4
El objetivo es el mismo que en el apartado anterior, no obstante en este
caso se debe utilizar la funcin analogRead, que lee el valor de la entrada
de pines analgicos.
El programa leer el valor de un dial conectado a un pin analgico, y
mostrar el valor en pantalla.

Cdigo

Hito 1.5
Para este hito se debe utilizar la funcin delay (). Esta funcin sirve para
retrasar un tiempo determinado una accin que realizar el programa.
El programa har parpadear un led, es decir encender y apagar un led
cada segundo.

Cdigo

Hito 1.6
Devolver el tiempo en milisegundos transcurrido desde que arranc el
programa en la placa de Arduino.
El programa ir mostrando en pantalla cada el tiempo que lleva funcionando
el programa, con actualizaciones cada segundo.

Cdigo

Hito 1.7
El objetivo es la utilizacin de funciones matemticas min, max, abs, sq
Para cumplir el objetivo se realiz un programa que comparaba valores
numricos introducidos por el usuario (a, b,) y se mostraba en pantalla:

El
El
El
El

nmero ms grande
nmero ms pequeo
valor absoluto de primero
cuadrad del primero

Cdigo

El resultado

Hito 1.8
En este apartado se deba utilizar las funciones if, else, else if. Para la
elaboracin de condiciones dentro del cdigo.
Para ello se escribi un cdigo que al ejecutarse leera el valor de un pin
analgico y mostrara en pantalla 3 estados.

Si el valor ledo en el pin est por debajo un umbral mnimo


establecido por el usuario se mostrar en pantalla el mensaje Nivel
Bajo.
Si el valor ledo est por encima de un umbral mximo, tambin
establecido por el usuario, se mostrar en pantalla el mensaje Nivel
Alto.
Si el valor del pin esta entre los dos umbrales se mostrar en
pantalla el mensaje Nivel adecuado

Cdigo

Hito 1.9
En este hito se debe utilizar un bucle for . Para ello se escribi un cdigo
con un bucle for que cada vez que va aumentando la intensidad de un led
cada x tiempo

Cdigo

Hito 1.10
El fin de este hito es la utilizacin de un bucle while y entender su
funcionamiento, para ello se escribi el siguiente cdigo.
El programa entra en el bucle while y se enciende un led, cada vez que se
actualiza el bucle el contador aumenta hasta un valor lmite puesto en la
condicin del while cuando se alcanza ese valor, se sale del bucle y se
apaga el led.

Cdigo

Hito 1.11
El objetivo de este hito es utilizar los comandos Series.println para enviar
informacin en pantalla (desde la placa). Leer resultados.

Para cumplir el hito se realiz un cdigo que imprime en pantalla un variable


de tipo integer, tipo char, tipo hexadecimal, y una cadena de caracteres.

Cdigo

Resultado

Hito 1.12
En este hito el objetivo es la utilizacin del puerto series para introducir
datos al sistema mediante la funcin Serial.read()
Se escribi un cdigo que al introducir un nmero en el COM, se mostraba
en pantalla el valor de ese nmero en cdigo ASCII.

Cdigo

Resultado

El numero introducido es el 1 por eso en pantalla se muestra el 49, de ASCII


a decimal hay que restar 48

Hito 1.13
En este apartado se tiene que tratar de entender el cdigo proporcionado en
el guion y responder a las preguntas.

Cdigo

Preguntas
1. Cundo se visualiza algo en pantalla?
Al introducir cualquier carcter en el COM.
2. Qu utiliza para concatenar strings?
Se utiliza un bucle while que va aadiendo caracteres a una variable tipo
string mediante la operacin +=
3. Se te ocurre otro modo con vectores de caracteres?
Almacenando los caracteres ledos en un vector

Hito 1.14
Leer una cadena de caracteres que representa un nmero de ms de dos
dgitos a travs del puerto serie, imprimir por pantalla el nmero y operar
con el nmero

Cdigo

Resultado

Bloque 3
En este bloque de las prcticas se nos propuso disear un sistema
domtico, utilizando el Kit Grove de Arduino. Nosotros decidimos disear
una alarma que identifique al usuario mediante un cdigo de seguridad, que
bautizamos como ALARMA 64705.

Diseo del sistema


El aspecto fsico del sistema domtico que hemos diseado se pue ver en la
Imagen 1, donde tambin vienen enumeradas cada uno de sus
componentes.

Imagen 1: Fotografa del sistema domotico diseado en Arduino.


1. Sensor de presencia utilizado para detectar si hay alguien intentando
entrar en casa.
2. Sensor de temperatura, mide la temperatura e informa al usuario.
3. Sensor de luz, mide la luminosidad de la casa, sirve como parmetro
de entrada para el sistema automtico de luces
4. Buzzer, alarma sonora.
5. Led verde, para alarma correcta (y por ejemplo para las luces de la
casa cuando hay poca luz)
6. Leds rojos, se activarn cuando se detecte un intruso.

Diagrama de bloques
A continuacin se representa el diagrama de bloques del sistema.

Comportamiento
Cuando el sistema est activado y funcionando si el sensor de presencia no detecta movimiento, no ocurre nada, en cambio si
detecta movimiento mostrar en pantalla un mensaje pidiendo el cdigo de seguridad, que se deber introducir.
Si el cdigo es correcto se activarn los siguientes procesos:

Se encender un led que indica que el cdigo es correcto.


Se mostrar en pantalla un mensaje de bienvenida al usuario.
Se leer los valores del sensor de temperatura y se indicaran mediante un mensaje en pantalla al usuario.
Se leer los valores del sensor de luminosidad y en funcin de estos se encendern las luces automticamente si son
bajos, si son altos no se realizar ninguna accin.

Si el cdigo introducido es errneo se pedir al usuario que vuelva a introducir el cdigo entonces:

Si el cdigo que se ha vuelto a introducir es correcto se realizarn las acciones descritas en el apartado anterior
Si no es correcto:
o Se activar un buzzer en seal de alarma
o Se activar dos leds rojos que parpadean
o Se muestra en pantalla el siguiente mensaje Intruso detectado

Pseudocdigo
A continuacin viene expuesto el pseudocdigo del sistema, que se realiz antes de empezar a programar en Arduino.
Inicio
Declaracin de variables.
Sensor presenciaConectado
Sensor luzConectado
Sensor temperaturaConectado
Led verdeConectado

Led rojo1Conectado
Led rojo2Conectado
Variable 0
Cdigo0
Subrutina correcto
Mostrar en pantalla (Bienvenido a casa)
Encender led verde
Mostrar en pantalla la temperatura
Leer sensor de luza
S.luzValor sensor luz
Si <S.Luz=bajo>
o Encender led verde
SI no
Dejarlo tal cual
Fin si
Cuerpo (estamos en el void, es decir, esto se repetir todo el rato)
S.presencia Valor ledo del sensor de presencia
Mientras <S.presencia >0 y Variable =0>
Mostrar en pantalla (Introduzca cdigo)
Codigo cdigo introducido por el usuario
SI <Codigo=5321>
Llamar funcin correcto
SI no
Mostrar en pantalla (Introduzca cdigo)
Codigo cdigo introducido por el usuario
SI <Codigo=5321>
Llamar funcin correcto
Si no
Mostrar en pantalla (Sistema bloqueado)

Variable1
Encender alarma sonora
Hacer parpadear luces rojas
Fin si
Fin si
Fin mientras

Cdigo del sistema en Arduino


A continuacin se expondr el cdigo de sistema en Arduino, y se explicar. Tener en cuenta que todo el cdigo va seguido en
el programa, aqu se ha fraccionado para poder explicarlo

Declaracin de variables

En esta primera parte se especifica a que pines digitales o analgicos se han conectado cada componente del sistema.
Adems se han declarado distintas variables que se utilizan en el cdigo. Las variables para temperatura son parmetros que
se necesitan para mostrar el valor que lee el sensor en grados Celsius. Las variables para la luz, es el parmetro que se utiliza
para comparar con el dato que lee el sensor y encender o apagar las luces.

Void setup

Aqu se ha declarado los distintos pines si son de entrada o salida, y se ha inicializado el Serial.

Funcin para introducir el cdigo.

Esta es una funcin auxiliar que se llamar cuando se necesite introducir un


dato y que el sistema lo analice. En este caso se llamara cada vez que se
necesite introducir el cdigo de seguridad.

Funcin correcto

Esta funcin realiza una serie de acciones, cuando el cdigo de seguridad de


la alarma introducido es correcto, como esto ocurre en distintas ocasiones,
se ha creado esta funcin que se llamara cuando sea necesario. Esto se ha
realizado con el fin de reducir el cdigo programada.

Void loop

Se lee el valor del sensor de presencia y se almacena ese valor en la


variable spresState. Si el valor de la variable llamada variable=0 se entra
en un bucle que solo se podr salir introduciendo el cdigo de seguridad
correcto. La variable, variable sirve para bloquear el sistema y en caso de
que se introduzca el cdigo mal valdr 1 y no se podr introducir el cdigo
de seguridad ms de 2 veces.
Una vez dentro del bucle while. Si el cdigo de seguridad es correcto se
llama la funcin correcto si no lo es, se pide de nuevo el cdigo. Si en este
caso es correcto se llama la funcin correcto, por lo contrario, se variable
=1 y se entra en el bucle for que har sonar el buzzer y encender y
pagar 2 leds.

Das könnte Ihnen auch gefallen