[go: up one dir, main page]

0% encontró este documento útil (0 votos)
27 vistas22 páginas

DelAngel Camacho 6CM15 Practica5 Arquitectura

ARQUITECTURA DE COMPUTADORAS ESIME

Cargado por

Agustin Camacho
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
27 vistas22 páginas

DelAngel Camacho 6CM15 Practica5 Arquitectura

ARQUITECTURA DE COMPUTADORAS ESIME

Cargado por

Agustin Camacho
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 22

Instituto Politécnico Nacional

Escuela Superior de Ingeniería Mecánica


Y Eléctrica (Unidad Culhuacán)

Ingeniería en Computación

Arquitectura de Computadoras

“Reporte Practica 5”

Alumnos:

Camacho Suarez Agustín


Del Ángel Ruiz Jesús Roberto

Grupo:

6CM15

Profesor:
M. en C. Jesús García Ruiz

Fecha de Entrega: 02 de mayo de 2018


• Programa 2 (LED 2):
- Enunciado:

Dos LEDs conectados a 9 y 3 (terminales digitales, con PWM), parpadearán de


manera alternada

- Diseño Software:

INICIAR PROGRAMA LED ROJO LED VERDE

ACTIVAR SALIDA ACTIVAR SALIDA


DEFINIR VARIABLES PARA (PIN9=HIGH) (PIN3=HIGH)
LEDs ROJO Y VERDE

DELAY (1000 ms) DELAY (500 ms)


CONFIGURAR PIN3 Y PIN9
COMO SALIDA

DESACTIVAR SALIDA DESACTIVAR SALIDA


(PIN9=LOW) (PIN3=LOW)

LED ROJO

DELAY (500 ms) DELAY (1000 ms)

LED VERDE
- Construcción del programa:

int ledrojo=9;//Pin digital 9


int ledverde=3;//Pin digital 3

void setup()
{
pinMode(ledrojo,OUTPUT);
pinMode(ledverde,OUTPUT);
}

void loop()
{
digitalWrite(ledrojo,HIGH);
delay(1000);
digitalWrite(ledrojo,LOW);
delay(500);
digitalWrite(ledverde,HIGH);
delay(500);
digitalWrite(ledverde,LOW);
delay(1000);
}

- Resultados:
• Programa 3 (LED 3):
- Enunciado:

Se conecta un potenciómetro (el centro a la terminal A0 y los otros dos a Vcc y GND
respectivamente), se conecta un LED en pin 6 PWM

- Diseño Software:

INICIAR PROGRAMA 1

MAPEA RANGO 0 – 700 ,


DEFINIR VARIABLES PARA
HACIA 0 – 255
FOTOVAL, LUZ Y X

CONFIGURAR A0 COMO
ENTRADA ANALÓGICA X= 255 – LUZ;
CONFIGURAR PIN6 COMO
SALIDA DIGITAL
ABRIR PUERTO SERIE

RESTA ANTERIOR POR


LEE POTENCIOMETRO POR DIGITAL 6 (PWM)
CANAL A0

RECALCULA FOTOVAL DELAY (100 ms)


DELIMITANDOLO ENTRE0 -
700

IMPRIME EN PUERTO
1 SERIAL
- Construcción del programa:

int fotoval=0;
int luz;
int x;

void setup()
{
pinMode(A0,INPUT);//entrada analogica
pinMode(6,OUTPUT);//Salida digital pero PWM
Serial.begin(9600);
}

void loop()
{
fotoval=analogRead(0);//se lee el potenciometro por el canal A0
luz=constrain(fotoval,0,700);//recalcula el valor de fotoval delimitandolos solo
entre 0 y 700
luz=map(luz,0,700,0,255);//mapea el rango de 0 a 700, hacia 0 a 255(puesel
rango de 8 bits de analogico)
x=255-luz;
analogWrite(6,x);//Saca la resta anterior por la digital 6(PWM)
delay(100);
Serial.println(x);//Imprime en puerto serial
}

