Está en la página 1de 24

Lic.

en Sistemas Elctricos y Automatizacin Tcnicas de Control Digital II

Universidad Tecnolgica de Panam Centro Regional de Cocl Facultad de Ingeniera Elctrica

Proyecto Semestral Guas de Laboratorio de Control Digital Utilizando Plataformas Arduino

Arnulfo Ortega 2-709-2017 ortega.arnulfo@yahoo.es Jorge Lombardo 2-721-69 lombardohawk@gamail.com Vladimir Acosta 2-726-1432 vladimir_1402@hotmail.com

Lic. en Sistemas Elctricos y Automatizacin Tcnicas de Control Digital II

INTRODUCCIN

QU ES ARDUINO? Arduino es una herramienta para hacer que los ordenadores puedan sentir y controlar el mundo fsico a travs de tu ordenador personal. Es una plataforma de desarrollo de computacin fsica (physical computing) de cdigo abierto, basada en una placa con un sencillo microcontrolador y un entorno de desarrollo para crear software (programas) para la placa. Puedes usar Arduino para crear objetos interactivos, leyendo datos de una gran variedad de interruptores y sensores y controlar multitud de tipos de luces, motores y otros actuadores fsicos. Los proyectos de Arduino pueden ser autnomos o comunicarse con un programa (software) que se ejecute en tu ordenador

Lic. en Sistemas Elctricos y Automatizacin Tcnicas de Control Digital II

HARDWARE

Serial: 0 (Rx) y 1 (Tx). Usados para recibir (Rx) y transmitir (Tx) datos TTL en serie. Entradas/Salidas digitales: Las encuentras en la parte superior de la placa de Arduino, numeradas del pin 1 al 13. Pin 13 digital: . Hay un LED empotrado conectado al pin digital 13. Cuando el pin est a valor HIGH, el LED est encendido, cuando el pin est a LOW, est apagado.

PWM digital: Las encuentras en los pines digitales y estn identificados con el smbolo ~ debajo del nmero de pin. Entradas Anlogas: A0 A5 la encuentras en la parte inferior de la placa de Arduino Botn de reset: presinalo si necesitas reiniciar tu programa, ste se tardar aproximadamente 1 segundo en correr el programa. Pines de alimentacin: los encuentras en la parte inferior de la placa de Arduino y puedes identificar sus voltajes de alimentacin 5V, 3.3V, GND y Vref.

Lic. en Sistemas Elctricos y Automatizacin Tcnicas de Control Digital II

Funciones bsicas.
La funcin void setup() Esta funcin se ejecuta cada vez que se inicia Arduino (incluyendo al pulsar RESET). Una de las operaciones que se realiza en void setup() es la de configurar de los pines que vamos a utilizar. La funcin void loop() Esta funcin es el corazn de los programas creados con arduino. Es una funcin que permanece en ejecucin en forma de bucle infinito. Esto quiere decir que se ejecuta de comienzo a fin, de forma repetida, siempre.

Sintaxis ; (punto y coma) Sirve para separar sentencias (llamada a funcin, declaracin de variable...). {} (llaves) Marcan los lmites de un bloque de cdigo (inicio y fin de una funcin o estructura de control). // (comentarios en una lnea) Inicio de un comentario en la misma lnea /* */ (comentarios en mltiples lneas) Inicio y fin de un bloque de comentario

Variables Constantes INPUT: Entrada OUTPUT: Salida HIGH: Encendido (5V) LOW: Apagado (0V) true: Verdadero false: Falso

Lic. en Sistemas Elctricos y Automatizacin Tcnicas de Control Digital II

Tipos de Dato *var ser el nombre que queramos dar a esa variable. Podr ser: valor, led, pot (potencimetro), pin, pepito, jorgito... boolean (verdadero/falso) Ejemplo: boolean var = true; char (carcter) Ejemplo: char var = R byte byte var = Bxxxxxxxx; // B es el formateador binario (B00010010 = 18 decimal) Ejemplo: byte var = B00010010; int (entero, desde -32,768 hasta 32,767) Ejemplo: int var = 3; unsigned int (entero sin signo, desde 0 a 65,535) Ejemplo: unsigned int var = 12; long (entero 32bit, desde -2,147,483,648 hasta 2,147,483,647) Ejemplo: long var = 8; unsigned long (entero 32bit sin signo, desde 0 a 4,294,967,295) Ejemplo: unsigned long var = 18; float (es un nmero decimal de 32bit) Ejemplo: float var = 3.5; double (es lo mismo que float) Ejemplo: double var = 3.8; string (cadena de caracteres) Ejemplo: string var = Hola Mundo!; array (vector) int vars[x]; // un vector de x elementos de tipo int Ejemplo: int var[14]; float var[20]; void (vaco) (Slo utilizado cuando una funcin no devuelve nada) Ejemplo: void funcion()

