Arduino practicas

Introducción

HARDWARE ARDUINO

 1. Introducción

Arduino es una plataforma de cómputo libre basado en una tarjeta I/O [entradas y salidas] programada en un ambiente con un lenguaje similar a C llamado Processing/Wiring.

2. Características

• Microcontrolador ATmega328
• Voltaje de entrada: 7 a 12V
• 14 pines digitales I/O (6 salidas PWM)
• 6 entradas analógicas
• 32k de memoria flash
• Velocidad de reloj





3.- Entradas y Salidas digitales

Este arduino dispone de 14 pines donde poder conectar tanto periféricos de entrada como de salida dependiendo como programemos esos pines.

Hay 6 pines (3,5,6,9,10 y 11 PWM) que pueden utilizarse de salidas analógicas.

4.- Entradas Analógicas

En esta parte disponemos de los pines donde poner conectar las entradas analógicas.


5.- Tensión entrada y salida

La placa arduino se puede alimentar desde dos sitios.

• Conector Jack de 7-12V DC
• Pin Vin 5V DC

Tambien dispone de dos salidas

• Pin 3.3V DC
• Pin 5V DC



6.- Comunicación serie

Dispone de dos conexiones para la comunicación serie

• Conector Jack USB
• Pines 0 y 1 (Tx y Rx)
El conector Jack USB se utiliza para la comunicación con el ordenador a través del cable.
Hay muchos periféricos que se pueden comunicar, conectando los pines 0 (Rx) y 1(TX).
Si utilizamos estos pines para la comunicación, no se pondrán usar para entradas/salidas digitales.

Ir Temario

-----------------------------------------------------------------------------------------------------------------------------------------

Introducción

SOFTWARE ARDUINO

1. Introducción

El Arduino Uno R3 requiere los drivers Arduino 1.0 para instalarse correctamente en ciertas computadoras. Puedes programarlo con versiones anteriores del IDE pero la primera vez que lo conectes tendrás que tener instalado el Arduino 1.0 en el ordenador.

Descargar Software Arduino 1.0
Descargar Software Arduino 0019

2. Instalación

• Descomprimir el fichero zip.
• Instalar los drivers USB. Situado en arduino-1.0.4\drivers
• Para Windows. Hay que hacer la instalación de los drivers seguir estos pasos:

Conectar la placa arduino a un puerto USB libre de nuestro PC.

- Se abrirá automáticamente el asistente de windows para nuevo hardware encontrado
- Seleccionar "No por el momento" y presionar "Siguiente"
- Seleccionar "Instalar desde una lista o ubicación específica (avanzado)" y presionar "Siguiente"
- Seleccionar "Buscar el controlador más adecuado en estas ubicaciones" presiona "Examinar" y seleccionar la carpeta donde hayas descomprimido el driver y presiona "Siguiente".

3. Preparación software
Después de ejecutar Arduino, tenemos que seleccionar la tarjeta con la que vamos a trabajar.



Una vez seleccionada la tarjeta, tenemos que seleccionar el puerto por donde vamos a comunicar.



4.- Estructura del programa (Sketch)

Explicaremos el ejemplo para entender la estructuración.

Comentarios

Lo primero que tenemos en el programa son comentarios, se pueden definir dos tipos de comentarios.

• Todo lo que escribamos entre /* y */ el programa lo entenderá como comentario y no lo ejecutara ni ocupara código de compilación.
• Para comentarios cortos de una sola línea también se puede utilizar las dos //

Variables

En este lugar declararemos los datos, en este ejemplo hemos definido el tipo (int), luego un nombre y un valor inicial.
Funciones setup

Aquí hacemos las llamada a la funciones

Por ejemplo: aquí hacemos la llamada a una función interna

pinMode es una Función con dos parámetros (led y OUTPUT)

Funciones loop
Esta parte se ejecutara el programa de forma continua.
En este ejemplo, utilizamos la función “digitalWrite” para sacar 5v por el pin13.


Ir Temario



-----------------------------------------------------------------------------------------------------------------------------------------

Practica 1

PARPADEO DE UN LED

1. Introducción

En esta práctica se trata de encender un led y volverlo a apagar con un intervalo de 1000ms (1 Segundo).
Se conecta el led en el Pin 13, no es necesario poner ninguna resistencia ya que este pin dispone de una resistencia interna..

2. Material necesario

• Placa Arduino Uno o similar
• Un Led

3. Montaje

El montaje de esta práctica es muy sencillo, el único detalle que hay que fijar en la polaridad del led.
En caso de colocar el led en otro pin, hay que poner en serie una resistencia de 220Ω.



4.- Funciones utilizadas

• Entradas/Salidas digitales

pinMode(pin,E/S)
Configura el pin para que actué como entrada (INPUT) o como salida (OUTPUT)

digitalWrite( pin,valor)
Asigna el valor HIGH ó 1 (5v) o lo contrario LOW ó 0 (0v) al pin seleccionado.

