Primer Laboratorio_Arquitectura
description
Transcript of Primer Laboratorio_Arquitectura
Universidad Nacional Mayor de San Marcos
Facultad de Ingeniería de Sistemas e Informática
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 números
de 5 bits y 2 leds de control (rojo y verde).
2. Los otros 2 leds representaran el resultado de la operación de control de
temperatura.
3. A través del Monitor Serial debe solicitarse el acceso al sistema, el cual
será ingresado por dispositivo móvil. (Un código de acceso de 4 caracteres)
4. Dicha clave será contrastada contra una lista de claves previamente
cargadas (mínimo 5 y el nombre de cada usuario).
5. Si la clave es válida 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 permitirán 3 intentos como máximo después de los
cuales el sistema se bloqueara.
6. Al comenzar la fase 2, se genera un número aleatorio de 5 bits, el cual se
mostrara en los 5 leds representando una medición 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 generación 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 número que representara el número 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 medición de temperatura.
Debe mostrarse el diagrama implementado, el código desarrollado y una
foto del circuito. Entregarse el resultado hasta las 5pm a
[email protected] indicando el grpo al que pertenecen.
Abril 2015
El Profesor del curso
Apendice
random()
Descripción
La función random genera números pseudoaleatorios.
Sintaxis
random(max)
random(min, max)
Parámetros
min - límite inferior del valor aleatorio, inclusive (opcional)
max - límite superior del valor aleatorio, exclusive (se devuelve hasta el
anterior)
Devuelve
un número 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 inglés, semilla) para inicializar el generador de
números aleatorios con una entrada mínimamente 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 número fijo
antes de empezar la generación de la secuencia.
Ejemplo
long numAleatorio;
void setup(){
Serial.begin(9600);
// si la entrada analógica 0 no está conectada,
// la llamada a randomSeed() recibirá ruido estático
// (analógico) y se generarán diferentes semillas
// cada vez que se ejecute el sketch.
randomSeed(analogRead(0));
}
void loop() {
// escribe un número aleatorio de 0 a 299
numAleatorio = random(300);
Serial.println(numAleatorio);
// escribe un número aleatorio de 10 a 19
numAleatorio = random(10, 20);
Serial.println(numAleatorio);
delay(50);
}
Ejemplo de Uso de números aleatorios:
http://www.instructables.com/id/Generate-Random-Number-using-
Arduino/all/?lang=es