Lic. en Sistemas Elctricos y Automatizacin Tcnicas de Control Digital II

Funciones Principales Las funciones ms comnmente utilizadas son las siguientes: *Write se refiere a escritura / salida de valores de la placa al exterior. *Read se refiere a lectura / entrada de valores desde el exterior a la placa. E/S Digitales pinMode: Configuracin del Pin pinMode(nmero del Pin, tipo INPUT o OUTPUT); Ejemplo: pinMode(9, OUTPUT); digitalWrite: Escritura en Pin Digital digitalWrite(nmero del Pin, valor); Ejemplo: digitalWrite(ledPin, HIGH); digitalRead: Lectura en Pin Digital digitalRead(nmero del Pin); Ejemplo: digitalRead(9); E/S Analgicas analogRead: Lectura de Pin analgico analogRead(nmero del Pin); Ejemplo: analogRead(9); analogWrite: Escritura Analgica - PWM (modulacin por ancho de pulso) analogWrite(nmero del Pin, valor); Ejemplo: analogWrite(9, 255); Tiempo delay: Pausa la ejecucin un tiempo determinado delay(milisegundos); Ejemplo: delay(1000);

Lic. en Sistemas Elctricos y Automatizacin Tcnicas de Control Digital II

Comunicacin Serial: Estructura que contiene todas las funciones relacionadas con la comunicacin por puerto serie. Print: Muestra en la consola los datos seleccionados Serial.print(datos que queremos imprimir); Ejemplos: de texto Serial.print(Hola Mundo!); de variable Serial.print(valPot);

Println: Hace lo mismo que print pero aadiendo un salto de lnea Serial.println(datos que queremos imprimir); Ejemplos: de texto Serial.println(Hola Mundo!); de variable Serial.println(valPot);

Lic. en Sistemas Elctricos y Automatizacin Tcnicas de Control Digital II

Estructuras de control if...else (comparador si... sino). Ejemplo:

Si el led est apagado { enciendelo } sino { apgalo }

if(digitalRead(led) == LOW) { digitalWrite(led, HIGH); } else { digitalWrite(led, LOW); }

for (bucle con contador). Ejemplo: For (valor inicial; condicin para que siga el bucle; forma de aumentar) Para que (desde el valor 0; hasta el valor 100; aumenta de 1 en 1) { enciende el led espera 1 segundo apaga el led espera un segundo } int cont; for(cont=0; cont<100; cont=cont+1) { digitalWrite(led, HIGH); delay(1000); digitalWrite(led, LOW); delay(1000); }

while (bucle por comparacin) Ejemplo: Mientras ocurra (hay luz) { Apaga Led } while(INPUT==HIGH) { DigitalWrite = LOW; }

Lic. en Sistemas Elctricos y Automatizacin Tcnicas de Control Digital II

Comunicacin Serie Se utiliza para la comunicacin entre la placa Arduino y un ordenador u otros dispositivos. Todas las placas Arduino tienen al menos un puerto serie Serial. Se comunica a travs de los pines digitales 0 (RX) y 1 (TX), as como con el ordenador mediante USB. Por lo tanto, si utilizas estas funciones, no puedes usar los pines 0 y 1 como entrada o salida digital. Puedes utilizar el monitor del puerto serie incorporado en el entorno Arduino para comunicarte con la placa Arduino. Haz clic en el botn del monitor de puerto serie en la barra de herramientas y selecciona la misma velocidad en baudios utilizada en la llamada a begin(). Serial.begin(speed) Establece la velocidad de datos en bits por segundo (baudios) para la transmisin de datos en serie. Para comunicarse con el ordenador, utilice una de estas velocidades: 300, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600 o 115200. Ejm: Serial.begin(9600); Serial.read() Lee los datos entrantes del puerto serie. Ejm; Byte = Serial.read(); decimal Serial.println(analogValue, HEX);// imprime como ASCII hexadecimal