delay(tiempo)
Retraso el tiempo especificado en milesegundos.

5.- Programa (Sketch)

/*---------------------------------------------------------------------------
Practicas Arduino
3.-Practicas 1 Parpadeo de un Led
Visita nuestro blog http://cursosplcs.blogspot.com.es/
----------------------------------------------------------------------------*/
// Seleciona el Pin
int led = 13;
// Rutina de instalación
void setup() {
// iniciar el pin como salida digital
pinMode(led, OUTPUT);
}
// Rutina ciclica
void loop() {
digitalWrite(led, HIGH); // Encender LED (HIGH nivel alto de tensión)
delay(1000); // Retraso
digitalWrite(led, LOW); // Apagado LED (HIGH nivel bajo de tensión)
delay(1000); // Retraso
}


Ir Temario

-----------------------------------------------------------------------------------------------------------------------------------------

Practica 2

ENCENDIDO LED CON UN PULSADOR

1. Introducción

En esta práctica se trata de encender un led con un pulsador, mientras se mantiene el pulsador pulsado se queda encendido en cuanto se suelta se apaga el led.
Se conecta el led en el Pin 13, no es necesario poner ninguna resistencia ya que este pin dispone de una resistencia interna..

2. Material necesario

• Placa Arduino Uno o similar
• Un Led
• Un Pulsador
• Un Resistencia 10k
3. Montaje

El montaje del led en el pin13 sin resistencia, el pulsador conectado en el pin 2 con una resistencia de 10K, para que al soltar el pulsador leemos un 0.



4.- Funciones utilizadas


• Entradas/Salidas digitales

pinMode(pin,E/S)
Configura el pin para que actué como entrada (INPUT) o como salida (OUTPUT)

digitalWrite( pin,valor)
Asigna el valor HIGH ó 1 (5v) o lo contrario LOW ó 0 (0v) al pin seleccionado.

digitalRead( pin)
Lee el valor del pin dando como resultado 0 ó 1

5.- Programa (Sketch)

/*---------------------------------------------------------------------------
Practicas Arduino
4.-Practicas 2 Endender un led con un pulsador
Visita nuestro blog http://cursosplcs.blogspot.com.es/
----------------------------------------------------------------------------*/
// Seleciona el Pin
int led = 13;
int Pulsador = 2;
int Estado_Pulsador;

// Rutina de instalación
void setup() {
// iniciar el pin como salida digital
pinMode(led, OUTPUT);
pinMode(Pulsador, INPUT);
}
// Rutina ciclica
void loop() {
Estado_Pulsador = digitalRead(Pulsador);
digitalWrite(led, Estado_Pulsador); // Encender LED (HIGH nivel alto de tensión)
}

Ir Temario

-----------------------------------------------------------------------------------------------------------------------------------------

Practica 3

SET/RESET CON DOS PULSADORES

1. Introducción
Esta práctica trata de encender un led con dos pulsadores, uno de los pulsadores realizará el SET, esto significa que memorizara la salida del pin 13, y mientras no se pulse el segundo pulsador no se pondrá a cero la memoria (RESET).

Este programa se utilizara mucho para el marcha/paro de motores, secuencias, etc.

2. Material necesario

• Placa Arduino Uno o similar
• Un Led
• Dos Pulsador
• Una resistencia de 10k

3. Montaje

El montaje del led en el pin13 sin resistencia, los pulsadores conectados en los pin 2 y 3 con una resistencia de 10K.


4.- Funciones utilizadas

• Entradas/Salidas digitales

pinMode(pin,E/S)
Configura el pin para que actué como entrada (INPUT) o como salida (OUTPUT)

digitalWrite( pin,valor)
Asigna el valor HIGH ó 1 (5v) o lo contrario LOW ó 0 (0v) al pin seleccionado.

digitalRead( pin)
Lee el valor del pin dando como resultado 0 ó 1

• Comparaciones

x == y ( x es igual a y )
x != y ( x no es igual a y )
x < y ( x es menor que y )
x > y ( x es mayor que y )
x <= y ( x es menor o igual que y )
x >= y ( x es mayor o igual que y )


• Estructura if

IF significa SI (condicional) en español. Se evalúa una condición, si es verdadera ejecuta un código, si es falsa, ejecuta otro código

5.- Programa (Sketch)


/*---------------------------------------------------------------------------
Practicas Arduino
5.-Practicas 3 SET/RESET con dos pulsadores
Visita nuestro blog http://cursosplcs.blogspot.com.es/
----------------------------------------------------------------------------*/
// Seleciona el Pin
int led = 13;
int Pulsador_Set = 2;
int Pulsador_Reset = 3;
int Estado_Pulsador_S;
int Estado_Pulsador_R;

// Rutina de instalación
void setup() {
// iniciar el pin como salida digital
pinMode(led, OUTPUT);
pinMode(Pulsador_Set, INPUT);
pinMode(Pulsador_Reset, INPUT);

}

