Sunteți pe pagina 1din 23

Escuela Profesional de Ingeniería Electrónica

Laboratorio de Circuitos Eléctricos 2


IV Ciclo

Laboratorio N°6

Examen Parcial

Integrantes
Apellidos y Nombres Código N° de Mesa

Fecha de realización del laboratorio:


Ambiente: Laboratorio de Electrónica

Docente: Ing. Rubén Gil Chacaltana

2018-II

Ing. Rubén Gil Chacaltana 1 | 23


Lista de Materiales:
• 1 computadora con software Proteus y Arduino.

Introducción
• Arduino es una plataforma de hardware libre cuyo núcleo son los microcontroladores de la
marca Atmel-AVR.
• El entorno de programación está basado en Processing y el lenguaje basado en C.
• Existen varios modelos de Arduino, la diferencia entre uno y otro básicamente radica en
memoria RAM, EEPROM, FLASH, velocidad de operación, periféricos, etc.

Ing. Rubén Gil Chacaltana 2 | 23


Ing. Rubén Gil Chacaltana 3 | 23
1. Compilar.
2. Cargar Programa.
3. Nuevo.
4. Abrir.
5. Guardar.
6. Monitor Serial.
7. Nombre Programa.
8. Editor.
9. Indicador.
10. Indicador Compilador.
11. Modelo y puerto.

Ing. Rubén Gil Chacaltana 4 | 23


Procedimiento
1. Realizar el siguiente circuito:

2. Configurar el Microcontrolador de la siguiente manera:

Ing. Rubén Gil Chacaltana 5 | 23


3. Seleccionar la ruta del .hex. Para esto realizar los siguientes pasos.
4. Abrir el IDE Arduino.

5. Seleccionar Archivos/Preferencias.

Ing. Rubén Gil Chacaltana 6 | 23


6. Dar click a la ruta que aparece en la parte inferior.

Ing. Rubén Gil Chacaltana 7 | 23


7. Se abrirá una carpeta la cual contiene el archivo a modificar: preferences.txt.

Ing. Rubén Gil Chacaltana 8 | 23


8. Abrir el archivo, antes de realizar cualquier modificación asegurarse de cerrar Arduino
(incluyendo todas las ventas).

Escribir el comando build.path=CARPETA, donde CARPETA, será la ruta de una carpeta creada
en el sitio de su preferencia. Esta carpeta almacenará los .hex cada vez que se compile el
programa. Considerar que cada nueva compilación reemplazará todo el contenido de la
carpeta.

En el caso de la imagen se creó una carpeta llama Hexadecimales en la ruta C:\Work\

9. Guardar los cambios y abrir el ejemplo blink del IDE Arduino. Para esto dar click a
Archivo/Ejemplos/Basics/Blink.

Ing. Rubén Gil Chacaltana 9 | 23


10. Al analizar el programa está activando y desactivando el voltaje por el PD13 cada 1 segundo.

Compilar para generar el .hex. para esto dar click al ícono de compilar.

11. Verificar que se creó el hexadecimal de forma correcta, para esto ingresar a la carpeta
anteriormente creada y buscar el archivo Blink.ino.hex.

Ing. Rubén Gil Chacaltana 10 | 23


Cargar este archivo en Proteus y asignar el Pin Digital 13 al Led.

Ing. Rubén Gil Chacaltana 11 | 23


Ejemplos:

1. Programa1: Realizar el siguiente contador en un display cátodo común de forma cíclica: 1, 3, 5,


7, 9, cada valor deberá ser presentado en un intervalo de 500ms.

int pausa = 500;


void setup() {
pinMode (7,OUTPUT);
pinMode (8,OUTPUT);
pinMode (9,OUTPUT);
pinMode (10,OUTPUT);
pinMode (11,OUTPUT);
pinMode (12,OUTPUT);
pinMode (13,OUTPUT);
}

void display (int a, int b, int c, int d, int e, int f, int g)


{
digitalWrite (7,a);
digitalWrite (8,b);
digitalWrite (9,c);
digitalWrite (10,d);
digitalWrite (11,e);
digitalWrite (12,f);
digitalWrite (13,g);
}

void loop() {
display (0,1,1,0,0,0,0); //1
delay (pausa);
display (1,1,1,1,0,0,1); //3
delay (pausa);
display (1,0,1,1,0,1,1); //5
delay (pausa);
display (1,1,1,0,0,0,0); //7
delay (pausa);
display (1,1,1,1,0,1,1); //9
delay (pausa);
}

Ing. Rubén Gil Chacaltana 12 | 23


