Info6 Micro2 PDF

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 11

UNIVERSIDAD POLITÉCNICA SALESIANA LABORATORIO DE SISTEMAS

Fecha: 10/07/2019 MICROPROCESADOS II

PRÁCTICA Nº6
MANEJO DE ARDUINO
Brandon Fabián Guato Pozo
[email protected]

Guerrero Pineda Marlon Stalin


e-mail: mguerrerop1est.ups.edu.ec

Ñacato Peña Richard Fabrico


e-mail: [email protected]

RESUMEN: En el siguiente informe se detalla como hobby y para cualquiera interesado en


el procedimiento que se debe seguir para realizar crear objetos o entornos interactivos
la programación, simulación e implementación de
un circuito multifuncional básico, en el que se 2.1.1 Ventajas
explica de manera teórica y práctica el manejo de
los dispositivos de entradas y salida conectados Arduino también simplificael proceso de
a una placa de Arduino Mega, además todo el trabajo con microcontroladores, pero ofrece
proceso se lo realizará mediante una interfaz algunas ventajas para profesores, estudiantes y
gráfica en Labiew el cual mostrará los datos de aaficionados interesados sobre otros sistemas:
los sensores, la implementación del circuito  Barato: Las placas Arduino son
simulará una casa domótica como son persianas, relativamente baratas comparadas con otras
ventilador y finalmente un control de temperatura. plataformas microcontroladoras. La versión
menos cara del módulo Arduino puede ser
PALABRAS CLAVE: Arduino Mega, ensamblada a mano, e incluso los módulos
de Arduino preensamblados cuestan menos
Labiew. de 50$.
1. OBJETIVOS  Multiplataforma: El software de Arduino se
ejecuta en sistemas operativos Windows,
Macintosh OSX y GNU/Linux. La mayoría de
1.1. OBJETIVO GENERAL los sistemas microcontroladores están
limitados a Windows.
 Desarrollar el control de una casa domótica,  Entorno de programación simple y
con interface gráfica a una pc de la cual se claro: El entorno de programación de
controlara y se visualizara el estado de los Arduino es fácil de usar para principiantes,
sensores y actuadores. pero suficientemente flexible para que
usuarios avanzados puedan aprovecharlo
1.2. OBJETIVOS ESPECIFICOS también. Para profesores, está
 Mediante la interface gráfica realizar el convenientemente basado en el entorno de
control de sensores y actuadores ubicados programación Processing, de manera que
en la maqueta domótica. estudiantes aprendiendo a programar en ese
entorno estarán familiarizados con el
 Diseñar e implementar un circuito aspecto y la imagen de Arduino.
multifuncional empleando la placa de  Código abierto y software extensible: El
desarrollo arduino mega para demostrar la software Arduino está publicado como
programación, conexión y funcionamiento de herramientas de código abierto, disponible
distintos elementos de entrada y salida. para extensión por programadores
experimentados. El lenguaje puede ser
 Establecer la comunicación entre arduino y expandido mediante librerías C++, y la gente
la Pc. que quiera entender los detalles técnicos
pueden hacer el salto desde Arduino a la
2. MARCO TEÓRICO programación en lenguaje AVR C en el cual
está basado. De forma similar, puedes
añadir código AVR-C directamente en
2.1 Arduino tus programas Arduino si quieres.
 Código abierto y hardware extensible: El
Arduino es una plataforma de prototipos Arduino está basado en microcontroladores
electrónica de código abierto (open-source) ATMEGA8 y ATMEGA168 de Atmel. Los
basada en hardware y software flexibles y fáciles planos para los módulos están publicados
de usar. Está pensado para artistas, diseñadores, bajo licencia Creative Commons, por lo que

1
UNIVERSIDAD POLITÉCNICA SALESIANA LABORATORIO DE SISTEMAS
Fecha: 10/07/2019 MICROPROCESADOS II

diseñadores experimentados de circuitos El Arduino Mega presenta varios puertos B, C, D,


pueden hacer su propia versión del módulo, E, F, etc. Cada puerto es controlado por tres
extendiéndolo y mejorándolo. Incluso registros, los cuales también están definidos
usuarios relativamente inexpertos pueden como variables en el lenguaje del Arduino.
construir la versión de la placa del módulo
para entender cómo funciona y ahorrar
dinero.[1]
 El registro DDR, determina si el pin
