Está en la página 1de 15

ACTIVIDAD PRACTICA Nº 1

ARQUITECTURA DE COMPUTADORAS 1

TEMA: Manejo de puertos de E/S de la placa Galileo.

PROFESOR: Ing. José María Ducloux.

ALUMNOS:

 Alf. Arguello Irupé.


 Alf. Sztuka Daniel.
INDICE

1. INTRODUCCION ---------------------------------------------------------------- Pág. 3.


2. DESARROLLO ------------------------------------------------------------------- Pág. 4.
2.1. CONEXIÓN DE LA PLACA GALILEO ---------------------------------
Pág. 4.
2.2. RESOLUCION DEL ENUNCAIDO Nº 1 --------------------------------
Pág. 4.
2.2.1. Código en IDE Arduino --------------------------------------------- Pág. 4.
2.2.2. Esquema circuital ---------------------------------------------------- Pág. 5.
2.2.3. Monitor serie --------------------------------------------------------- Pág. 5.
2.3. RESOLUCION DEL ENUNCAIDO Nº 2 --------------------------------
Pág. 6.
2.3.1. Código en IDE Arduino --------------------------------------------- Pág. 6.
2.3.2. Esquema circuital ---------------------------------------------------- Pág. 6.
2.3.3. Monitor serie --------------------------------------------------------- Pág. 7.
2.4. RESOLUCION DEL ENUNCAIDO Nº 3 --------------------------------
Pág. 8.
2.4.1. Código en IDE Arduino --------------------------------------------- Pág. 8.
2.4.2. Esquema circuital ---------------------------------------------------- Pág. 8.
2.4.3. Monitor serie --------------------------------------------------------- Pág. 9.
2.5. RESOLUCION DEL ENUNCAIDO Nº 4 ------------------------------- Pág.
10.
2.5.1. Código en IDE Arduino ------------------------------------------- Pág. 10.
2.5.2. Esquema circuital --------------------------------------------------- Pág.
11.
2.5.3. Monitor serie -------------------------------------------------------- Pág. 11.

2
1. INTRODUCCION

En el Siguiente informe se mostraran los esquemas circuitales utilizados en el


primer trabajo práctico realizado en el laboratorio y los programas codificados del
mismo, con una descripción de su funcionamiento.

Las consignas a seguir para el primer trabajo práctico eran las siguientes:

1) Codificar un programa que configure un puerto E/S como salida y que cambie su
estado cada un segundo. Conectar un LED externo o utilizar el disponible para
propósito general en la placa Galileo. El LED externo debe conectarse al puerto
a través de una resistencia de 1 KΩ.
2) Codificar un programa que configure dos puertos E/S como salida y que
cambien sus estados cada un segundo. Los estados serán opuestos. Conectar dos
LEDs externos o utilizar uno externo y el disponible para propósito general en la
placa Galileo. Los LEDs externos deben conectarse a los puertos a través de
resistencias de 1 KΩ.
3) Codificar un programa que configure un puerto E/S como entrada y conectar un
pulsador al mismo a través de una resistencia de pull-up de 10 KΩ. El programa
debe modificar el estado de un LED externo o del disponible para propósito
general en la placa Galileo, según el estado presionado o no presionado del
pulsador. El LED deberá encenderse cuando el pulsador sea presionado, y se
apagará cuando no se presione.
4) Codificar un programa que configure un puerto E/S como salida. Conectar un
LED externo o utilizar el disponible para propósito general en la placa Galileo.
El LED externo debe conectarse al puerto a través de una resistencia de 1 KΩ.
Configurar un puerto E/S como entrada y conectar un pulsador al mismo a través
de una resistencia de pull-up de 10 KΩ. Al iniciar el programa, el LED tendrá un
tiempo de apagado de 500 mseg y tiempo de encendido de 500 mseg. Cuando el
pulsador sea presionado, el tiempo de encendido se incrementará en 100 mseg
3
hasta llegar a 1500 mseg. En caso de superarse los 1500 mseg, se retornará al
valor 500 mseg.
5) A todos los ejercicios anteriores se deberá incluir el envío de mensajes al
monitor serie del estado de los LEDs y sus respectivos tiempos de encendido y
apagado, y estado del pulsador.
2. DESARROLLO

2.1. CONEXIÓN DE LA PLACA GALILEO

Con el IDE Arduino descargado y el firmware de la placa actualizado, así como


también los Drivers del controlador instalados, se procede a la conexión de la placa
Galileo a una fuente de 5V. Una vez conectado se enciende un LED que nos avisa que
la placa esta lista para ser usada. Recién ahí procedemos a conectarlo mediante el
conector micro USB a la computadora.

2.2. RESOLUCION DEL ENUNCIADO Nº 1

2.2.1. Código en IDE Arduino:

void setup() { // Dentro se coloca la configuración de


los pines que vamos a utilizar

pinMode (2, OUTPUT); // Establece el pin 2 como salida para el


LED

void loop() { // void loop establece que las config


de adentro se repitan en bucle

digitalWrite (2, HIGH); // Comando para que se encienda el


LED (HIGH es encendido)

delay(1000); // Se establece el tiempo encendido

digitalWrite (2, LOW); // Comando para que se apague el


LED (LOW es apagado)

4
delay(1000); // Se establece el tiempo de apagado

2.2.2. Esquema circuital

5
2.2.3. Monitor serie:

void setup() {

pinMode(2, OUTPUT);

Serial.begin(9600); // Esta es la opción para que aparezca en el


monitor serie.

void loop() {

digitalWrite(2, HIGH);

Serial.println("LED encendido"); //Se muestra el mensaje indicando


que el LED está encendido.

delay(1000);

digitalWrite(2, LOW);

Serial.println("LED apagado"); //Se muestra el mensaje


indicando que el LED está apagado.

delay(1000);

2.3. RESOLUCION DEL ENUNCIADO Nº 2

6
2.3.1. Código en IDE Arduino:

void setup() {

pinMode(2, OUTPUT); // Establece el pin 2 como


salida para el primer led.

pinMode(8, OUTPUT); // Establece el pin 8 como


salida para el segundo led.

void loop() {

digitalWrite(2, HIGH); // Enciende uno de los LED

digitalWrite(8, LOW); // Apaga el otro LED

delay(1000); // Establece el tiempo (1 seg)

digitalWrite(2, LOW); // El LED que estaba


encendido se apaga

digitalWrite(8, HIGH); // El LED apagado se


enciende

delay(1000); // Nuevamente un tiempo de 1 seg

2.3.2. Esquema circuital

7
2.3.3. Monitor serie:

void setup() {

pinMode(2, OUTPUT);

pinMode(8, OUTPUT);

Serial.begin(9600); // Opción para que aparezca mensaje en el monitor serial

void loop() {

digitalWrite(2, HIGH);

digitalWrite(8, LOW);

Serial.println("LED 1 encendido"); //Se muestra el mensaje indicando que el LED 1


esta encendido.

Serial.println("LED 2 apagado"); //Se muestra el mensaje indicando que el LED 2


está apagado.

delay(1000);

digitalWrite(2, LOW);

digitalWrite(8, HIGH);

Serial.println("LED 1 apagado"); //Se muestra el mensaje indicando que el LED 1


esta apagado

Serial.println("LED 2 encendido"); //Se muestra el mensaje indicando que el LED 2


esta encendido.

Serial.println(" "); //Linea vacia para que se distinga la transición delay(1000);

8
2.4. RESOLUCION DEL ENUNCIADO Nº 3

2.4.1. Código en IDE Arduino:

void setup() {

pinMode(buttonPin, INPUT); // Selecciona como valor de


entrada el valor de buttonPin

pinMode(ledPin, OUTPUT); // Selecciona como valor de


salida el valor de ledPin

void loop() {

buttonState = digitalRead(buttonPin); // Cambia estado de buttonState según el


estado del PULSADOR

if (buttonState == LOW) {

digitalWrite(ledPin, HIGH); // Enciende el LED

else {

digitalWrite(ledPin, LOW); // Apaga el LED

2.4.2. Esquema circuital

9
10
2.4.3. Monitor serie:

void setup() {

pinMode(ledPin, OUTPUT);

pinMode(buttonPin, INPUT);

Serial.begin(9600); // Opción para que aparezca mensaje en el monitor serial

void loop() {

buttonState = digitalRead(buttonPin);

if (buttonState == LOW) {

digitalWrite(ledPin, HIGH);

Serial.println("Pulsador sin presionar / LED encendido"); // Mensaje en pantalla

Else {

digitalWrite(ledPin, LOW);

Serial.println("Pulsador presionado / LED apagado"); // Mensaje en pantalla

11
2.5. RESOLUCION DEL ENUNCIADO Nº 4

2.5.1. Código en IDE Arduino:

void setup() {

pinMode(ledPin, OUTPUT); // Selecciona como valor de


salida el valor de ledPin.

pinMode(buttonPin, INPUT); // Selecciona como valor de


entrada el valor de buttonPin.

void loop() {

digitalWrite(ledPin, HIGH); // Enciende el LED.

delay(var); // El tiempo de
encendido depende del valor de var.

digitalWrite(ledPin, LOW); // Apaga el LED

delay (500); // El tiempo es constante 500 mseg

buttonState = digitalRead(buttonPin); // Cambia estado de buttonState según el


estado del PULSADOR.

if (buttonState == LOW) {

var = var + 100; //Si se cumple la condición se le suman 100 mseg de encendido

if (var > 1500) { // En caso que el delay supere los 1500 mseg lo reinicia en 500
mseg.

var = 500;

12
}

2.5.2. Esquema circuital

2.5.3. Monitor serie:

void setup() {

pinMode(ledPin, OUTPUT); pinMode(buttonPin, INPUT);

Serial.begin(9600); // Opción para que aparezca mensaje en el monitor serial

void loop() {

digitalWrite(ledPin, HIGH);

Serial.println("LED encendido"); // Se muestra el mensaje indicando que el LED está


encendido.

delay(var);

digitalWrite(ledPin, LOW);

Serial.println("LED apagado"); // Se muestra el mensaje indicando que el LED está


apagado.

13
delay (500);

buttonState = digitalRead(buttonPin);

if ((buttonState == LOW)&&(var<1500)) {

Serial.println("PULSADOR presionado"); // Indica que el pulsador está


presionado.

var = var + 100;

if (var > 1500) {

var = 500;

14
15

También podría gustarte