2. Programa2: Desarrollar una secuencia de luces en 8 leds, esta secuencia consistirá en lo
siguiente:
a. Todos los leds iniciarán apagados.
b. Encenderá sólo el primer led.
c. Se apagará el primer led y se prenderá el segundo.
d. Así sucesivamente hasta que el octavo led encienda y el resto esté apagado.
e. Regresa a (b).
f. El intervalo de tiempo deberá ser de 250 ms.
int pause= 250;
void setup() {
pinMode (6, OUTPUT);
pinMode (7, OUTPUT);
pinMode (8, OUTPUT);
pinMode (9, OUTPUT);
pinMode (10, OUTPUT);
pinMode (11, OUTPUT);
pinMode (12, OUTPUT);
pinMode (13, OUTPUT);
}

void loop() {
digitalWrite (6,HIGH);
for(int i=7;i<14;i++)digitalWrite(i,LOW);
delay (pause);
digitalWrite (6, LOW);
digitalWrite (7, HIGH);
digitalWrite (8, LOW);
digitalWrite (9, LOW);
digitalWrite (10, LOW);
digitalWrite (11, LOW);
digitalWrite (12, LOW);
digitalWrite (13, LOW);
delay (pause);
digitalWrite (6, LOW);
digitalWrite (7, LOW);
digitalWrite (8, HIGH);
digitalWrite (9, LOW);
digitalWrite (10, LOW);
digitalWrite (11, LOW);
digitalWrite (12, LOW);
digitalWrite (13, LOW);
delay (pause);
digitalWrite (6, LOW);
digitalWrite (7, LOW);
digitalWrite (8, LOW);

Ing. Rubén Gil Chacaltana 13 | 23


digitalWrite (9, HIGH);
digitalWrite (10, LOW);
digitalWrite (11, LOW);
digitalWrite (12, LOW);
digitalWrite (13, LOW);
delay (pause);
digitalWrite (6, LOW);
digitalWrite (7, LOW);
digitalWrite (8, LOW);
digitalWrite (9, LOW);
digitalWrite (10, HIGH);
digitalWrite (11, LOW);
digitalWrite (12, LOW);
digitalWrite (13, LOW);
delay (pause);
digitalWrite (6, LOW);
digitalWrite (7, LOW);
digitalWrite (8, LOW);
digitalWrite (9, LOW);
digitalWrite (10, LOW);
digitalWrite (11, HIGH);
digitalWrite (12, LOW);
digitalWrite (13, LOW);
delay (pause);
digitalWrite (6, LOW);
digitalWrite (7, LOW);
digitalWrite (8, LOW);
digitalWrite (9, LOW);
digitalWrite (10, LOW);
digitalWrite (11, LOW);
digitalWrite (12, HIGH);
digitalWrite (13, LOW);
delay (pause);
digitalWrite (6, LOW);
digitalWrite (7, LOW);
digitalWrite (8, LOW);
digitalWrite (9, LOW);
digitalWrite (10, LOW);
digitalWrite (11, LOW);
digitalWrite (12, LOW);
digitalWrite (13, HIGH);
delay (pause);
}

Ing. Rubén Gil Chacaltana 14 | 23


3. Programa3: Desarrollar un programa que permita visualizar en un display 7 segmentos ánodo
común una cuenta controlada por un pulsador, el display iniciará en 0 y cada vez que se
presione el pulsador la cuenta incrementará de 1 en 1, cuando supere el número 9, la cuenta
deberá regresar a 0.

int c=0;

void setup() {
for (int i=7;i<14;i++)pinMode(i,OUTPUT);
pinMode(6,INPUT);
mostrar(c);
}

void loop() {
int dato;
dato = digitalRead(6);
if (dato==1)
{
while(1)
{
dato=digitalRead(6);
if(dato==0) break;
}
c++;
if(c>9)c=0;
mostrar(c);
}
}