2.2 Arduino Mega es una entrada o una salida (1
salida, 0 entrada).
El Mega 2560 es una placa electrónica basada  El registro PORT controla si el pin
en el Atmega2560 . Cuenta con 54 pines digitales está en nivel alto (1) o en nivel bajo
de entrada / salida (de los cuales 15 se pueden (0).
utilizar como salidas PWM), 16 entradas  El registro PIN permite leer el
analógicas, 4 UARTs (puertos serie de estado de un pin. (solo lectura)
hardware), un oscilador de 16MHz, una conexión
USB, un conector de alimentación, una cabecera Cada bit de estos registros corresponden con un
ICSP, y un botón de reinicio. Contiene todo lo solo pin; por ejemplo el bit menos significativo de
necesario para apoyar el microcontrolador; basta los registros DDRB, PORTB, y PINB hace
con conectarlo a un ordenador con un cable USB referencia al pin PB0 (pin digital 8)
o la corriente con un adaptador de CA a CC o una
batería para empezar. El tablero de 2560 mega Dentro de la avr-libc tenemos un fichero de
es compatible con la mayoría de los shield para definición de los registros para cada
el Uno y los anteriores juntas de Duemilanove o microcontrolador. Estos fichero se pueden
Diecimila. encontrar en la ruta: C:\Program Files
(x86)\Arduino\hardware\tools\avr\avr\include\avr

Las limitaciones eléctricas en el microcontrolador


son por puerto y por pin.

Al utilizar Registros DDR se tiene la ventaja de


que con solo una instrucción se declara el pin
como entrada o salida, sin embargo con
pinMode() necesitaríamos 8 instrucciones.

Fig. 1 Placa Arduino Mega[3]

2.2.1 ENTRADAS Y SALIDAS DIGITALES


Cada uno de los 54 pines digitales se puede
emplear como entrada o salida usando las
funciones digitalWrite, digitalRead y pinMode de
la librería Arduino. Los pines operan a 5 V y cada
uno de ellos recibe o provee 20 mA, pudiendo
Fig 2. Registros DDR, PORT, PIN
llegar a 40 mA como máximo. [1]
Se podría decir al Atmega cómo serán utilizados
Pero a bajo nivel estas funciones están
sus pines, pero se requiere saber cómo leer y
manejando registros. Para empezar hay un
escribir datos en dichos pines, de modo que para
registro dedicado para cada puerto que define si
escribir datos en un determinado puerto, se utiliza
cada pin es una entrada o una salida, que es el
el registro PORTx, éste es fácil de recordar,
registro de DDRX, donde x es la letra del puerto
donde x es el nombre del puerto, y después de la
que queremos configurar, en el caso de la
configuración de un pin como salida es sólo una
Arduino hay DDRB, DDRC y DDRD. Como toda
cuestión de poner 0 o 1 en el registro PORTx para
variable lógica, cada bit en los registros DDRX
controlar que el pin de este en estado alta o baja.
puede ser 1 ó 0, poner un bit específico de DDRX
a 1 configura el pin como salida y ponerla a 0
configura el pin como una entrada.

2
UNIVERSIDAD POLITÉCNICA SALESIANA LABORATORIO DE SISTEMAS
Fecha: 10/07/2019 MICROPROCESADOS II

2.3 PWM que el propio cable USB la proporciona, para


la realización de algunos de los experimentos
Las Salidas PWM (Pulse Width Modulation) prácticos sí que será necesario disponer de
permiten generar salidas analógicas desde pines una fuente de alimentación externa ya que la
digitales. Arduino Uno no posee salidas alimentación proporcionada por el USB puede no
analógicas puras. ser suficiente. El voltaje de la fuente puede estar
PWM tiene varios usos en los entre 6 y 25 Voltios.
microcontroladores:
 Dimming un LED Para programar la placa es necesario
 Obtener una salida analógica descargarse dela página web de Arduino el
 Ofrecer un voltaje analógico entre el 0% entorno de desarrollo (IDE). Se dispone de
y el 100% de Vcc versiones para Windows y para MAC, así como
 Generar señales de audio las fuentes para compilarlas en LINUX. En la
 Controlar velocidad de motores Figura 2 se muestra el aspecto del entorno de
 Generar una señal modulada, por programación. En el caso de disponer de una