// Rutina ciclica
void loop() {
Estado_Pulsador_S = digitalRead(Pulsador_Set);
Estado_Pulsador_R = digitalRead(Pulsador_Reset);


if (Estado_Pulsador_S == 1)
{
digitalWrite(led, 1); // Encender LED
}

if (Estado_Pulsador_R == 1)
{
digitalWrite(led, 0); // Pagado LED
}

}

Ir Temario



-----------------------------------------------------------------------------------------------------------------------------------------

Tren


TREN CONTROLADO POR ORDENADOR (ARDUINO)

1. Introdución
Los componentes utilizados en este tutorial son:
Arduino Ono Rev.3
Control de motores cc L298N
Bluetooth JY-MCU
Pila 9v y conector
4 pilas de 1,5v y base portapilas
Tren con motor


2. Montaje eléctrico




3.- Montaje artesano
Con una caja, se decora  y se monta encima de un vagón.
Se sueldan unos cables al motor sacando un conector al exterior.




4.- Software
Para el control debemos descargarnos varios software.
Primero descargar todo referido a Arduino.
Ver tutorial 2.- Introducción al Software

Después descargaremos el software que nos permitirá preparar la pantalla de control http://www.acimut.com/monitoriza/monitorizaforarduino.html
En esta página descargaremos SketchBook del protocolo ModBus RTU, este programa se va a encargar de comunicar nuestro arduino con el software Acimut Monitoriza.
Y también descargamos Acimut Monitoriza para Arduino.

También descargaremos un programa que nos permita el control del Bluetooth, nosotros hemos utilizado BlueSoleil.

5.- Instalación
El software arduino solo hay que descomprimir la carpeta descargada.

Para el SketchBook, necesitaremos crear una carpeta con el mismo nombre del archivo y situar el archivo dentro para poderlo abrir desde el software arduino.

Para Acimut Monitoriza y BlueSoleil ejecutar el setup y seguir las indicaciones de la instalación.

6.- Modificaciones de SketchBook y carga.
Buscamos la carpeta que hemos creado con el Sketch descargado.
Abrimos el archivo ModBusMonitoriza.pde


Modificamos el sketch
Copias este trozo de programa, borrando el que está en el sketch que hemos descargado



/* HERE BEGINS THE EXAMPLE CODE */

/* Modbus RTU common parameters, the Master MUST use the same parameters */
enum {
COMM_BPS = 9600, /* baud rate */
MB_SLAVE = 1, /* modbus slave id */
PARITY = 'n' /* even parity */
};

/* slave registers */

enum {
MB_CTRL, /* Led control on, off or blink */
MB_TIME, /* blink time in milliseconds */
MB_CNT, /* counter */
MB_REGS /* total number of registers on slave */
};

int Mar_Adel;
int Mar_Atras;
int regs[MB_REGS];
int Vel;
int Vel_PWM = 3;
int Adel = 2;
int Atras = 4;
unsigned long wdog = 0; /* watchdog */
unsigned long tprev = 0; /* previous time*/
int i = 0;

void setup()
{
/* configure modbus communication
* 19200 bps, 8N1, two-device network */
configure_mb_slave(COMM_BPS, PARITY, 0);

pinMode(Vel_PWM, OUTPUT);
pinMode(Adel, OUTPUT);
pinMode(Atras, OUTPUT);

}


void loop()
{
/* check for master requests*/
if(update_mb_slave(MB_SLAVE, regs, MB_REGS))
wdog = millis();

i = i +1;
if (i > 10000) i=0;
regs[2] = i;

/* the values in regs are set by the modbus master */

if (millis() - tprev > regs[MB_TIME]) {
tprev = millis();
}

/*------------ Nuevo programa --------------------------------------------*/

if (regs[0] == 2)
{Mar_Adel =1;}

if (regs[0] == 4)
{Mar_Atras =1;}

if (regs[0] <= 0) {Mar_Adel =0; Mar_Atras =0;}
digitalWrite(Adel,Mar_Adel);
digitalWrite(Atras,Mar_Atras);
Vel = regs[1]*20;
analogWrite(Vel_PWM,Vel); }

 /**************************************************************************** * BEGIN MODBUS RTU SLAVE FUNCTIONS ****************************************************************************/


7.- Preparación pantalla.






4 comentarios:

  1. tienes como programar el monitoriza para arduino

    ResponderEliminar
  2. No, he ido practicando con el ejemplo de la bombilla

    ResponderEliminar
  3. Puedes colgar el programa de ACIMTU para utilizarlo como ejemplo en un proyecto que estoy iniciando para controlar una maqueta de tren, Gracias

    ResponderEliminar
  4. Saludos, adjunto enlace de un proyecto realizado con el SCADA. http://repositorio.utp.edu.co/dspace/bitstream/11059/5466/1/6298S939.pdf

    ResponderEliminar