void mostrar(int n)
{
switch(n)
{
case 0:
for (int i=8;i<14;i++)digitalWrite(i,HIGH);
digitalWrite(7,LOW);
break;
case 1:
for (int i=7;i<11;i++)digitalWrite(i,LOW);
digitalWrite(11,HIGH);
digitalWrite(12,HIGH);
digitalWrite(13,LOW);
break;
case 2:
digitalWrite(7,HIGH);
digitalWrite(8,LOW);
digitalWrite(9,HIGH);
Ing. Rubén Gil Chacaltana 15 | 23
digitalWrite(10,HIGH);
digitalWrite(11,LOW);
digitalWrite(12,HIGH);
digitalWrite(13,HIGH);
break;
case 3:
digitalWrite(7,HIGH);
digitalWrite(8,LOW);
digitalWrite(9,LOW);
digitalWrite(10,HIGH);
digitalWrite(11,HIGH);
digitalWrite(12,HIGH);
digitalWrite(13,HIGH);
break;
case 4:
digitalWrite(7,HIGH);
digitalWrite(8,HIGH);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
digitalWrite(11,HIGH);
digitalWrite(12,HIGH);
digitalWrite(13,LOW);
break;
case 5:
digitalWrite(7,HIGH);
digitalWrite(8,HIGH);
digitalWrite(9,LOW);
digitalWrite(10,HIGH);
digitalWrite(11,HIGH);
digitalWrite(12,LOW);
digitalWrite(13,HIGH);
break;
case 6:
digitalWrite(7,HIGH);
digitalWrite(8,HIGH);
digitalWrite(9,HIGH);
digitalWrite(10,HIGH);
digitalWrite(11,HIGH);
digitalWrite(12,LOW);
digitalWrite(13,HIGH);
break;
case 7:
digitalWrite(7,LOW);
digitalWrite(8,LOW);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
digitalWrite(11,HIGH);
digitalWrite(12,HIGH);
digitalWrite(13,HIGH);
Ing. Rubén Gil Chacaltana 16 | 23
break;
case 8:
digitalWrite(7,HIGH);
digitalWrite(8,HIGH);
digitalWrite(9,HIGH);
digitalWrite(10,HIGH);
digitalWrite(11,HIGH);
digitalWrite(12,HIGH);
digitalWrite(13,HIGH);
break;
case 9:
digitalWrite(7,HIGH);
digitalWrite(8,HIGH);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
digitalWrite(11,HIGH);
digitalWrite(12,HIGH);
digitalWrite(13,HIGH);
break;
}
}

4. Programa 4: Desarrollar un programa que permita incrementar o decrementar la cuenta en un


display de 7 segmentos ánodo común a través de dos pulsadores (uno para la cuenta
ascendente y otro para la cuenta descendente), cabe indicar que la cuenta incrementará o
excrementará cuando se presione el pulsador correspondiente y éste se suelte, quiere decir
que mientras el pulsador se encuentre presionado no variará la cuenta.

int sumar=9,restar=10,var1,var2,numero=0;
void setup() {
// put your setup code here, to run once:
for(int i=2;i<=8;i++){
pinMode(i,OUTPUT);
}
pinMode(restar,INPUT);
pinMode(sumar,INPUT);
for(int i=2;i<8;i++){
digitalWrite(i,HIGH);
}
digitalWrite(8,LOW);
}

void loop() {
// put your main code here, to run repeatedly:

var1=digitalRead(sumar);
var2=digitalRead(restar);

Ing. Rubén Gil Chacaltana 17 | 23


if(var1==1){
while(1)
{
var1=digitalRead(sumar);
if(var1==0) break;
}
numero++;
if(numero>9){
numero=0;
}
pant(numero);
}
if(var2==1){
while(1)
{
var2=digitalRead(restar);
if(var2==0) break;
}
numero=numero-1;
if(numero<0){
numero=9;
}
pant(numero);
}

}
void pant(int a){

switch (a){
case 0:
digitalWrite(2,HIGH);
digitalWrite(3,HIGH);
digitalWrite(4,HIGH);
digitalWrite(5,HIGH);
digitalWrite(6,HIGH);
digitalWrite(7,HIGH);
digitalWrite(8,LOW);
break;
case 1:
digitalWrite(2,LOW);
digitalWrite(3,HIGH);
digitalWrite(4,HIGH);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
digitalWrite(7,LOW);
digitalWrite(8,LOW);
break;
case 2:
digitalWrite(2,HIGH);
Ing. Rubén Gil Chacaltana 18 | 23
digitalWrite(3,HIGH);
digitalWrite(4,LOW);
digitalWrite(5,HIGH);
digitalWrite(6,HIGH);
digitalWrite(7,LOW);
digitalWrite(8,HIGH);
break;

case 3:
digitalWrite(2,HIGH);
digitalWrite(3,HIGH);
digitalWrite(4,HIGH);
digitalWrite(5,HIGH);
digitalWrite(6,LOW);
digitalWrite(7,LOW);
digitalWrite(8,HIGH);
break;

case 4:
digitalWrite(2,LOW);
digitalWrite(3,HIGH);
digitalWrite(4,HIGH);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
digitalWrite(7,HIGH);
digitalWrite(8,HIGH);
break;

case 5:
digitalWrite(2,HIGH);
digitalWrite(3,LOW);
digitalWrite(4,HIGH);
digitalWrite(5,HIGH);
digitalWrite(6,LOW);
digitalWrite(7,HIGH);
digitalWrite(8,HIGH);
break;

case 6:
digitalWrite(2,HIGH);
digitalWrite(3,LOW);
digitalWrite(4,HIGH);
digitalWrite(5,HIGH);
digitalWrite(6,HIGH);
digitalWrite(7,HIGH);
digitalWrite(8,HIGH);
break;
case 7:
digitalWrite(2,HIGH);
Ing. Rubén Gil Chacaltana 19 | 23
digitalWrite(3,HIGH);
digitalWrite(4,HIGH);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
digitalWrite(7,LOW);
digitalWrite(8,LOW);
break;
case 8:
digitalWrite(2,HIGH);
digitalWrite(3,HIGH);
digitalWrite(4,HIGH);
digitalWrite(5,HIGH);
digitalWrite(6,HIGH);
digitalWrite(7,HIGH);
digitalWrite(8,HIGH);
break;
case 9:
digitalWrite(2,HIGH);
digitalWrite(3,HIGH);
digitalWrite(4,HIGH);
digitalWrite(5,HIGH);
digitalWrite(6,LOW);
digitalWrite(7,HIGH);
digitalWrite(8,HIGH);
break;
}
return 0;
}