ejemplo para manejar un LED infrarrojo placa USB es necesario instalar los drivers FTDI.
de un mando a distancia. Estos drivers vienen incluidos en el paquete de
Arduino mencionado anteriormente. Existen en la
analogWrite() Escribe un valor analógico ( web, versiones para distintos sistemas
onda PWM ) en un pin. Se puede usar para operativos.
encender un LED con diferentes niveles de brillo
o para conducir un motor a diferentes
velocidades. Después de una llamada a
analogWrite(), el pin generará una onda 2.4.1 Estructura básica de un
cuadrada constante del ciclo de trabajo programa
especificado hasta la próxima llamada a
analogWrite()(o una llamada digitalRead()ao La estructura básica de programación de Arduino
digitalWrite()) en el mismo pin. La frecuencia de es bastante simple y divide la ejecución en dos
la señal PWM en la mayoría de los pines es de partes: setup y loop. Setup() constituye la
aproximadamente 490 Hz. En el Uno y tableros preparación del pr
similares, los pines 5 y 6 tienen una frecuencia de
aproximadamente 980 Hz. [6] ograma y loop() es la ejecución. En la función
Setup() se incluye la declaración devariables y se
En la mayoría de los tableros Arduino (aquellos trata de la primera función que se ejecuta en el
con ATmega168 o ATmega328P), esta función programa. Esta función se ejecuta una única vez
funciona en los pines 3, 5, 6, 9, 10 y 11. En el y es empleada para configurar el pinMode (p. ej.
Arduino Mega, funciona en los pines 2 - 13 y 44 - si un determinado pin dig
46. Older Arduino los tableros con un ATmega8
solo admiten los analogWrite()pines 9, 10 y 11. ital es de entrada o salida) e inicializar la
comunicación serie. La función loop() incluye el
El Arduino DUE admite los analogWrite()pines 2 código a ser ejecutado continuamente (leyendo
a 13, más los pines DAC0 y DAC1. A diferencia las entradas de la placa, salidas, etc.).
de los pines PWM, DAC0 y DAC1 son
convertidores digitales a analógicos y funcionan
como salidas analógicas reales.

No necesita llamar pinMode()para configurar el


pin como salida antes de llamar analogWrite().
Fig. 3 Ejemplo de estructura del programa en arduino
La analogWritefunción no tiene nada que ver con
los pines analógicos o la analogReadfunción. 2.5 Librerías en Arduino
2.5.1 Librería de Base (Core Library)
2.4 Entorno de programación de La biblioteca de base forma parte del entorno
arduino de desarrollo del Arduino (IDE). El propósito de
esta librería es ocultar mucha de la complejidad
que tradicionalmente implica el trabajar con un
El programa se implementará haciendo uso del microprocesador. [1]
entorno de programación propio de arduino y se
transferirá empleando un cable USB. Si bien La mayoría de los proyectos leen datos de
en el caso de la placa USB no es preciso una de las entradas o escriben datos en una de
utilizar una fuente de alimentación externa, ya las salidas. La librería core hace que estas tareas

3
UNIVERSIDAD POLITÉCNICA SALESIANA LABORATORIO DE SISTEMAS
Fecha: 10/07/2019 MICROPROCESADOS II

comunes sean simples ejecutar. Por ejemplo, 3. MATERIALES Y EQUIPO


para leer el valor de un pin digital basta con usar
la función digitalRead. [1]
 1 Protoboard
2.5.2 Librerías estándar  Arduino mega 2560
 Resistencias de diferentes valores
Las librerías estándar son aquellas que el  2 motores de 5V
equipo de desarrollo de Arduino estimó que  1 fotoresistencia
serían necesarias para los desarrollos de varios  1 foco de 12V
programas por parte de varios usuarios. Estas  1 Pulsador
librerías no se incluyen como opción por defecto  1 Sensor de temperatura(LM35)
en tus sketches, tienes que cargarlas una por una  Computadora Personal
(aquellas que necesites). De esta manera se  Cables para conexión
utilizan los recursos de memoria del Arduino con
mayor eficiencia al cargar únicamente aquellas
librerías que vas a usar en tu sketch. [1] 4. DESARROLLO Y
PROCEDIMIENTO
Para incluir una librería basta con añadir una
declaración #include y agregar el nombre de la 4.1 Comunicación ARDUINO
librería que queramos incluir entre comillas o
entre < >, al comienzo del sketch. de la siguiente Las comunicaciones serial proporcionan una
manera: forma rápida y sencilla de que Arduino interactúe
con el ordenador u otros dispositivos. También es
una herramienta útil para depurar el código.

