Primer Laboratorio_Arquitectura

4
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.

description

Laboratorio_Arquitectura

Transcript of Primer Laboratorio_Arquitectura

Page 1: 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.

Page 2: Primer Laboratorio_Arquitectura

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)

Page 3: Primer Laboratorio_Arquitectura

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

Page 4: Primer Laboratorio_Arquitectura

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