Ing. Rubén Gil Chacaltana 20 | 23


Procedimiento
Programa 1: Desarrollar un programa que permita el control de un motor DC bajo la siguiente
configuración:
• Al presionar el pulsador 1, el motor girará a la derecha.
• Al presionar el pulsador 2, el motor girará a la izquierda.
• Al presionar el pulsador 3, el motor se detendrá.

Programa 2: Desarrollar un programa que permita realizar el control de una plataforma móvil. El
control consistirá en 4 botones:
• Al presionar el primer botón el móvil avanzará, cuando este botón se suelte el móvil se
detendrá.
• Con el segundo botón el móvil retrocederá.
• Con el tercer botón el móvil girará a la derecha.
• Con el cuarto botón el móvil girará a la izquierda.

Programa3: Se tiene un sistema automatizado que cuenta los productos que pasan a través de
un sensor óptico, los productos se desplazan por una faja transportadora la cual es controlada a
través de un motor DC. Además, antes de la cuenta, existe un sensor que detecta si el producto
cumple con los estándares de calidad, cuando el sensor detecta la imperfección la faja se
detiene y el producto es descartado mediante la apertura de una pequeña compuerta ubicada en
la base de la faja, terminado este proceso la faja retoma su funcionamiento.
La apertura y cierre de la compuerta es controlada por otro motor DC.
Implementar el circuito y realizar el programa. Para esto utilizar un display 7 segmentos cátodo
común, como sensores considerar pulsadores.

Ing. Rubén Gil Chacaltana 21 | 23


Informe
Modelo de Informe

Carátula

Deberá contener lo siguiente:


1. Logo de la institución.
2. Nombre del curso
3. Nombre del laboratorio
4. Nombre de los integrantes.
5. Código de los participantes.
6. Número de mesa de trabajo.
7. Fecha de realización.
8. Ambiente de trabajo.
9. Nombre del profesor.
10. Semestre académico.

Fundamento teórico
Deberá ser conciso y redactado con lenguaje propio. Estará basado en las lecturas recomendadas o
cualquier otra información relacionada con el tema. No debe de exceder de una página.

PRIMERA PARTE: Resultado del Laboratorio

El informe deberá constar de los siguientes puntos:

I. Resultados del procedimiento desarrollado en el laboratorio indicando con claridad las


mediciones tomadas y los gráficos de las señales de acuerdo con las escalas tomadas. (No
copiar toda la guía del laboratorio).
II. Explique sustentando con fundamentos teóricos los resultados obtenidos en el laboratorio.

SEGUNDA PARTE: Observaciones y conclusiones

Observaciones: se deben resaltar los logros alcanzados y también las dificultades o errores de
carácter técnico que pudieran haber encontrado en el desarrollo de las tareas, respaldados por los
cálculos o gráficos pertinentes si fuese el caso.

Conclusiones: esta parte contiene la síntesis de los resultados alcanzados a la finalización del
experimento.
Ing. Rubén Gil Chacaltana 22 | 23
Nota: Utilice el software que requiere su informe Aplicación de lo aprendido

Observaciones Generales

1. La presentación del informe se realiza de forma digital al correo: rgil@unfv.edu.pe. El plazo de


entrega es hasta el miércoles 17 (23h00).
2. El grupo estará conformado por 4 integrantes como máximo.
3. Se tomará en cuenta las reglas de ortografía en la redacción del informe.
4. La evaluación se realizará bajo la siguiente rúbrica:

Presentación Puntos
Puntualidad 3
Pregunta 1 5
Pregunta 2 6
Pregunta 3 6
Total 20

Ing. Rubén Gil Chacaltana 23 | 23

S-ar putea să vă placă și