El hardware serial envía y recibe datos como


pulsos eléctricos que representan secuencias de
Fig 4. Formas de agregar una librería bits. Los ceros (0) y los unos (1) que transportan
la información se convierten en bytes que pueden
ser representados de diversas formas. El
esquema usado por Arduino es 0 voltios para
 Cuando se coloca el nombre de la librería representar un bit de valor 0 y 5 voltios (ó 3.3V)
entre “” se buscarán los ficheros de dicha para representar un bit de valor 1.
librería en el mismo directorio/carpeta donde
se tiene el código del programa. Si se guarda El Arduino MEGA tiene 4 puertos serial físicos,
el proyecto en la carpeta por lo que se puede comunicar con 4 dispositivos.
Escritorio/miPrograma, se buscará en esa Solo unos de estos puertos tienen un adaptador
misma carpeta los archivos de la librería que a USB, aunque en los 3 restantes se puede
deberían estar junto con el proyecto que se acoplar un adaptador TTL- USB.
está realizando.
 Cuando se añaden las librerías entre <>, se
buscan los ficheros en la carpeta del sistema
reservada con tal propósito donde están
guardadas las librerías que vienen por
defecto con Arduino.

Las distintas librerías estándar que posee


Arduino son las siguientes:

 Librería ArduinoTestSuite Fig 5. Puertos seriales de Arduino


 Librería EEPROM
Por lo normal se usa la propia librería serial de
 Librería SD Arduino para comunicarnos con los puertos serial
 Librería Ethernet físicos. La librería serial simplifica el uso de los
 Librería Firmata puertos Las librerías manejan el envío y
 Librería LiquidCrystal recepción de la información. Esta información
 Librería Servo suele consistir en grupos de variables que
 Librería Stepper necesitan ser enviadas de forma conjunta. Para
que la información sea interpretada de forma
 Librería SPI
correcta, el lado receptor necesita reconocer
 Librería Wire cuando empieza y termina cada mensaje serial
 Librería SoftwareSerial aislándonos de las complejidades del hardware.

4
UNIVERSIDAD POLITÉCNICA SALESIANA LABORATORIO DE SISTEMAS
Fecha: 10/07/2019 MICROPROCESADOS II

4.3 Arduino Con LabView La programación en LabView realizo el


recibimiento de datos de dos sensores los cuales
El primer paso para empezar a realizar la interfaz son la fotoresistencia y control de temperatura
gráfica en Labiew es crear ventanas gráficas para
la comunicación USB(USB template) En la placa de desarrollo se realizó la
programación para la lectura de un puerto
Para una comunicación entre la placa de analógico, el cual su valor es transmitido por el
desarrollo Arduino y el software LabView se lo puerto serial mostrando su valor en grados
puede realizar atreves de su modulo. realizada en LabView.

Para su conexión se detallan los pasos utilizando 4.3 CIRCUITO PROTEUS


los drivers NI VISA, los cuales para obtener el
acceso en primer lugar hay que configurar el
puerto serial de conexión, y verificar que el puerto BAT2

no estece ocupado y con información en su 12V

tráfico de datos, para lo cual se realiza las Q1

1
2N3904

siguientes conexiones para descartar lo anterior LDR1


TORCH_LDR
SIM1
mencionado. SIMULINO MEGA

2
foco
A0

R6
10k
www.arduino.cc
blogembarcado.blogspot.com
AREF
BAT1
13
RESET 12
~11 12V PUENTE H
16 8
5V ~10
~9
U1 2 3 ventilador

POWER
1 GND 8 IN1 VSS VS OUT1
7 6

ATMEL
ATMEGA2560
persianas IN2 OUT2
1
EN1

DIGITAL (PWM~)
7
A0 A0 ~6