- Resultados:
Lecturas mostradas en el monitor serial cuando se le aumenta y disminuye al
potenciómetro.
• Programa 5 (LED 5):
- Enunciado:

Se conecta el LED RGB a las terminales digitales 3, 5 y 6 en PWM, y con vectores


se obtienen distintos colores.

- Diseño Software:

INICIAR PROGRAMA

DEFINIR VECTORES PARA


LEDs ROJO, VERDE Y AZUL

ACTIVAR SALIDA
(PIN3= rojo[i])
ACTIVAR SALIDA
(PIN5= verde[i])
ACTIVAR SALIDA
(PIN6= azul[i])

DELAY (1000 ms)


- Construcción del programa:

int i;
int rojo[]={2,4,8,16,32,64,128,255};
int verde[]={2,4,8,16,32,64,128,255};
int azul[]={2,4,8,16,32,64,128,255};

void setup()
{}

void loop()
{
for(i=0;i=6;i++)
{
analogWrite(3,rojo[i]);
analogWrite(5,verde[i]);
analogWrite(6,azul[i]);
delay(1000);
}
}

- Resultados:
• Programa 7 (Serial 2):
- Enunciado:

Se lee el valor de un potenciómetro por la terminal analógica 3 (A3) y se manda a


la terminal serie

- Diseño Software:

INICIAR PROGRAMA

DEFINIR VARIABLE PARA PIN3


DEFINIR VARIABLE EN LA QUE
SE ALMACENA LO DEL
CONVERSOR

ABRIR PUERTO SERIE

LECTURA DE TENSIÓN DE PIN


ANALÓGICO

IMPRIME VALOR LEÍDO EN


PUERTO SERIAL
- Construcción del programa:

int analogPin =3;/*El pin analogico 3 conectado al dial de un


potenciometro(termina central de potenciometro, los terminales exteriores del
potenciometro
conectados a +5v y tierra respectivamente)*/
int val=0; /*Declaracion de la variable en la que se almacenara el valor leido
por el conversor*/

void setup()
{
Serial.begin(9600);//inicializacion del modulo serial
}

void loop()
{
val=analogRead(analogPin);//lee el valor de tension del pin analogico
Serial.println(val);//envia el valor leido via serial
}

- Resultados:
Lecturas mostradas en el monitor serial cuando se le aumenta y disminuye al
potenciómetro.
• Programa 10 (Mensaje en Display avanzado):
- Enunciado:

Imprimir en LCD mensaje “ola k ases programando Arduino??????”

- Diseño Software:

INICIAR PROGRAMA

LiquidCrystal
lcd(12,11,5,4,3,2);

Lcd.begin(16,2);
Lcd.print(“ola k ases
Programando arduino
??????”);

Lcd.setCursor(0,1);
Int posContador=0

Lcd.scrollDsiplayRight();
SI posContador<36 ? NO Int posContador=0
Delay(300 ms);

posContador++ posContador<40 ? NO Int posContador=0

SI

Lcd.scrollDsiplayRight();
posContador<16 ? NO Lcd.print(millis()/1000);
Delay(250 ms);

SI

Lcd.scrollDsiplayRight();
posContador++
Delay(300 ms);

posContador++
- Construcción del programa:

#include<LiquidCrystal.h>

LiquidCrystal lcd(12,11,5,4,3,2);

void setup()
{
lcd.begin(16,2);
lcd.print("ola k ases Programando arduino??????");
}

void loop()
{
lcd.setCursor(0,1);

for(int posContador=0;posContador<36;posContador++)
{
lcd.scrollDisplayRight();//desplazar la pantalla a derecha
delay(300);
}

for(int posContador=0;posContador<40;posContador++)
{
lcd.scrollDisplayRight();//desplazar la pantalla a derecha
delay(250);
}

for(int posContador=0;posContador<16;posContador++)
{
lcd.scrollDisplayRight();//desplazar la pantalla a derecha
delay(300);
}
lcd.print(millis()/1000);
}
- Resultados:
• Programa 11 (Motor):
- Enunciado:

Mueve un motor en un sentido y en el otro, al hacer cambio de polaridad, por la


terminal digital 9.

- Diseño Software:

INICIAR PROGRAMA GIRO

digitalWrite(motorPin,HIGH
);
Delay(onTime);
Int motorPin=9;
digitalWrite(motorPin,LOW)
;
Delay(offTime);

pinMode
(motorPin,OUTPUT);

Int onTime=400;
Int offTime=400;

GIRO
- Construcción del programa:

int motorPin=9;

void setup()
{
pinMode(motorPin,OUTPUT);
}

void loop()
{
int onTime=400 ;
int offTime=400;

digitalWrite(motorPin,HIGH);
delay(onTime);
digitalWrite(motorPin,LOW);
delay(offTime);
}

- Resultados:
• Programa 12 (Velocidad de un motor):
- Enunciado:

Varia la velocidad de un motor (conectado a 9), mediante un potenciómetro


conectado a A0.

- Diseño Software:

INICIAR PROGRAMA

Int motorPin=9;
Int potPin=0;
Int potValue;

pinMode
(motorPin,OUTPUT);

potValue=analogRead(potPi
n)/4;

analogWrite(motorPin,potV
alue);
- Construcción del programa:

int motorPin=9;
int potPin=0;
int potValue;

void setup() {
pinMode(motorPin,OUTPUT);

void loop() {
potValue=analogRead(potPin)/4; //se manda el valor de A0 a la variable potValue
analogWrite(motorPin,potValue); //se manda el valor anterior (potencimetro en A0)
al motor (PWM9)
}

- Resultados:
• Programa 14 (Teclado 4x3):
- Enunciado:

Si se pulsa una tecla se imprime en el serial

- Diseño Software:

INICIAR PROGRAMA 1

Const byte ROW=4;


Serial.begin(9600);
Const byte COLS=3;

Char keys[ROWS][COLS]={
{‘1’,’2',’3'},
{‘4’,’5',’6'}, Char key=keypad.getKey();
{‘7’,’8',’9'},
{‘*’,’0',’#’}
};
NO

Byte
Key!=NO_KEY ?
rowPins[ROWS]={5,4,3,2};

SI

Byte colPins[COLS]={8,7,6};

Serial.println(key);

Keypad
keypad=Keypad(makeKeym
ap(keys),rowPins,colPins,RO
WS,COLS);

1
- Construcción del programa:

#include<Keypad.h>

//creamos una constante para definir que nuestro teclado tiene 4 filas
const byte ROWS=4;

//creamos una constante para definir que nuestro teclado tiene 3 columnas
const byte COLS=3;

//creamos una matriz con los caracteres del teclado


char keys[ROWS][COLS]={
{'1','2','3'},
{'4','5','6'},
{'7','8','9'},
{'*','0','#'}
};

//Indicamos a que pines de Arduino están conectadas las filas del teclado
byte rowPins[ROWS]={5,4,3,2};

//Indicamos a que pines de Arduino están conectadas las columnas


byte colPins[COLS]={8,7,6};

//Creamos un objeto de la librería Keypad para usar sus funciones


Keypad keypad=Keypad(makeKeymap(keys),rowPins,colPins,ROWS,COLS);

void setup() {
Serial.begin(9600);
}

void loop() {

// Cuando se pulse una tecla se guardará en una variable llamada key


char key=keypad.getKey();

//Si se ha pulsado una tecla, se envía por el serial


if(key!=NO_KEY)
{
Serial.println(key);
}

}
- Resultados:
- Conclusiones:

 Arduino es una plataforma de código abierto que permite el poder simplificar


el proceso de trabajar con micro controladores.
 Con lo demostrado en los anteriores circuitos se dice que la configuración e
instalación son pasos muy fáciles para poder desarrollar sobre el Arduino.
 La programación es similar a los lenguajes de alto nivel conocidos en la
actualidad, por lo que el aprendizaje de la sintaxis no es complejo.

También podría gustarte