You are on page 1of 4

Universidad Nacional Mayor de San Marcos

Facultad de Ingeniera de Sistemas e Informtica


Arquitectura de Computadoras
Tarea de Laboratorio 1

Usando Arduino y 6 leds con los materiales necesarios deben realizarse lo


siguiente:
1. Debe implementarse un circuito donde 7 leds van a representar nmeros
de 5 bits y 2 leds de control (rojo y verde).
2. Los otros 2 leds representaran el resultado de la operacin de control de
temperatura.
3. A travs del Monitor Serial debe solicitarse el acceso al sistema, el cual
ser ingresado por dispositivo mvil. (Un cdigo de acceso de 4 caracteres)
4. Dicha clave ser contrastada contra una lista de claves previamente
cargadas (mnimo 5 y el nombre de cada usuario).
5. Si la clave es vlida en monitor serial debe indicarse el nombre del usuario,
de lo contrario se mostrara un mensaje de error por consola y pidiendo un
nuevo intento. Solo se permitirn 3 intentos como mximo despus de los
cuales el sistema se bloqueara.
6. Al comenzar la fase 2, se genera un nmero aleatorio de 5 bits, el cual se
mostrara en los 5 leds representando una medicin de temperatura en
grados centigrados (o a 31 grados). Debe mostrarse dicho valor en monitor
serial (ejemplo si en led se muestra 01111 en el monitor serial debe verse
Temperatura: 15 grados). Dicha generacin de valor aleatorio debe darse
cada 5 segundos.

7. Si el valor generado est por encima de 27 grados el led rojo debe


encenderse indicando temperatura alta, obligando para ello al usuario a bajar
la temperatura. Si la temperatura es 27 grados o menor el led vere debe
estar encendido indicando temperatura normal.
8. Para bajar la temperatura en la consola debe ingresarse la frase BAJAR X,
donde X es un nmero que representara el nmero de grados en que debe
bajar la temperatura. Si la nueva temperatura es menos o igual a 27, el led
rojo se apagara, el led verde se encender se seguir cada 5 segundos a
generar una nueva medicin de temperatura.
Debe mostrarse el diagrama implementado, el cdigo desarrollado y una
foto del circuito. Entregarse el resultado hasta las 5pm a
examenguerra@gmail.com indicando el grpo al que pertenecen.

Abril 2015
El Profesor del curso

Apendice
random()
Descripcin
La funcin random genera nmeros pseudoaleatorios.
Sintaxis
random(max)
random(min, max)
Parmetros
min - lmite inferior del valor aleatorio, inclusive (opcional)

max - lmite superior del valor aleatorio, exclusive (se devuelve hasta el
anterior)
Devuelve
un nmero aleatorio entre min y max (long)
Nota:
Si es importante que la secuencia de valores generada por random() difiera
en ejecuciones sucesivas de un programa, es recomendable utilizar
randomSeed() (seed en ingls, semilla) para inicializar el generador de
nmeros aleatorios con una entrada mnimamente aleatoria como
analogRead() en un pin desconectado.
No obstante, puede ser til usar secuencias pseudoaleatorias que se repitan
exactamente. Esto se consigue llamando a randomSeed() con un nmero fijo
antes de empezar la generacin de la secuencia.
Ejemplo
long numAleatorio;
void setup(){
Serial.begin(9600);
// si la entrada analgica 0 no est conectada,
// la llamada a randomSeed() recibir ruido esttico
// (analgico) y se generarn diferentes semillas
// cada vez que se ejecute el sketch.
randomSeed(analogRead(0));
}
void loop() {
// escribe un nmero aleatorio de 0 a 299
numAleatorio = random(300);
Serial.println(numAleatorio);
// escribe un nmero aleatorio de 10 a 19

numAleatorio = random(10, 20);


Serial.println(numAleatorio);
delay(50);
}
Ejemplo de Uso de nmeros aleatorios:
http://www.instructables.com/id/Generate-Random-Number-usingArduino/all/?lang=es

You might also like