ANALOG IN
38.0 A1
A1 ~5
9

ARDUINO
A2 4 EN2
A3 10 11
2 ~3 IN3 OUT3
VOUT A1 A4 15 14 persianas
2 IN4 GND GND OUT4
A5 TX0 > 1

SIMULINO MEGA
A6 RX0 < 0

3 L293D
LM35 A7

COMMUNICATION
TX314
A8 RX3 15
A9 TX2 16
A10 RX2 17

A11 TX1 18
A12 RX1 19
R1 A13 SDA 20

10k A14 SCL 21

A15
DIGITAL

52
50

48

46

44

42

40

38

36

34

32

30

28

26

24

22
persianas

53

51

49

47

45

43

41

39
37

35

33

31

29

27
25

23
Fig 6. Configuración e inicialización puerto serial

Luego de la inicialización se realiza un bucle que Fig. 9. Circuito Simulado en Proteus


permita leer y escribir datos permanentemente,
para eso se realiza una estructura de casos En la figura 9. Se muestra las conexiones del
verdadero y falso para evitar errores en la lectura Arduino mega 2560 los cuales están
y escritura y un lazo de bucle para no perder la conformados por dos pines análogos conectados
conexión denominada While Loop, los cuales se en A0 para la luminosidad del foco de 12V con la
muestran a continuación. ayuda de un fotoresistor y una resistencia para
tener una menor caída de tensión, en A2 se
conecta un sensor de temperatura (LM35) que
estará ligado con el ventilador esto quiere decir
que si el sensor sobrepasa los 40°C el ventilador
se activara y si el sensor de temperatura esta por
debajo de los 40°C este permanecerá inactivo.

Además observa el uso del puente H(L293D)


que nos proporciona el uso de las persianas para
la casa domótica con la ayuda de un pulsador
conectado a un pin digital del Arduino su función
Fig 7. Etapa de lectura y escritura del puerto serial principal es de cerrar o abrir la persianas en un
intervalo de dos segundos, además que el puente
Finalmente, cuando los datos han sido H también se utilizó para controlar el uso del
transmitidos y recibidos, se procede a eliminar y ventilador todo esto mediante el uso de dos
desocupar el puerto con los drivers del NI VISA motores de 5V
los cuales y por último cerrar el puerto.
4.4 INTERFAZ GRAFICA y Conexión entre
Hardware y Software
Para el presente informe se define como
Software a la interfaz gráfica creada en Labiew y
todos los componentes necesarios para su
correcto funcionamiento
Fig 8. Desafiliación y cierre del puerto

5
UNIVERSIDAD POLITÉCNICA SALESIANA LABORATORIO DE SISTEMAS
Fecha: 10/07/2019 MICROPROCESADOS II

quiere decir que va a cambiar el sentido de giro


del motor

int pulsador = digitalRead(pul);


if (pulsador == 1) {
cont++;
marca = 1;
if (cont > 1) {
cont = 0;
}
delay(500);
}

ANÁLISIS 2: Se implementó el boton de


encendido y apagado del sistema, en este caso
Fig. 10. Interfaz gráfica en Labiew
el pulsador funciona como pull-up es decir se
activara con un 1 lógico, y solo tendrá dos
estados encendido y apagado esto se condiciona
5. ANALISIS DE RESULTADOS con la variable del contador

5.1 ANÁLISIS DE CÓDIGO


