Manual de Practicas Arduino UNO - V2
Manual de Practicas Arduino UNO - V2
Manual de Practicas Arduino UNO - V2
Contenido
1.
2.
ALARMA ........................................................................................................................................................ 5
3.
4.
5.
6.
7.
8.
CONTADOR ................................................................................................................................................. 18
9.
10.
11.
12.
13.
VMETRO ............................................................................................................................................... 28
14.
15.
Nota: Los materiales recogidos en este documento, listados de cdigo y algunos textos
explicativos han sido recogidos en la pagina Web oficial de Arduino (http://www.arduino.cc/es/
y http://www.arduino.cc), correspondiendo al autor de este documento la labor de compilacin,
traduccin e incorporacin de imgenes, organigramas y esquemas de funcionamiento.
/* LUZ Intermitente
*
Ejemplo bsico con Arduino UNO. Encendido y apagado de un led
con un retardo de 1 sg. usando el PIN 10 como salida.
*/
int ledPin = 10;
// Definicin de la salida en el PIN 10
void setup() //Configuracin
{
pinMode(ledPin, OUTPUT);
// Designa la salida digital al PIN 10
}
void loop() // Bucle de funcionamiento
{
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)
}
2. Alarma
Se realizar un ejercicio bsico para simular un sistema de alarma, el cual
consiste en presionar un microswitch colocado en el PIN 5 y un Led
colocado en el PIN 10, el cual encender por lapsos de 200
milisegundos, siempre y cuando se mantenga presionado el microswitch.
/*
*Simulacin de un Sistema de alarma, activada por un microswitch en el PIN5
*/
int ledPin= 10; // Definicin de la salida en el PIN 10
int inPin= 5; Seleccin del PIN 5 conectado al microswitch
int val= 0; // Variable auxiliar
void setup() {
pinMode(ledPin, OUTPUT); // Declara el PIN 10 como salida
pinMode(inPin, INPUT); // Declara el PIN 5 como entrada
}
void loop(){
val = digitalRead(inPin); // lee valor de entrada
if (val== HIGH) { // verifica si el valor ledo es 1(botn presionado)
digitalWrite(ledPin, LOW); // parpadea el LED
delay(200);
digitalWrite(ledPin, HIGH);
delay(200);
} else
{
digitalWrite(ledPin, LOW); // pone el LED en OFF
}
}
Circuito:
Se conectan tres cables a la tarjeta Arduino. El primero va a tierra
desde el terminal 1 del potencimetro. El terminal 3 va a la salida de 5
voltios. La terminal 2 va desde la entrada analgica #2 hasta la terminal
central del potencimetro.
Girando el dial o ajustando el potencimetro, cambiamos el valor de
la resistencia variable. Esto produce oscilaciones dentro del rango de 5 y
0 voltios, que son capturados por la entrada analgica.
10
PROGRAMACIN
/*
*
*
*
*
Potencimetro
Enciende y apaga un LED conectado al pin digital #10;
La cantidad de tiempo que el LED parpadear depende del
valor obtenido mediante analogRead(). En este caso al pin 2 *
*/
int potPin = 2; // seleccionar el pin de entrada analgico para el potencimetro
int ledPin = 10; // seleccionar el pin de salida digital para el LED
int val = 0; // variable para almacenar el valor capturado desde el sensor
void setup() {
pinMode(ledPin, OUTPUT); // declara el ledPin en modo salida
}
void loop() {
val = analogRead(potPin);
11
5. Estrella Fugaz
Este ejercicio muestra cmo realizar un rayo de luz, o ms
poticamente, una estrella fugaz, movindose a travs de una lnea de
LEDS. Podremos configurar tanto la velocidad de la estrella, as como la
longitud de la cola. Al final, parecer como si un rayo slido cruzase la
lnea de LEDS.
Hay que conectar 11 LEDS a los pines digitales de la placa a travs
de una resistencias de 220 tal y como se muestra en la Figura 5.
12
/* Estrella fugaz
*-------------* Muestra mediante un loop una estrella fugaz que es dibujada en una lnea de LED-s
directamente conectados a la placa Arduino. Puedes controlar la velocidad a la que
la estrella se mueve gracias a una variable llamada "waitNextLed". Tambin puedes
controlar la longitud de la cola de la estrella a travs de la variable "tail length"
*/
// Declaracin de los PIN-es mediante un array
int pinArray [] = { 2,3,4,5,6,7,8,9,10,11,12 };
int controlLed = 13;// LED de control
int waitNextLed = 100;// Tiempo antes de encender el siguiente LED
int tailLength = 4; // Nmero de LED-s conectados (que es tambin el tamao del array)
int lineSize = 11;
13
14
6. Puerto Serial
En esta prctica se obtendrn valores desde el puerto serial, que en
posteriores prcticas se utilizaran para distintas aplicaciones. Al
utilizar el puerto serial, podemos visualizar los valores enviados a
travs del Serial Monitor.
Cabe mencionar que la arduino lee valores en cdigo ASCII, los
cuales podemos identificar directamente en el Serial Monitor o
tambin podemos apoyarnos en una lista donde aparecen las
equivalencias del cdigo ASCII.
15
PROGRAMACION
int led = 10; // declaramos el PIN 10
void setup()
{
// iniciamos serial port en 9600 bps:
Serial.begin(9600);
pinMode(led,OUTPUT);// declaramos el PIN10 como salida
}
void loop()
{
if (Serial.available() >0){
int inByte = Serial.read();
Serial.println(inByte); // imprime el valor leido del serial port
if (inByte == 49){
digitalWrite(led,HIGH);
}
if(inByte == 50){
digitalWrite(led,LOW);
}
}
}
17
/* Programa Contador
* Detecta si el botn conectado a la entrada 5 ha sido presionado y
enciende el LED
* Enva al PC el valor de la variable de cuenta ""Contador" va
puerto serie.
*/
int LED = 10; int Boton = 5; int valor = 0;
int contador = 0;
int estadoanteriorboton = 0;
void setup()
{
Serial. begin (9600);
// Configura velocidad de transmisin a 9600
pinMode(LED, OUTPUT); // inicializa como salida digital el pin 10
pinMode(Boton, INPUT); // inicializa como entrada digital el 5
}
void loop()
{
valor = digitalRead(Boton); // lee el valor de la entrada digital pin 7
digitalWrite(LED, valor);
if(valor != estadoanteriorboton)
{
if (valor == 1)
{
contador++; printInteger(contador);
serialWrite(10);
}
}
estadoanteriorboton = valor;
}
19
20
21
23
24
25
PROGRAMACION
int ledPin=10;// Declaramos la salida
int pot= A2; // entrada del potenciometro
void setup()
{
pinMode(ledPin,OUTPUT);
}
void loop(){
int control = analogRead(pot); // Leemos la seal del pot
analogWrite(ledPin,control);// Enviamos la seal al led
}
27
13.
Vmetro
Figura 13 Vmetro
28
29
digitalWrite(ledpin5,LOW);
digitalWrite(ledpin6,LOW);
}
if(val>=435)
{
digitalWrite(ledpin1,HIGH);
digitalWrite(ledpin2,HIGH);
digitalWrite(ledpin3,LOW);
digitalWrite(ledpin4,LOW);
digitalWrite(ledpin5,LOW);
digitalWrite(ledpin6,LOW);
}
if(val>=580)
{
digitalWrite(ledpin1,HIGH);
digitalWrite(ledpin2,HIGH);
digitalWrite(ledpin3,HIGH);
digitalWrite(ledpin4,LOW);
digitalWrite(ledpin5,LOW);
digitalWrite(ledpin6,LOW);
}
if(val>=725)
{
digitalWrite(ledpin1,HIGH);
digitalWrite(ledpin2,HIGH);
digitalWrite(ledpin3,HIGH);
digitalWrite(ledpin4,HIGH);
digitalWrite(ledpin5,LOW);
digitalWrite(ledpin6,LOW);
}
if(val>=870)
{
digitalWrite(ledpin1,HIGH);
digitalWrite(ledpin2,HIGH);
digitalWrite(ledpin3,HIGH);
digitalWrite(ledpin4,HIGH);
30
digitalWrite(ledpin5,HIGH);
digitalWrite(ledpin6,LOW);
}
if(val>=1020)
{
digitalWrite(ledpin1,HIGH);
digitalWrite(ledpin2,HIGH);
digitalWrite(ledpin3,HIGH);
digitalWrite(ledpin4,HIGH);
digitalWrite(ledpin5,HIGH);
digitalWrite(ledpin6,HIGH);
}
}
31
32
Figura 14 L293
Elaboro: | MIE Fernando Malagn Gonzlez
ING. Juan Carlos Nuez Dorantes
33
34
35
36
PROGRAMACION
/*
Enciende y apaga un dispositivo de AC, cada 2 segundos, mediante un rel conectado al PIN
8 de Arduino
*/
int relayPin = 8;
// PIN al que va conectado el rel
void setup()
{
pinMode(relayPin, OUTPUT);
}
void loop() {
digitalWrite(relayPin, HIGH); // ENCENDIDO
delay(2000);
digitalWrite(relayPin, LOW);
// APAGADO
delay(2000);
}
37