Serial.available() Devuelve el nmero de bytes (caracteres) disponibles para ser ledos por el puerto serie. Se refiere a datos ya recibidos y disponibles en el buffer de recepcin del puerto (que tiene una capacidad de 128 bytes). if (Serial.available() > 0) { //realiza la lectura del puerto serie }

Lic. en Sistemas Elctricos y Automatizacin Tcnicas de Control Digital II

EXPERIMENTO #1 Led Intermitente Crear un programa que controle el parpadeo de un led, se trata de realizar un ejercicio bsico que consiste en encender y apagar un led que conectamos en el PIN 13 de Arduino que lo configuramos como salida. El tiempo de encendido y apagado es de 1 segundo. Materiales y Equipo Tarjeta Arduino UNO 1 Diodo LED 1 Resistencia de 220

1. Arme el circuito como se muestra en la figura.

Lic. en Sistemas Elctricos y Automatizacin Tcnicas de Control Digital II

Obsrvese que se ha colocado el diodo led sin resistencia en serie dado que el PIN13 de Arduino ya lleva incorporada una resistencia interior, en el caso de colocar el diodo LED en otra salida deberamos colocar una resistencia de al entre 220 y 500 ohmios dependiendo del consumo de corriente del diodo, como se muestra en la figura.

2. Escriba el cdigo de programacin en el software arduino.

/* Experimento #1 Encender y apagar un Led //Comentario */ int ledPin = 13; // Definicin de la salida en el PIN 13 void setup() //Configuracin { pinMode(ledPin, OUTPUT); // designa la salida digital al PIN 13 } void loop() // //ejecuta consecutivamente el cdigo asignado { digitalWrite(ledPin, HIGH); // activa el LED delay(1000); // espera 1 seg. (tiempo encendido) digitalWrite(ledPin, LOW); // desactiva el LED delay(1000); // espera 1 seg. (tiempo apagado) }

3. Compile el programa y crguelo a la tarjeta arduino. 4. Describa lo que sucede: ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________

Lic. en Sistemas Elctricos y Automatizacin Tcnicas de Control Digital II

5. Cambie la salida del led al PIN10; cambie los tiempos a 2 seg. 6. Arme el circuito como se muestra en la figura.

7. Describa lo que sucede: ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________

Lic. en Sistemas Elctricos y Automatizacin Tcnicas de Control Digital II

EXPERIMENTO #2 Potencimetro: Lectura de seal Analgica Enciende y apaga un LED conectado al pin digital #13. La cantidad de tiempo que el LED parpadear depende del valor obtenido mediante analogRead(); que sera la variacin de resistencia en el potencimetro. En este caso al pin 2 Descripcin: El potencimetro es un dispositivo electromecnico que consta de una resistencia de valor fijo sobre la que se desplaza un contacto deslizante, el cursor, que la divide elctricamente. Como se muestra en el siguiente grfico:

Vout=((R1/(R1+R2))*Vin (Aplicando la ley de Ohm) Un potencimetro es especificado por su resistencia total, R, entre los terminales externos 1 y 3; El movimiento del cursor origina un cambio en la resistencia medida entre el terminal central, 2, y uno cualquiera de los extremos. Este cambio de resistencia puede utilizarse para medir desplazamientos lineales o angulares de una pieza acoplada al cursor. Se conectan en paralelo al circuito y se comporta como un divisor de tensin. Un potencimetro tambin puede ser usado como una resistencia variable (o restato) de dos terminales, en ese caso, se cortocircuitan dos de las tres patas del potencimetro. Ejemplo:

Lic. en Sistemas Elctricos y Automatizacin Tcnicas de Control Digital II

Materiales y Equipo Tarjeta Arduino UNO 1 Diodo LED 1 Potencimetro de 10K 1 Resistencia de 220 1. Arme el circuito como se muestra en la figura.

2. Escriba el cdigo de programacin en el software arduino. /* Experimento #2 Potenciometro, lectura de seal analogica //Comentario */ int potPin = 2; // seleccionar el pin de entrada analgico para el potencimetro int ledPin = 13; // seleccionar el pin de salida digital para el LED int val = 0; // variable para almacenar el valor capturado desde el sensor void setup() { //comienza la configuracin pinMode(ledPin, OUTPUT); // declara el ledPin en modo salida } void loop() { //ejecuta consecutivamente el cdigo asignado val = analogRead(potPin); // lee el valor del sensor digitalWrite(ledPin, HIGH); // enciende LED delay(val); // detiene el programa por un tiempo val digitalWrite(ledPin, LOW); // apaga el LED delay(val); // detiene el programa por un tiempo val }

Lic. en Sistemas Elctricos y Automatizacin Tcnicas de Control Digital II

3. Compile el programa y crguelo a la tarjeta arduino. 4. Describa lo que sucede: ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________

5. Cambie la salida del led; cambie la entrada analgica (recuerdo lo explicado sobre las entradas y salidas de la tarjeta Arduino UNO). 6. Arme el circuito segn la configuracin que usted le dio a las entradas y salidas.

7. Describa lo que sucede: ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________

Lic. en Sistemas Elctricos y Automatizacin Tcnicas de Control Digital II

EXPERIMENTO #3 Construccin de un indicador de nivel (vmetro con diodos led) Se trata de construir u indicador de nivel que sea capaz de medir el valor de una seal de entrada generada por un potencimetro desde una entrada analgica. Se establecern 3 diodos Led conectados a las salidas PIN6, PIN7 y PIN8. La entrada la conectaremos en la entrada analgica PIN 1 (analog IN1) Materiales y Equipo Tarjeta Arduino UNO 3 Diodo LED 1 Potencimetro de 10K 3 Resistencia de 220 1. Arme el circuito como se muestra en la figura.

Lic. en Sistemas Elctricos y Automatizacin Tcnicas de Control Digital II

2. Escriba el cdigo de programacin en el software arduino /* Experimento #3 Construccin de un indicador de nivel //Comentario */ int ledPin1 = 8; // Seleccin de PIN para cada LED int ledPin2 = 7; int ledPin3 = 6; int inPin= 1; // selecciona la entrada analgica 1 (potencimetro) void turn_off() { //Apaga los 3 LEDS digitalWrite(ledPin1, LOW); apaga LED del PIN8 digitalWrite(ledPin2, LOW); apaga LED del PIN7 digitalWrite(ledPin3, LOW); apaga LED del PIN6 } void setup() { //comienza la configuracin pinMode(ledPin1, OUTPUT); // declara LEDs como salidas pinMode(ledPin2, OUTPUT); pinMode(ledPin3, OUTPUT); turn_off(); } void loop(){ //ejecuta consecutivamente el cdigo asignado int val; val= analogRead(inPin); // lee el valor de la seal analgica turn_off();apaga los tres LED // Si el valor de la seal medida es > 256 enciende LED del PIN8 if (val>= 256) digitalWrite(ledPin1, HIGH); // Si el valor de la seal medida es > 512 enciende LED del PIN7 if (val>= 512) digitalWrite(ledPin2, HIGH); // Si el valor de la seal medida es > 758 enciende LED del PIN6 if (val>= 768) digitalWrite(ledPin3, HIGH); }

Lic. en Sistemas Elctricos y Automatizacin Tcnicas de Control Digital II

3. Compile el programa y crguelo a la tarjeta arduino. 4. Describa lo que sucede: ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________

5. Cambie la salida del led; cambie la entrada analgica (recuerdo lo explicado sobre las entradas y salidas de la tarjeta Arduino UNO). 6. Arme el circuito segn la configuracin que usted le dio a las entradas y salidas.

7. Describa lo que sucede: ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________

Lic. en Sistemas Elctricos y Automatizacin Tcnicas de Control Digital II

EXPERIMENTO #4 Termostato. Se trata de un dispositivo que haga funcionar un motor y un led cuando la temperatura supera cierto umbral. Para ello conectaremos una ntc a la entrada analgica 0, un led al pin 5 y un motor de corriente continua al pin 10. Cuando la temperatura llegue a cierto umbral de voltaje (entre 0 y 1024) que nosotros decidamos, se conectarn a la vez el diodo led y el motor que puede tener unas aspas de ventilador en su eje para enfriar la ntc. Adems se deber visionar el valor de voltaje en la entrada analgica (valor entre 0 y 1024) en una consola en el PC. Materiales y Equipo Tarjeta Arduino UNO 1 Diodo LED 1 Potencimetro de 10K 1 Resistencia de 10K 1 Motor DC 1 Termostato ntc 1. Arme el circuito como se muestra en la figura.

Lic. en Sistemas Elctricos y Automatizacin Tcnicas de Control Digital II

2. Escriba el cdigo de programacin en el software arduino /* Experimento #4 Encendido y apagado de un led y un motor mediante termostato //Comentario */ int led=5; //Seleccin de PIN para el LED int ntc=0; //Seleccin de PIN para el termostato int motor=10; //Seleccin de PIN para el motor int medida=0; int nivel=700; //variable que guarda el lmite de temperatura al que se activa el ventilador void setup(){ //comienza la configuracin pinMode(led,OUTPUT); declara el LED como salida pinMode(motor,OUTPUT); //declara el motor como salida Serial.begin(9600); //Iniciamos el puerto Serie a 9600. } void monitoriza(){ //procedimiento que enva al puerto serie, para ser ledo en el monitor, Serial.print("La medida es ..."); //Imprime el texto Serial.println(medida); //Imprime el valor delay(1000); //para evitar saturar el puerto serie } void loop(){ //ejecuta consecutivamente el cdigo asignado medida=analogRead(ntc); //lee el valor de la seal analgica monitoriza(); if(medida>nivel){ //si la seal del sensor supera el nivel marcado digitalWrite(led,HIGH); //se enciende un aviso luminoso digitalWrite(motor,HIGH); //arranca el motor } else{ // si la seal est por debajo del nivel marcado digitalWrite(led,LOW); //el led se apaga digitalWrite(motor,LOW); // el motor se para } } 3. Compile el programa y crguelo a la tarjeta arduino.

Lic. en Sistemas Elctricos y Automatizacin Tcnicas de Control Digital II

4. Provoque un cambio de temperatura en el termostato. Describa lo que sucede: ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________

5. Cambie la salida del motor y del led; cambie la entrada analgica (recuerdo lo explicado sobre las entradas y salidas de la tarjeta Arduino UNO). 6. Cambie el lmite de temperatura de activacin del motor. 7. Arme el circuito segn la configuracin que usted le dio a las entradas y salidas. 8. Describa lo que sucede: ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________

Lic. en Sistemas Elctricos y Automatizacin Tcnicas de Control Digital II

EXPERIMENTO #5 Luz de led en funcin de la luz. Se trata de un dispositivo que haga lucir un led ms o menos en funcin de la luz externa. Para ello conectaremos una ldr a la entrada analgica 0 y un led al pin 9. Cuando la luz se encuentre entre 0 y 512 el led debe colocarse en el nivel de potencia mxima (255), si la luz se encuentra entre valores 512 y 1024 el debe lucir al nivel de potencia 64. Adems se deber visionar el valor de voltaje en la entrada analgica (valor entre 0 y 1024) en una consola en el PC. Materiales y Equipo Tarjeta Arduino UNO 1 Diodo LED 2 Resistencia de 220 1 Fotoresistencia ldr

1. Arme el circuito como se muestra en la figura.

Lic. en Sistemas Elctricos y Automatizacin Tcnicas de Control Digital II

2. Escriba el cdigo de programacin en el software arduino /* Experimento #5 Luz de led en funcin de la luz. //Comentario */ int led=9; //define el pin del led int ldr=0; //define el pin de la foto-resistencia int luz=0; //aqu almacenamos los datos recogidos del ldr void setup(){ //ejecuta consecutivamente el cdigo asignado pinMode(9,OUTPUT); //declara el led como salida Serial.begin(9600); //Iniciamos el puerto Serie a 9600. } void monitoriza(){ //procedimiento que enva al puerto serie, para ser ledo en el monitor Serial.print("El valor de luz es ..."); //Imprime el texto Serial.println(luz); //Imprime el valor delay(1000); //para evitar saturar el puerto serie } void loop(){ //ejecuta consecutivamente el cdigo asignado luz=analogRead(ldr); //lee el valor de la seal analgica monitoriza(); if(luz<512 && luz>=0){ //condicin que debe cumplirse analogWrite(led,255); //valor mximo de iluminacin del led } if(luz>=512 && luz<=1024) { //condicin que debe cumplirse analogWrite(led,64); //valor mnimo de iluminacin del led } }

3. Compile el programa y crguelo a la tarjeta arduino.

Lic. en Sistemas Elctricos y Automatizacin Tcnicas de Control Digital II

4. Provoque un cambio en la iluminacin de la fotoresistencia. Describa lo que sucede: ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________

5. Cambie la salida del led; cambie la entrada analgica (recuerdo lo explicado sobre las entradas y salidas de la tarjeta Arduino UNO). 6. Cambie los valores de luz. 7. Arme el circuito segn la configuracin que usted le dio a las entradas y salidas. 8. Describa lo que sucede: ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________ ___________________________________________________________________

También podría gustarte