5.1.3 Activación y desactivación de los motores
5.1.1 depende de las variables contador y marca
Aunque a primera vista parece muy complicado
programar en Arduino, en realidad no lo es ya
que todo se trata de inicializar varibales y definir
los pines como entradas y salidas sean digitales
if ((cont == 0) && (marca == 1)) {
o analógicos para lo cual el código se realiza de
digitalWrite(motor, HIGH);
la siguiente manera: digitalWrite(motor1, LOW);
delay(2000);
digitalWrite(motor, LOW);
int motor = 2;
digitalWrite(motor1, LOW);
int motor1 = 3;
delay(10);
int pul = 8;
marca = 3;
int pwmluz = 10;
}
int pwmtemp = 9;
ANÁLISIS 3: Para el funcionamiento del sistema
int cont = 0;
int marca = 0; es necesario condicionar el funcionamiento de
void setup() { los dos motores es decir no pueden funcionar los
Serial.begin(9600); dos al mismo tiempo es decir el ventilador debe
pinMode(motor, OUTPUT); funcionar si la temperatura excede sus 40°C y
pinMode(motor1, OUTPUT); las persianas que al primer pulso pondrá en
pinMode(pul, INPUT); marcha al motor y al segundo pulso cambiará el
pinMode(pwmtemp, OUTPUT); giro del mismo
pinMode(pwmluz, OUTPUT);
} 5.1.4 Escalonamiento y lectura de los
puertos analogos.
ANÁLISIS 1: Se declara variables globales para
el control de los dos motores cada uno con la int temp = analogRead(1) * 0.48828;
int luz = analogRead(0) * 0.0977517;
función de las persianas y el ventilador para la
casa domótica, también se declara varibales para Serial.print('A');
el control de temperatura y luz del foco de 12V y Serial.print(temp);
se declara variables como contador y marca, Serial.print('B');
finalmente se defino pines una entrada que es Serial.println(luz);
para el pulsador y salidas que son para los dos
motores, el sensor de temperatura y para el foto int luz1 = luz * 2.55;
resistor. int temp1 = temp * 2.55;

analogWrite(pwmluz, luz1);
analogWrite(pwmtemp, temp1);
5.1.2 En la función void loop se va hacer uso de
marcas y contadores su función principal va
hacer la de abrir y cerrar las persianas esto delay(100);

6
UNIVERSIDAD POLITÉCNICA SALESIANA LABORATORIO DE SISTEMAS
Fecha: 10/07/2019 MICROPROCESADOS II

Para la práctica se debe verificar el suministro de


} energía al sistema, las malas conexiones en el
ANÁLISIS 4: Finalmente se realiza un protoboard, en los conectores de batería o en los
escalonamiento para el control de temperatura terminales de entrada de tensión, la inversión de
con el sensor y para el fotoresistor con un voltaje polaridad al conectar la fuente de alimentación,
máximo de 12V y voltaje mínimo de 0V por medio todo esto puede llevarnos a perder mucho tiempo
hasta descubrir el problema.
del comando analogWrite() se hace una lectura
de cada uno de los datos obtenidos
8. REFERENCIAS

6. CONCLUSIONES.
[1] O, Torrente, Arduino. Curso practico de
 La placa de desarrollo de arduino, al tener un formacion, Mexico: Alfaomega Grupo Editor, S.A.
microcontrolador más robusto permite tener de C.V, 2013. Pp. 225-240.
más muchas más prestaciones pues se
puede notar claramente en el número de [2] playground.arduino.cc, [En línea]. Available:
pines tanto digitales como análogos es https://playground.arduino.cc/ArduinoNotebookT
mayor al del microcontrolador que se raduccion/Appendix2
utilizaba anteriormente y así como los
puertos de comunicación serial y las salidas [3] «NAYLAMP MECHATRONICS, » [En línea].
PWM. Es por ello que familiarizarse con este Available:
tipo de dispositivos resulta muy útil y https://naylampmechatronics.com/blog/23_TUT
practico, logrando así, que el proceso de ORIAL-ARDUINO-Y-LABVIEW.htmlNA.
diseño e implementación de algunos
circuitos en base a la placa de desarrollo sea [4] «Adquisicion de datos,» [En línea]. Available:
simple y cómodo para el estudiante https://adquisiciondedatos.wordpress.com/2014/
mediante el uso de librerías propias para el 03/19/arduino-matlab/.
manejo de cada dispositivo. No obstante, es
necesario entender el algoritmo de cada
librería que se desea incorporar al programa
para establecer correctamente los
parámetros de entrada y así como también
conocer qué valor devuelve dicha función.

 La placa de desarrollo arduino, es un


dispositivo que facilita el uso de la
electrónica en proyectos multidisciplinarios.
Es por esto que es objeto de estudio para la
materia de Sistemas Microprocesados II.
Todas y cada una de sus características
tienen cierta similitud con el uso de un simple
microcontrolador así que el conocimiento
previo de la asignatura resulta de suma
importancia para una mayor comprensión
del funcionamiento del dispositivo Arduino
MEGA

 Para poder reconocer que comandos se


