Nos introducimos en el conocimiento y la programacion de Arduino. Se describe las partes Hardware y Software de la placa arduino Duemilanove Atmega328P-PU. Así como sus caracteristicas, polarización, entradas y salidas, reset, alimentacion, etc. Se presentan 5 proyectos diseñado con el microcontrolador Arduino duemilanove. Version 2 actualizada.
Taller de introducción a Arduino FesTICval 2012assdl
Taller de introducción a Arduino impartido por el Dr. Ángel Serrano en el FestivalTICval de la Escuela Técnica Superior de Ingeniería Informática de la Universidad Rey Juan Carlos en Móstoles (Madrid, España), celebrado el 28 de junio de 2012.
Presentar el concepto de computación física a través de algunos ejemplos, la plataforma Arduino con sus características, requerimientos y posibles usos en la construcción de prototipos de hardware.
Nos introducimos en el conocimiento y la programacion de Arduino. Se describe las partes Hardware y Software de la placa arduino Duemilanove Atmega328P-PU. Así como sus caracteristicas, polarización, entradas y salidas, reset, alimentacion, etc. Se presentan 5 proyectos diseñado con el microcontrolador Arduino duemilanove. Version 2 actualizada.
Taller de introducción a Arduino FesTICval 2012assdl
Taller de introducción a Arduino impartido por el Dr. Ángel Serrano en el FestivalTICval de la Escuela Técnica Superior de Ingeniería Informática de la Universidad Rey Juan Carlos en Móstoles (Madrid, España), celebrado el 28 de junio de 2012.
Presentar el concepto de computación física a través de algunos ejemplos, la plataforma Arduino con sus características, requerimientos y posibles usos en la construcción de prototipos de hardware.
Puedes crear tu propia interfaz para comunicar por puerto serie/USB desde Visual Basic 6 a Arduino. Ejemplo de encender y apagar un Led mientras recibe mensajes de texto desde Arduino.
Alarma arduino wavecom programa y esquema numeros borrados 48 pagjoaquinin1
Alarma por Joaquín Berrocal Piris creada en ARDUINO mega 2560 y el modem WAVECOM Q2303A ó (M1306B) . Cuando se activa se envía llamada y mensaje SMS. creada en agosto del 2014- duración del video 2'55''
Esquema electrónico y programa realizado.
Si te interesa conocer mis otros proyectos y quieres descargar información sobre los mismos consulta:
.
+ https://www.youtube.com/user/joaquininbp
+ https://issuu.com/joaquinin
+ https://issuu.com/joaquinin/stacks
nota importante: desde la utilidad indicada más abajo; poniendo la dirección del archivo en issuu.net he indicando cuántas páginas quieres, puedes bajarte cualquier archivo sin tener que registrarte:
Paginas para descargar:
http://utilidades.gatovolador.net/issuu/
Documentos: aquí está el brazo robotico
+ http://www.slideshare.net/joaquinin1/documents
Presentaciones de mecánica-electr vehículos
+ http://www.slideshare.net/joaquinin1/presentations
Tutorial Arduino MFC y Puerto serie. Interfaz creado con Visual Studio Community 2017 que puedes controlar el puerto serie a Arduino encendiendo y apagando un Led, manejar el LC.
MFC en C++ hoy en día se usa muy poco, aún lo he visto en algunas universidades en España que lo emplea como enseñanza.
Se merece un toque actual con Arduino, a pesar quela tecnología MFC es complicada. Este tutorial te guía paso a paso hasta lograr el objetivo, ser capaz de cambiar el estado de un Led.
Más información: http://electronica-pic.blogspot.com.es/2017/07/arduino-mfc-y-puerto-serie.html
Puedes crear tu propia interfaz para comunicar por puerto serie/USB desde Visual Basic 6 a Arduino. Ejemplo de encender y apagar un Led mientras recibe mensajes de texto desde Arduino.
Alarma arduino wavecom programa y esquema numeros borrados 48 pagjoaquinin1
Alarma por Joaquín Berrocal Piris creada en ARDUINO mega 2560 y el modem WAVECOM Q2303A ó (M1306B) . Cuando se activa se envía llamada y mensaje SMS. creada en agosto del 2014- duración del video 2'55''
Esquema electrónico y programa realizado.
Si te interesa conocer mis otros proyectos y quieres descargar información sobre los mismos consulta:
.
+ https://www.youtube.com/user/joaquininbp
+ https://issuu.com/joaquinin
+ https://issuu.com/joaquinin/stacks
nota importante: desde la utilidad indicada más abajo; poniendo la dirección del archivo en issuu.net he indicando cuántas páginas quieres, puedes bajarte cualquier archivo sin tener que registrarte:
Paginas para descargar:
http://utilidades.gatovolador.net/issuu/
Documentos: aquí está el brazo robotico
+ http://www.slideshare.net/joaquinin1/documents
Presentaciones de mecánica-electr vehículos
+ http://www.slideshare.net/joaquinin1/presentations
Tutorial Arduino MFC y Puerto serie. Interfaz creado con Visual Studio Community 2017 que puedes controlar el puerto serie a Arduino encendiendo y apagando un Led, manejar el LC.
MFC en C++ hoy en día se usa muy poco, aún lo he visto en algunas universidades en España que lo emplea como enseñanza.
Se merece un toque actual con Arduino, a pesar quela tecnología MFC es complicada. Este tutorial te guía paso a paso hasta lograr el objetivo, ser capaz de cambiar el estado de un Led.
Más información: http://electronica-pic.blogspot.com.es/2017/07/arduino-mfc-y-puerto-serie.html
Manual de ARDUINO con el simulador de PC_SIMU (SCADA) con código de Arduino
Link de descarga de la librería de PC_SIMU: https://drive.google.com/open?id=1Ad6xr99wk4RLniOZwnMNjcxwquwDmQ_P
Se desarrollo un contador binario ascendente de 8 bits y otro contador similar con la única diferencia de que cuenta con un control de velocidad de conteo, se utilizo la tarjeta Arduino UNO con ATmega328P para el proyecto.
Presentación de la conferencia sobre la basílica de San Pedro en el Vaticano realizada en el Ateneo Cultural y Mercantil de Onda el jueves 2 de mayo de 2024.
LA PEDAGOGIA AUTOGESTONARIA EN EL PROCESO DE ENSEÑANZA APRENDIZAJEjecgjv
La Pedagogía Autogestionaria es un enfoque educativo que busca transformar la educación mediante la participación directa de estudiantes, profesores y padres en la gestión de todas las esferas de la vida escolar.
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...JAVIER SOLIS NOYOLA
El Mtro. JAVIER SOLIS NOYOLA crea y desarrolla el “ROMPECABEZAS DE ECUACIONES DE 1ER. GRADO OLIMPIADA DE PARÍS 2024”. Esta actividad de aprendizaje propone retos de cálculo algebraico mediante ecuaciones de 1er. grado, y viso-espacialidad, lo cual dará la oportunidad de formar un rompecabezas. La intención didáctica de esta actividad de aprendizaje es, promover los pensamientos lógicos (convergente) y creativo (divergente o lateral), mediante modelos mentales de: atención, memoria, imaginación, percepción (Geométrica y conceptual), perspicacia, inferencia, viso-espacialidad. Esta actividad de aprendizaje es de enfoques lúdico y transversal, ya que integra diversas áreas del conocimiento, entre ellas: matemático, artístico, lenguaje, historia, y las neurociencias.
La Unidad Eudista de Espiritualidad se complace en poner a su disposición el siguiente Triduo Eudista, que tiene como propósito ofrecer tres breves meditaciones sobre Jesucristo Sumo y Eterno Sacerdote, el Sagrado Corazón de Jesús y el Inmaculado Corazón de María. En cada día encuentran una oración inicial, una meditación y una oración final.
Triduo Eudista: Jesucristo, Sumo y Eterno Sacerdote; El Corazón de Jesús y el...
Trabajo02
1. CONTROL DE BARRERA DE PARKING
PREMIOS CIENTÍFICOS-TECNOLÓGIOCOS
“DON BOSCO”
PRIMERA EDICIÓN, CURSO 2011-2012
IES “PINTOR RAFAEL REQUENA”
Caudete-Alabacete
Taller de Robótica
Tutor: Manuel HIDALGO DÍAZ
2. PROGRAMACIÓN DE OBJETOS TECNOLÓGICOS
IES “PINTOR RAFAEL REQUENA”. Taller de Robótica.
2
Contenido
1.- INTRODUCCIÓN ........................................................................................................ 3
2.- PROYECTO TECNOLÓGICO .................................................................................... 5
3.- PLACA ARDUINO....................................................................................................... 6
3.1.- Conexión Arduino-PC con cable USB ................................................................ 6
3.2.- IDE (Entorno de Desarrollo) de Arduino ............................................................. 7
3.4.- Selección de tipo de placa Arduino...................................................................... 8
3.5.- Selección del puerto serie.................................................................................... 8
3.6.- Sube el sketch (programa) a la placa .................................................................. 8
3.7.- ESTRUCTURA DE UN PROGRAMA .................................................................. 8
4.- DIODO LED............................................................................................................... 11
4.1.- Semáforo ............................................................................................................ 13
5.- PULSADOR............................................................................................................... 14
6.- SERVOMOTOR ........................................................................................................ 15
7.- SENSOR DE DISTANCIA POR INFRARROJOS SHARP GP2Dxx ........................ 16
7.1.- Funcionamiento.................................................................................................. 17
7.2.- Programa del lectura del sensor IR.................................................................... 17
8.- Programa de control barrera de parking................................................................... 19
9.- Comunicaciones por bluetooth ................................................................................. 20
10.- BIBLIOGRAFÍA ....................................................................................................... 22
3. PROGRAMACIÓN DE OBJETOS TECNOLÓGICOS
IES “PINTOR RAFAEL REQUENA”. Taller de Robótica.
3
1.- INTRODUCCIÓN
Este proyecto se ha desarrollado durante el 2º trimestre del curso 2011-2012,
siendo una continuación de la actividad extraescolar de dinamización de los recreos
del Taller de Robótica del 1º trimestre. Los participantes son sólo alumnos de 1º ESO.
1. Joel Serrano López
2. Ricardo Soler Bañón
3. Alejandro Vicente Cózar
4. Juan Conejero Sivó
5. Alejandro Cantó Rubio
Las tareas a realizar son:
Fomentar el trabajo en equipo y habilidades sociales de grupo.
Despertar el interés por el funcionamiento de los objetos tecnológicos.
Conocer la tarjeta electrónica programable (Arduino).
Programar la tarjeta para realizar tareas de control como son encendido
y apagado de luces de tipo LED, control de funcionamiento de
servomotor, lectura de magnitudes de sensores.
Realizaciar de pequeños proyectos.
El resultado ha sido una placa de dispositivos electrónicos que se conectan
sobre la placa Arduino y se pueden realizar actividades básicas de análisis de
funcionamiento y programación de los dispositivos.
4. PROGRAMACIÓN DE OBJETOS TECNOLÓGICOS
IES “PINTOR RAFAEL REQUENA”. Taller de Robótica.
4
Esta placa ha sido la base de la maqueta de proyecto tecnológico de
“Control de barrera de parking”.
Para realizar las tareas el alumnado ha tenido la documentación que a
continuación se expone.
5. PROGRAMACIÓN DE OBJETOS TECNOLÓGICOS
IES “PINTOR RAFAEL REQUENA”. Taller de Robótica.
5
2.- PROYECTO TECNOLÓGICO
El proyecto tecnológico, “Control de Barrera de Parking”, tiene el siguiente
diagrama de bloques:
Este sistema de control consta de los siguientes elementos:
Tarjeta de control: placa Arduino que es un sistema electrónico programable,
va a tener el programa que controla la subida y bajada de la barrera del
parking. También va a recibir información del sensor de infrarrojos que detecta
la presencia de un obstáculo en la barrera haciendo que la tarjeta de control no
baje la barrera hasta que no haya obstáculo.
Servomotor: elemento actuador que va a subir y bajar la barrera del parking.
Sensor: dispositivo electrónico que detecta, mediante luz infrarroja, la presencia
de un obstáculo.
Sistema de alimentación: batería que proporciona la tensión necesaria a los
dispositivos electrónicos de la maqueta.
6. PROGRAMACIÓN DE OBJETOS TECNOLÓGICOS
IES “PINTOR RAFAEL REQUENA”. Taller de Robótica.
6
3.- PLACA ARDUINO
La placa Arduino, sistema electrónico programable, va a controlar el
funcionamiento del proyecto. Su elemento principal es un microcontrolador con
entrada/salidas digitales, entradas analógicas, salidas PWM y comunicaciones serie-
USB.
Esta tarjeta como recurso didáctico tiene como base el siguiente principio:
La “inteligencia de Arduino” se expresa mediante su lenguaje de programación
3.1.- Conexión Arduino-PC con cable USB
En el taller estamos usando una placa Arduino Duemilanove 328 y necesitamos
un cable estándar USB (conexión A a conexión B) para conectarlo al PC.
7. PROGRAMACIÓN DE OBJETOS TECNOLÓGICOS
IES “PINTOR RAFAEL REQUENA”. Taller de Robótica.
7
Conectamos la placa Arduino al ordenador usando el cable USB, el LED verde
indicador de la alimentación (nombrado como PWR en la placa) queda encendido a
partir de ese momento. Estableciendo la comunicación con el PC por un puerto
COMnum, el número del puerto COM hay que verlo en propiedades de configuración
del sistema.
Esto quiere decir que los drivers están instalados y podemos pasar a escribir y
cargar programas en la placa Arduino.
3.2.- IDE (Entorno de Desarrollo) de Arduino
Programa que nos permite escribir y cargar los programas en la placa Arduino
a través del puerto USB.
8. PROGRAMACIÓN DE OBJETOS TECNOLÓGICOS
IES “PINTOR RAFAEL REQUENA”. Taller de Robótica.
8
3.4.- Selección de tipo de placa Arduino
Necesitamos seleccionar el tipo de placa de tu Arduino en el menu Tools >
Board. Para las placas Arduino con el chip ATmega 328 (comprueba el texto escrito
en el chip de la placa), selecciona la opción Arduino Duemilanove or Nano w/
ATmega328 del menú desplegable.
3.5.- Selección del puerto serie
Seleccionamos el dispositivo serie de la placa Arduino en el menú Tools >
Serial Port (Herramientas > Puertos Serie). Lo más probable es que sea COM3 o
mayor (COM1 y COM2 se reservan, por regla general para puertos serie de hardware).
Para asegurarte de cual es, puedes desconectar la placa y volver a mirar el menú; el
puerto de la placa habrá desaparecido de la lista. Reconecta la placa y selecciona el
puerto apropiado.
3.6.- Sube el sketch (programa) a la placa
Ahora se pulsa sobre el botón "Upload" en el Entorno Arduino. Se espera unos
pocos segundos - deberías parpadear los led RX y TX de la placa. Si el volcado del
código es correcto aparece el mensaje "Done uploading" en la barra de estado.
Unos pocos segundos después de finalizar el volcado del programa empieza a
funcionar.
3.7.- ESTRUCTURA DE UN PROGRAMA
La estructura básica del lenguaje de programación de Arduino es bastante
simple y se compone de al menos dos partes. Estas dos partes necesarias encierran
bloques que contienen declaraciones, instrucciones y estructuras de control.
void setup()
{
Instrucciones y estructuras de control;
}
void loop()
{
Instrucciones y estructuras de control;
}
9. PROGRAMACIÓN DE OBJETOS TECNOLÓGICOS
IES “PINTOR RAFAEL REQUENA”. Taller de Robótica.
9
En donde setup() es la parte encargada de recoger la configuración y loop() es
la que contienen el programa que se ejecutará cíclicamente (de ahí el termino loop –
bucle-). Ambas funciones son necesarias para que el programa trabaje.
La función de configuración debe contener la declaración de las variables. Es la
primera función a ejecutar en el programa, se ejecuta sólo una vez, y se utiliza para
configurar o inicializar pinMode (modo de trabajo de las E/S), configuración de la
comunicación en serie y otras.
La función bucle (loop) siguiente contiene el código que se ejecutara
continuamente (lectura de entradas, activación de salidas, etc) Esta función es el
núcleo de todos los programas de Arduino y la que realiza la mayor parte del trabajo.
Código del programa ejemplo de parpadeo del led
/*
Blink
Turns on an LED on for one second,
then off for one second, repeatedly.
This example code is in the public domain.
*/
void setup() {
// initialize the digital pin as an output.
// Pin 13 has an LED connected on most Arduino boards:
pinMode(13, OUTPUT);
}
void loop() {
digitalWrite(13, HIGH); // set the LED on
delay(1000); // wait for a second
digitalWrite(13, LOW); // set the LED off
delay(1000); // wait for a second
}
10. PROGRAMACIÓN DE OBJETOS TECNOLÓGICOS
IES “PINTOR RAFAEL REQUENA”. Taller de Robótica.
10
En resumen el proceso de programación sigue los siguientes pasos:
11. PROGRAMACIÓN DE OBJETOS TECNOLÓGICOS
IES “PINTOR RAFAEL REQUENA”. Taller de Robótica.
11
4.- DIODO LED
Un led (de la sigla inglesa LED: Light-Emitting Diode: "diodo emisor de luz",
también "diodo luminoso") es un diodo semiconductor que emite luz. Se usan como
indicadores en muchos dispositivos, y cada vez con mucha más frecuencia, en
iluminación y señalización de semáforos.
El circuito eléctrico de funcionamiento es el siguiente:
El circuito para controlar el diodo led con la placa Arduino es:
En el pin13 está el led que incorporá la placa y en nuestro proyecto se
contectan al pin 3, 4 y 5, como salida digital.
12. PROGRAMACIÓN DE OBJETOS TECNOLÓGICOS
IES “PINTOR RAFAEL REQUENA”. Taller de Robótica.
12
El programa que hace funcionar y nos da información del estado de los 3
led por el monitor serie es el siguiente:
/*
Encendido-Apagado y estado de los leds
*/
//Declaracion de etiquetas y variables
//nombre para el pin con led, salida digital
int pinLedRojo = 5;
int pinLedAmarrillo = 4;
int pinLedVerde = 3;
//Tiempo para el retardo
int retardo = 1000; //variable entera
void setup() {
// configure los pines digitales como salida.
pinMode(pinLedRojo, OUTPUT);
pinMode(pinLedAmarrillo, OUTPUT);
pinMode(pinLedVerde, OUTPUT);
//inicializacion del puerto serie
Serial.begin(9600);
}
void loop() {
digitalWrite(pinLedRojo, 1); // enciende el led
digitalWrite(pinLedAmarrillo, 1);
digitalWrite(pinLedVerde, 1);
Serial.println("Led ENCENDIDO"); //Escribe el mensaje entrecomillado
//en el monitor serie
delay(retardo); // espera el tiempo asignado en la
// variable retardo
digitalWrite(pinLedRojo, 0); // apaga el led
digitalWrite(pinLedAmarrillo, 0);
digitalWrite(pinLedVerde, 0);
Serial.println("Led APAGADO"); //Escribe el mensaje entrecomillado
// en el monitor serie
delay(retardo); // espera el tiempo asignado en la
//variable retardo
Serial.println("Fin de programa"); //Escribe el mensaje en el
//monitor
Serial.println(); //inserta una linea en blanco
delay(retardo);
}
13. PROGRAMACIÓN DE OBJETOS TECNOLÓGICOS
IES “PINTOR RAFAEL REQUENA”. Taller de Robótica.
13
4.1.- Semáforo
Repitiendo el circuito del led en los pines 3, 4 y 5 simulamos un semáforo. El
código es el siguiente:
/*
Semaforo
*/
//Declaracion de etiquetas y variables
//nombre para el pin con led, salida digital
int pinLedRojo = 5;
int pinLedAmarrillo = 4;
int pinLedVerde = 3;
//Tiempo para el retardo
int retardo = 5000; //variable entera
void setup() {
// initialize the digital pin as an output.
pinMode(pinLedRojo, OUTPUT);
pinMode(pinLedAmarrillo, OUTPUT);
pinMode(pinLedVerde, OUTPUT);
}
void loop() {
digitalWrite(pinLedRojo, 1); // Semaforo Rojo
digitalWrite(pinLedAmarrillo, 0);
digitalWrite(pinLedVerde, 0);
delay(retardo);
digitalWrite(pinLedRojo, 0); // Semaforo Ambar
digitalWrite(pinLedAmarrillo, 1);
digitalWrite(pinLedVerde, 0);
delay(retardo);
digitalWrite(pinLedRojo, 0); // Semaforo Verde
digitalWrite(pinLedAmarrillo, 0);
digitalWrite(pinLedVerde, 1);
delay(retardo);
}
14. PROGRAMACIÓN DE OBJETOS TECNOLÓGICOS
IES “PINTOR RAFAEL REQUENA”. Taller de Robótica.
14
5.- PULSADOR
El pulsador es un dispositivo que nos sirve para controlar la puesta en
funcionamiento de acciones que queremos controlar. El circuito eléctrico que se utiliza
en el proyecto es:
Para la placa Arduino es una entrada digital que tiene un valor lógico “0” (0V),
cuando no está pulsado, y un valor lógico “1” (5V), cuando está pulsado.
Programa ejemplo:
/*
Leer un pulsador conectado a pin 2 y
enciende el led Verde
*/
//Declaracion de etiquetas y variables
int pinPulsador = 2;
int pinLedRojo = 5;
int pinLedVerde = 3;
int pulsador;
//Tiempo para el retardo
int retardo = 3000; //variable entera
void setup() {
// inicializacion.
pinMode(pinPulsador, INPUT);
pinMode(pinLedRojo, OUTPUT);
pinMode(pinLedVerde, OUTPUT);
}
void loop() {
pulsador = digitalRead(pinPulsador);
if (pulsador == 1)
{
digitalWrite (pinLedVerde, 1);
digitalWrite (pinLedRojo, 0);
delay(retardo);
}
digitalWrite (pinLedRojo, 1);
digitalWrite (pinLedVerde, 0);
}
15. PROGRAMACIÓN DE OBJETOS TECNOLÓGICOS
IES “PINTOR RAFAEL REQUENA”. Taller de Robótica.
15
6.- SERVOMOTOR
Los servos poseen un motor de CC, que gira a velocidad alta, una serie de
engranajes para producir la reducción de velocidad de giro y aumentar su fuerza en el
eje (par), un potenciómetro conectado al eje de salida (que es ni más ni menos que el
encoder) y un circuito de control de la realimentación.
Estos servos reciben señal por tres cables: alimentación para el motor y el
circuito electrónico de control (a través de dos cables, positivo y negativo/masa), y una
señal control (PWM) que determina la posición que se requiere. La alimentación de
estos servos es, normalmente, de entre 4,8 y 6 voltios.
La señal de control es de tipo PWM, modulación por anchura de pulso:
16. PROGRAMACIÓN DE OBJETOS TECNOLÓGICOS
IES “PINTOR RAFAEL REQUENA”. Taller de Robótica.
16
Para la programación de los servomotores con Arduino se emplea la librería Servo.h.
Programa de control del servo
// Control de servos
#include <Servo.h>
Servo servo;
void setup()
{
servo.attach(6);
}
void loop()
{
servo.write(10);
delay(5000);
servo.write(45);
delay(5000);
servo.write(90);
delay(5000);
}
7.- SENSOR DE DISTANCIA POR INFRARROJOS
SHARP GP2Dxx
El sensor GP2DXX de sharp es un dispositivo de reflexión por infrarrojos para
medir. El sensor de nuestro proyecto nos da una tensión proporcional a la distancia de
obstáculo donde se refleja.
17. PROGRAMACIÓN DE OBJETOS TECNOLÓGICOS
IES “PINTOR RAFAEL REQUENA”. Taller de Robótica.
17
7.1.- Funcionamiento.
El dispositivo emite luz infrarroja por medio de un led emisor de IR, esta luz
pasa a través de una lente que concentra los rayos de luz formando un único rayo lo
más concentrado posible para así mejorar la directividad del sensor, la luz va recta
hacia delante y cuando encuentra un obstáculo reflectante rebota y retorna con cierto
ángulo de inclinación dependiendo de la distancia, la luz que retorna es concentrada
por otra lente y así todos los rayos de luz inciden en un único punto del sensor de luz
infrarroja que contiene en la parte receptora del dispositivo. Este sensor es un CCD
lineal y dependiendo del ángulo de recepción de la luz incidirá en un punto u otro del
sensor pudiendo de esta manera obtener un valor lineal y proporcional al ángulo de
recepción del haz de luz.
La programación de este sensor se programa como entrada analógica.
7.2.- Programa del lectura del sensor IR.
/*
Lectura de la entrada analogica
Taller de Robotica 2011-2012
IES Pintor Rafael Requena
*/
int sensorIRdistancia = A5; // seleccion pin de entrada sensor
int ledAmarillo = 3; // seleccion pin de salida LED
int sensorValor = 0; // variable para almacenar el valor del
sensor
void setup() {
// Configuracion de los pines
pinMode(ledAmarillo, OUTPUT);
//Configuracion de las comunicaciones
Serial.begin(9600);
}
void loop() {
// lee el valor del sensor y lo guarda en la variable
sensorValor = analogRead(sensorIRdistancia);
// Escribe el valor leido en el monitor serie
Serial.print("El valor leido es: ");
Serial.println(sensorValor);
Serial.println(); //linea en blanco
delay(500);
}
18. PROGRAMACIÓN DE OBJETOS TECNOLÓGICOS
IES “PINTOR RAFAEL REQUENA”. Taller de Robótica.
18
El resultado que vemos a través de monitor serie del IDE de Arduino de la lectura de
sensor IR es:
Como es una entrada analógica la tensión que proporcional el sensor IR desde
un valor de 3,1V para una distancia de 3cm a 0,4V para una distancia de 80cm, se
convierte en números que van de 100 a 600 para nuestro proyecto (el rango sería de 0
a 1023 si la tensión fuera de 0V a 5V). En concreto vemos visto que si el obstáculo
está dentro de la zona de la barrera el valor es mayor de 350. Este valor lo empleamos
en el programa para marcar el límite de seguridad con el sensor IR.
19. PROGRAMACIÓN DE OBJETOS TECNOLÓGICOS
IES “PINTOR RAFAEL REQUENA”. Taller de Robótica.
19
8.- Programa de control barrera de parking
//Barrera controlada por pulsador
#include <Servo.h> //librerias
Servo servoBarrera; //Declaracion del objeto servomotor
int pinLedRojo = 5; //Declaraciones de pines
int pinLedAmarillo = 4;
int pinLedVerde = 3;
int pulsador = 2;
int sensorIR = A5;
int pulsaValor; //Declaracion variables
int sensorValor;
void setup()
{
pinMode(pinLedRojo, OUTPUT); //configuracion de pines
pinMode(pinLedAmarillo, OUTPUT);
pinMode(pinLedVerde, OUTPUT);
servoBarrera.attach(6);
servoBarrera.write(5); //posicion inical de la barrera
digitalWrite(pinLedRojo, 0); // Semaforo Verde
digitalWrite(pinLedAmarillo, 0);
digitalWrite(pinLedVerde, 1);
}
void loop() //programa principal
{
pulsaValor = digitalRead(pulsador); //leemos el valor del pulsador
if (pulsaValor == 1) //preguntamos el valor del pulsador y actuamos
{
digitalWrite(pinLedVerde, 0);
digitalWrite(pinLedAmarillo, 1);
delay(3000);
digitalWrite(pinLedAmarillo, 0);
digitalWrite(pinLedRojo, 1);
delay(500);
servoBarrera.write(90); //barrera abierta
delay(10000); //semaforo en rojo 10seg
sensorValor = analogRead(sensorIR); //lee valor sensor
while (sensorValor > 350) //repite la lectura
{ //porque hay un obstaculo
sensorValor = analogRead(sensorIR);
delay(10);
}
delay(2000);
servoBarrera.write(5); //barrera cerrada
delay(1000);
}
digitalWrite(pinLedRojo, 0); //semaforo en verde
digitalWrite(pinLedAmarillo, 0);
digitalWrite(pinLedVerde, 1);
delay(10);
}
20. PROGRAMACIÓN DE OBJETOS TECNOLÓGICOS
IES “PINTOR RAFAEL REQUENA”. Taller de Robótica.
20
9.- Comunicaciones por bluetooth
El control de la barrera también podemos realizarlos de forma remota con un
módulo de comunicaciones por bluetooth.
Se realiza de la siguiente manera:
1º Conectamos el módulo bluetooth a los pines 0(Rx)Tx y 1(Tx)Rx y la
alimentación.
2º Se carga una aplicación al teléfono móvil, Blue Control de Android.
Esta aplicación cuando está conectada al módulo bluetooth de Arduino
establece una comunicación enviando una letra. En concreto el botón central (verde)
manda la letra ‘C’ y ésta la leemos en el programa para controlar la barrera.
Ahora nuestro proyecto tiene el siguiente diagrama de bloques:
Código de programa que controla la barrera por bluetooth
21. PROGRAMACIÓN DE OBJETOS TECNOLÓGICOS
IES “PINTOR RAFAEL REQUENA”. Taller de Robótica.
21
//Barrera controlada por bluetooth
#include <Servo.h> //librerias
Servo servoBarrera; //Declaracion del objeto servomotor
int pinLedRojo = 5; //Declaraciones de pines
int pinLedAmarillo = 4;
int pinLedVerde = 3;
int sensorIR = A5;
int sensorValor; //Declaracion variables
int boton;
void setup() //funcion configuracion
{
pinMode(pinLedRojo, OUTPUT); //configuracion de pines
pinMode(pinLedAmarillo, OUTPUT);
pinMode(pinLedVerde, OUTPUT);
servoBarrera.attach(6);
servoBarrera.write(5); //posicion inical de la barrera
digitalWrite(pinLedRojo, 0); // Semaforo Verde
digitalWrite(pinLedAmarillo, 0);
digitalWrite(pinLedVerde, 1);
Serial.begin(9600); //Comunicaciones
}
void loop() //funcion principal
{
if (Serial.available()) //Escuchamos el puerto
{
boton =Serial.read();
}
//preguntamos el valor del pulsador y actuamos
if (boton == 'C')
{
digitalWrite(pinLedVerde, 0);
digitalWrite(pinLedAmarillo, 1);
delay(3000);
digitalWrite(pinLedAmarillo, 0);
digitalWrite(pinLedRojo, 1);
delay(500);
servoBarrera.write(90); //barrera abierta
delay(10000); //semaforo en rojo 10seg
sensorValor = analogRead(sensorIR); //lee valor sensor
while (sensorValor > 350) //repite la lectura
{ //porque hay un obstaculo
sensorValor = analogRead(sensorIR);
delay(10);
}
delay(2000);
servoBarrera.write(5); //barrera cerrada
delay(1000);
boton = ' ';
}
//semaforo en verde
digitalWrite(pinLedRojo, 0);
digitalWrite(pinLedAmarillo, 0);
digitalWrite(pinLedVerde, 1);
delay(10);
}
22. PROGRAMACIÓN DE OBJETOS TECNOLÓGICOS
IES “PINTOR RAFAEL REQUENA”. Taller de Robótica.
22
10.- BIBLIOGRAFÍA
1. http://arduino.cc/es/Guide/Windows
2. http://www.arduinoacademy.com/2011/11/03/comenzamos-mi-primer-hola-
mundo/
3. http://es.wikipedia.org/wiki/Led
4. http://robots-argentina.com.ar/MotorServo_basico.htm
5. http://www.x-robotics.com/sensores.htm