utiliza en la programación de los
convertidores, es necesario saber que señal
va a entrar en el Arduino, ya que el mismo
tiene convertidores analógicos a digitales
(ADC) y digitales a analógicos (DAC), por
esta razón es necesario saber que señal se
va a trabajar, para PWM se utiliza
anologwrite(), y para ADC son dos
anologread() y anologreference(), para así
poder implementar variar aplicaciones

7. RECOMENDACIONES

7
UNIVERSIDAD POLITÉCNICA SALESIANA LABORATORIO DE SISTEMAS
Fecha: 10/07/2019 MICROPROCESADOS II

9. ANEXOS
ANEXO1. FOTOS DEL CIRCUITO FÍSICO PRESENTADO EN LA PRÁCTICA

8
UNIVERSIDAD POLITÉCNICA SALESIANA LABORATORIO DE SISTEMAS
Fecha: 10/07/2019 MICROPROCESADOS II

ANEXO2. CODIGO FUENTE

int motor = 2;

int motor1 = 3;

int pul = 8;

int pwmluz = 10;

int pwmtemp = 9;

int cont = 0;

int marca = 0;

void setup() {

Serial.begin(9600);

pinMode(motor, OUTPUT);

pinMode(motor1, OUTPUT);

pinMode(pul, INPUT);

pinMode(pwmtemp, OUTPUT);

pinMode(pwmluz, OUTPUT);

void loop() {

int pulsador = digitalRead(pul);

if (pulsador == 1) {

cont++;

marca = 1;

if (cont > 1) {

cont = 0;

delay(500);

if ((cont == 0) && (marca == 1)) {

digitalWrite(motor, HIGH);

digitalWrite(motor1, LOW);

delay(2000);

9
UNIVERSIDAD POLITÉCNICA SALESIANA LABORATORIO DE SISTEMAS
Fecha: 10/07/2019 MICROPROCESADOS II

digitalWrite(motor, LOW);

digitalWrite(motor1, LOW);

delay(10);

marca = 3;

if ((cont == 1) && (marca == 1)) {

digitalWrite(motor, LOW);

digitalWrite(motor1, HIGH);

delay(2000);

digitalWrite(motor, LOW);

digitalWrite(motor1, LOW);

delay(10);

marca = 3;

int temp = analogRead(1) * 0.48828;

int luz = analogRead(0) * 0.0977517;

Serial.print('A');

Serial.print(temp);

Serial.print('B');

Serial.println(luz);

int luz1 = luz * 2.55;

int temp1 = temp * 2.55;

analogWrite(pwmluz, luz1);

analogWrite(pwmtemp, temp1);

delay(100);

10
UNIVERSIDAD POLITÉCNICA SALESIANA LABORATORIO DE SISTEMAS
Fecha: 10/07/2019 MICROPROCESADOS II

ANEXO 3. DIAGRMA DEL CIRCUITO EN EL SOFTWARE PROTEUS

BAT2

12V

Q1

1
2N3904
LDR1
TORCH_LDR
SIM1
SIMULINO MEGA
2

foco
A0

R6
10k
www.arduino.cc
blogembarcado.blogspot.com
AREF
BAT1
13
RESET 12
~11 12V PUENTE H
16 8
5V ~10
~9
U1 2 3 ventilador

POWER
1 GND 8 IN1 VSS VS OUT1
7 6

ATMEL
ATMEGA2560
persianas IN2 OUT2
1
EN1

DIGITAL (PWM~)
7
A0 A0 ~6

ANALOG IN
38.0 A1
A1 ~5
9

ARDUINO
A2 4 EN2
A3 10 11
2 ~3 IN3 OUT3
VOUT A1 A4 15 14 persianas
2 IN4 GND GND OUT4
A5 TX0 > 1

SIMULINO MEGA
A6 RX0 < 0

3 L293D
LM35 A7

COMMUNICATION
TX3 14
A8 RX3 15
A9 TX2 16
A10 RX2 17
A11 TX1 18
A12 RX1 19
R1 A13 SDA 20
10k A14 SCL 21
A15
DIGITAL
52

50

48

46

44

42
40

38

36

34

32

30

28

26

24

22
persianas
53

51

49

47

45

43

41

39

37

35

33

31

29

27

25

23

11

También podría gustarte