Está en la página 1de 72

Taller básico de programación

de dispositivos Arduino
!
Gabriel Astudillo Muñoz

Escuela de Ingeniería Civil en Informática  


Universidad de Valparaíso, Chile  

http://informatica.uv.cl
Descripción
del kit entregado

Taller básico de programación de dispositivos Arduino – Ingeniería Civil Informática                                                                  2                        informatica.uv.cl


Inventario
Diodo  LED  
Cables  de  
Rojo  (x1)
conexión  (x10)
Resistencia   Resistencia  
330[Ω]  (x1) 10[KΩ]  (x1)

Potenciómetro   Fotoresistencia  
(x1) (x1)

Botón  
(x1)

Taller básico de programación de dispositivos Arduino – Ingeniería Civil Informática                                                                  3                        informatica.uv.cl


Inventario

Placa  Sparkfun  
(x1) Protoboard  
(x1)

Cable  USB  A-­‐miniB

Taller básico de programación de dispositivos Arduino – Ingeniería Civil Informática                                                                  4                        informatica.uv.cl


Terminología

Taller básico de programación de dispositivos Arduino – Ingeniería Civil Informática                                                                  5                        informatica.uv.cl


Terminología específica
Digital Ejemplo:  
CanWdades   valor  de  un  bit.  
discretas conjunto  de  números  enteros  entre  0  y  1023.  
conjunto  de  números  enteros  entre  0  y  255.  
Rango  de  temperatura  entre  10o  y  20o,  medido  
en  medios  grados.  (10o,  10.5o,  …)  

Análogo
Ejemplo:  
temperatura  ambiente  medida  con  mercurio.   CanWdades  
conjunto  de  número  reales  ente  0  y  1023.   Reales  (ℝ)
conjunto  de  números  reales  entre  0  y  255.

Taller básico de programación de dispositivos Arduino – Ingeniería Civil Informática                                                                  6                        informatica.uv.cl


Terminología específica
Cuan3zar
Los  computadores  no  pueden  interpretar  
directamente  las  señales  analógicas

Sensor de Sistema No  se  puede  


temperatura computacional realizar  directamente

Taller básico de programación de dispositivos Arduino – Ingeniería Civil Informática                                                                  7                        informatica.uv.cl


Terminología específica
Cuan3zar
Los  computadores  no  pueden  interpretar  
directamente  las  señales  analógicas

Sensor de Sistema
temperatura A/D computacional

Debe  exisWr  un  bloque  de  conversión.  


Resolución  de  
Este  bloque  debe  cuanWzar  la  medición  
la  conversión
análoga  y  asignarle  un  valor  binario

Taller básico de programación de dispositivos Arduino – Ingeniería Civil Informática                                                                  8                        informatica.uv.cl


Terminología específica
Cuan3zar
Ejemplo:  la  resolución  es  de  10  bits.  Esto  significa  que  el  
bloque  de  conversión  puede  asignar  1024  (210)  valores  
disWntos  a  la  variable  análoga.

Valor  Análogo Valor  entero Sensor de Sistema


0 0 temperatura A/D computacional
0,005 1
0,010 2 Voltaje entero
[ 0,5[V] ] {0,1,2,…, 1023}
0,015 3
.  .  . .  .  .
4,990 1021
4,995 1022
5 1023

Taller básico de programación de dispositivos Arduino – Ingeniería Civil Informática                                                                  9                        informatica.uv.cl


Microcontrolador (μC)

Taller básico de programación de dispositivos Arduino – Ingeniería Civil Informática                                                              10


                           informatica.uv.cl
Arduino

Taller básico de programación de dispositivos Arduino – Ingeniería Civil Informática                                                              11


                           informatica.uv.cl
Arquitectura de Arduino

Taller básico de programación de dispositivos Arduino – Ingeniería Civil Informática                                                              12


                           informatica.uv.cl
Descripción General

Es  hardware  open  source

Especificaciones  y  diagramas  
son  de  acceso  público

El  socware  con  que  se  programa  


es  open  source.

Existen  muchas  implementaciones  de  la  placa  original.

Taller básico de programación de dispositivos Arduino – Ingeniería Civil Informática                                                              13


                           informatica.uv.cl
Descripción del Hardware

Taller básico de programación de dispositivos Arduino – Ingeniería Civil Informática                                                              14


                           informatica.uv.cl
Descripción del Hardware

Taller básico de programación de dispositivos Arduino – Ingeniería Civil Informática                                                              15


                           informatica.uv.cl
Descripción del Hardware

Entradas/
Salidas
Digitales

Entradas/
Salidas
Análogas

Entradas
Análogas

Taller básico de programación de dispositivos Arduino – Ingeniería Civil Informática                                                              16


                           informatica.uv.cl
Descripción del Hardware
14  pines  de  I/O  Digitales
6  pines  de  salidas  análogas
Velocidad:  16[MHz]
Almacenamiento:  32[KB]  en  flash
RAM:  2[KB]

Alimentación:  por  USB  o  fuente  externa  de  7[V]  a  15[V].

E/S  Digital HIGH  :  5[V]


Con  respecto  a  E/S LOW  :  0[V]
Todas  las  E/S  operan  a  5[V].

Taller básico de programación de dispositivos Arduino – Ingeniería Civil Informática                                                              17


                           informatica.uv.cl
Descripción del Hardware
Pueden  uWlizar  como  entrada  
o  salida: pinmode(pin, modo);
pin:  nº  del  pin  que  se  quiere  usar.
modo:  {OUTPUT,  INPUT}.

Ej.: pinmode(9, OUTPUT);


valor = digitalRead(pin);
Como  E/S  digital:
digitalWrite(pin,valor);
Ej.: digitalWrite(9, HIGH);
analogWrite(pin,valor);
Como  Salida  análoga:
Los  pines  ~X  Wenen  una  resolución  de  8  bits  
valor={0,1,2, …, 255).
El  valor  entero  255  corresponde  a  5[V].
Taller básico de programación de dispositivos Arduino – Ingeniería Civil Informática                                                              18
                           informatica.uv.cl
Descripción del Hardware
Las  6  entradas  análogas  proporcionan  
una  resolución  de  10  bits.

El  valor  conWnuo  ingresado  puede  


ser  representado  por  un  nro  entero  
entre  0  y  1023.
valor = analogRead(pin);
pin:  valor  del  pin  (A0,  A1,  …,A5).  
valor:  nro  entero  entre  0  y  1023.
Un  valor  1023  representa  5[V]

Taller básico de programación de dispositivos Arduino – Ingeniería Civil Informática                                                              19


                           informatica.uv.cl
Descripción del Hardware
Protoboard

Taller básico de programación de dispositivos Arduino – Ingeniería Civil Informática                                                              20


                           informatica.uv.cl
Descripción del Hardware
Protoboard

Taller básico de programación de dispositivos Arduino – Ingeniería Civil Informática                                                              21


                           informatica.uv.cl
Software necesario
Integrated  Development  Environment  (IDE)  para  Arduino

hmp://arduino.cc/en/Main/Socware

Disponible  para:

Taller básico de programación de dispositivos Arduino – Ingeniería Civil Informática                                                              22


                           informatica.uv.cl
Modalidad de trabajo

Taller básico de programación de dispositivos Arduino – Ingeniería Civil Informática                                                              23


                           informatica.uv.cl
Arquitectura del IDE Compila el código y
lo transfiere a la Monitor
para Arduino Verifica
el código
placa serial

Área de
Edición de
Código

Área de
Mensajes

Taller básico de programación de dispositivos Arduino – Ingeniería Civil Informática                                                              24


                           informatica.uv.cl
Forma de programar

Declaraciones
Globales

setup()

loop()

Taller básico de programación de dispositivos Arduino – Ingeniería Civil Informática                                                              25


                           informatica.uv.cl
Forma de programar

Encendido de la placa
Reset
Carga de un programa
Declaraciones
setup() loop()
Globales

//Sección Global void setup(){ void loop(){

instruccion 1; instruccion 1; instruccion 1;


instruccion 2; instruccion 2; instruccion 2;
... ... ...
... ... ...
instrucción k; instrucción j; instrucción j;
} }

Taller básico de programación de dispositivos Arduino – Ingeniería Civil Informática                                                              26


                           informatica.uv.cl
Modalidad de trabajo esperado

Diseño
Hardware
(electrónica)
Diseño a SI
IDEA nivel de ¿Es lo que se Fin de la etapa
Implementación
Sistema esperaba? de prototipado
Diseño
Sofware
(lógica de la
solución)
NO

Revisión de los diseños

Taller básico de programación de dispositivos Arduino – Ingeniería Civil Informática                                                              27


                           informatica.uv.cl
Comunicación
Arduino-Computador

Taller básico de programación de dispositivos Arduino – Ingeniería Civil Informática                                                              28


                           informatica.uv.cl
Monitor serial

Scketch Monitor Serial

Datos enviados desde la placa Arduino


hacia el computador a través del puerto USB

Taller básico de programación de dispositivos Arduino – Ingeniería Civil Informática                                                              29


                           informatica.uv.cl
Funciones de comunicación
Serial.begin(velocidad)
Establece  velocidad  de  conexión    en  baudios.  
Por  omisión  velocidad=9600[baudios]1.

Serial.available()
void setup() {
Serial.begin(9600);
}
!
void loop() {
if (Serial.available() > 0) {//Si hay datos disponibles
//Codigo relacionado con la lectura de datos
//del puerto serie.
}
}
1  Las  velocidades  permiWdas  (en  baudios)  son:  300,  1200,  2400,  4800,  9600,  14400,  19200,  28800,  38400,  57600,  115200.

Taller básico de programación de dispositivos Arduino – Ingeniería Civil Informática                                                              30


                           informatica.uv.cl
Funciones de comunicación
Serial.print(valor[,formato])
Serial.println(valor[,formato])
Envía  datos  al  puerto  serie  como  texto  ASCII.  

Serial.read() int incomingByte = 0; // dato serial que llega


!
void setup() {
Serial.begin(9600);
}
!
void loop() {
if (Serial.available() > 0) {//Si hay datos
// leer el byte que llega
incomingByte = Serial.read();
!
// Mostrar el dato recibido
Serial.print("Dato recibido: ");
Serial.println(incomingByte, DEC);
}
}

Taller básico de programación de dispositivos Arduino – Ingeniería Civil Informática                                                              31


                           informatica.uv.cl
Primer prototipo

Taller básico de programación de dispositivos Arduino – Ingeniería Civil Informática                                                              32


                           informatica.uv.cl
Idea inicial
Se  quiere  realizar  un  sistema,  basado  con  Arduino,  que  prenda  y  
apague  un  LED  cada  1  segundo

1)  Diseño  del  Sistema Software


(lógica de la
solución)

OUT

Arduino LED

pin 10
Taller básico de programación de dispositivos Arduino – Ingeniería Civil Informática                                                              33
                           informatica.uv.cl
Diseño
2)  Diseño  del  Hardware

PIN 10

330[Ω]

hmp://www.instructables.com

Taller básico de programación de dispositivos Arduino – Ingeniería Civil Informática                                                              34


                           informatica.uv.cl
Diseño
2)  Diseño  del  Hardware

Taller básico de programación de dispositivos Arduino – Ingeniería Civil Informática                                                              35


                           informatica.uv.cl
Diseño
3)  Diseño  del  Socware SW  debe  alinearse  con  el  HW.
PIN 10

330[Ω] void setup() {


pinMode(10, OUTPUT);
}

Observación:  el  código  DEBE  comentarse


void setup() {
pinMode(10, OUTPUT); //pin 10 como Salida
}

Taller básico de programación de dispositivos Arduino – Ingeniería Civil Informática                                                              36


                           informatica.uv.cl
Diseño
3)  Diseño  del  Socware

Inicio

Poner en nivel
ALTO el pin 10

Esperar
1[seg]

Poner en nivel
BAJO el pin 10

Esperar
1[seg]

Sin  SW,  el  HW  no  sirve


Taller básico de programación de dispositivos Arduino – Ingeniería Civil Informática                                                              37
                           informatica.uv.cl
Diseño
3)  Diseño  del  Socware

Inicio

Poner en nivel
ALTO el pin 10
void loop() {
digitalWrite(10, HIGH);// prenda el LED
Esperar
1[seg]
delay(1000); // espere 1[seg]
// (1000 milisegundos
digitalWrite(10, LOW); // apague el LED
Poner en nivel
BAJO el pin 10 delay(1000); // espere 1[seg]
}
Esperar
1[seg]

Sin  SW,  el  HW  no  sirve


Taller básico de programación de dispositivos Arduino – Ingeniería Civil Informática                                                              38
                           informatica.uv.cl
Diseño
4)  Solución  final
int pinLed = 10; //Pin asociado al LED
//que se va a prender/apagar
int duracion = 1000; //duracion del parpadeo
!
void setup() {
pinMode(pinLed, OUTPUT); //Se inicializa el
//pin como salida
}
!
void loop() {
digitalWrite(pinLed, HIGH);// prenda el LED
delay(duracion); // espere 1[seg]
digitalWrite(pinLed, LOW); // apague el LED
delay(duracion) // espere 1[seg]
}

Taller básico de programación de dispositivos Arduino – Ingeniería Civil Informática                                                              39


                           informatica.uv.cl
Ejemplo 2

Taller básico de programación de dispositivos Arduino – Ingeniería Civil Informática                                                              40


                           informatica.uv.cl
Se  quiere  realizar  un  sistema,  basado  con  Arduino,  que  prenda  y  
apague  un  LED  cada  1/2  segundo  (500ms),  sólo  cuando  el  usuario  
presione  un  botón.

1)  Diseño  del  Sistema

IN OUT

Arduino LED

Parpadea cuando
el botón
está presionado

Taller básico de programación de dispositivos Arduino – Ingeniería Civil Informática                                                              41


                           informatica.uv.cl
Antecedentes eléctricos
2)  Diseño  del  Hardware
IN OUT

5[V]
PIN 1

10[KΩ]

PIN 13

Diagrama Símbolo
Eléctrico
Si  (Vpin13  =  0[V])  
       Botón  presionado  
else  
     Botón  normal
Taller básico de programación de dispositivos Arduino – Ingeniería Civil Informática                                                              42
                           informatica.uv.cl
Diseño
2)  Diseño  del  Hardware
IN OUT

5[V]
PIN 10

10[KΩ]
330[Ω]
PIN 13

Taller básico de programación de dispositivos Arduino – Ingeniería Civil Informática                                                              43


                           informatica.uv.cl
Diseño
2)  Diseño  del  Hardware
IN OUT

5[V]
PIN 10

10[KΩ]
330[Ω]
PIN 13

Taller básico de programación de dispositivos Arduino – Ingeniería Civil Informática                                                              44


                           informatica.uv.cl
Diseño
3)  Diseño  del  Socware
Si  (Vpin13  =  0[V])  
       Botón  presionado  
Inicio
else  
Poner en nivel
ALTO el pin 10
     Botón  normal
Configurar pines

Esperar
500[mseg]
estadoBoton <- Leer
estado del botón

Poner en nivel
BAJO el pin 10
NO SI
botón presionado?
Esperar
500m[seg] Si  (Estadopin13  =  LOW)  
       Botón  presionado  
else  
     Botón  normal

Taller básico de programación de dispositivos Arduino – Ingeniería Civil Informática                                                              45


                           informatica.uv.cl
Diseño
3)  Diseño  del  Socware

int pinLed = 10; //Pin asociado al LED


//que se va a prender/apagar
int duracion = 500; //duracion del parpadeo
int pinBoton = 13;
int estadoBoton;
!
void setup() {
//...
}
!
void loop() {
estadoBoton = digitalRead(pinBoton);
!
//...
!
}

Taller básico de programación de dispositivos Arduino – Ingeniería Civil Informática                                                              46


                           informatica.uv.cl
Diseño
3)  Diseño  del  Socware
int pinLed = 10; //Pin asociado al LED
//que se va a prender/apagar
int duracion = 500; //duracion del parpadeo
int pinBoton = 13;
int estadoBoton;
!
void setup() {
pinMode(pinLed, OUTPUT);//pin como salida
pinMode(pinBoton, INPUT)
}
!
void loop() {
estadoBoton = digitalRead(pinBoton);
if(estadoBoton == LOW){
digitalWrite(pinLed, HIGH);// prenda el LED
delay(duracion); // espere 1[seg]
digitalWrite(pinLed, LOW); // apague el LED
delay(duracion) // espere 1[seg]
}
}
Taller básico de programación de dispositivos Arduino – Ingeniería Civil Informática                                                              47
                           informatica.uv.cl
Ejemplo 3

Taller básico de programación de dispositivos Arduino – Ingeniería Civil Informática                                                              48


                           informatica.uv.cl
Manejo de puertos
Arduino  Wene  tres  puertos:

Cada  puerto  está  controlado  por  tres  registros  (variables)  


de  8  bits:

Taller básico de programación de dispositivos Arduino – Ingeniería Civil Informática                                                              49


                           informatica.uv.cl
Manejo de puertos

Ejemplo DDRB

Configura  como   pines  Digitales  


INPUT  o  OUTOUT   8  al  13
los

PORTB

Pin Digital 8
Pin Digital 13 HIGH Pone  valores   pines  Digitales  
HIGH
Pin Digital 10 ALTO  o  BAJO  en 8  al  13
HIGH

Taller básico de programación de dispositivos Arduino – Ingeniería Civil Informática                                                              50


                           informatica.uv.cl
Idea
Se  quiere  realizar  un  sistema,  basado  con  Arduino,  que  implemente  
un  secuenciador  de  6  LEDs.  
Cada  LED  debe  durar  prendido  1  segundo.

Taller básico de programación de dispositivos Arduino – Ingeniería Civil Informática                                                              51


                           informatica.uv.cl
Idea
Se  quiere  realizar  un  sistema,  basado  con  Arduino,  que  implemente  
un  secuenciador  de  6  LEDs.  
Cada  LED  debe  durar  prendido  1  segundo.

Taller básico de programación de dispositivos Arduino – Ingeniería Civil Informática                                                              52


                           informatica.uv.cl
Idea
Se  quiere  realizar  un  sistema,  basado  con  Arduino,  que  implemente  
un  secuenciador  de  6  LEDs.  
Cada  LED  debe  durar  prendido  1  segundo.
#define DELAY 1000
!
void setup() {
DDRB = B00111111;
}
!
void loop() {
PORTB = 0; //Todos los led apagados

for(int i=0; i<=5; i++){


PORTB = ..............;
delay(DELAY);
}
}

Taller básico de programación de dispositivos Arduino – Ingeniería Civil Informática                                                              53


                           informatica.uv.cl
Idea
Se  quiere  realizar  un  sistema,  basado  con  Arduino,  que  implemente  
un  secuenciador  de  6  LEDs.  
Cada  LED  debe  durar  prendido  1  segundo.
#define DELAY 1000
!
void setup() {
DDRB = B00111111;
}
!
void loop() {
PORTB = 0; //Todos los led apagados

for(int i=0; i<=5; i++){


PORTB = (1 << i);
delay(1000);
}
}

Taller básico de programación de dispositivos Arduino – Ingeniería Civil Informática                                                              54


                           informatica.uv.cl
Ejemplo 4

Taller básico de programación de dispositivos Arduino – Ingeniería Civil Informática                                                              55


                           informatica.uv.cl
Idea
Se  quiere  realizar  un  sistema,  basado  con  Arduino,  que  prenda  y  
apague  un  LED,  cuya  frecuencia  de  parpadeo  sea  controlable  a  
través  de  un  potenciómetro

1)  Diseño  del  Sistema


Potenciómetro

IN OUT

Nivel de rotación
Arduino LED
de la perilla (α)
Parpadea según
el nivel de rotación:
izq-> lento
der-> rápido
10[KΩ]

Taller básico de programación de dispositivos Arduino – Ingeniería Civil Informática                                                              56


                           informatica.uv.cl
Diseño
2)  Diseño  del  Hardware
IN

5[V] 5[V]

Vout=(1-α)•5[V]
A
A
Vout=(1-α)•5[V]

10[KΩ] PIN A3 10[Ω] PIN A3


C C

B
B
Diagrama de
conexiones
Símbolo
eléctrico

Taller básico de programación de dispositivos Arduino – Ingeniería Civil Informática                                                              57


                           informatica.uv.cl
Diseño
2)  Diseño  del  Hardware

IN 5[V] OUT
PIN 10
Vout=(1-α)•5[V]
A
330[Ω]

10[Ω] PIN A3
C

Símbolo
eléctrico

Taller básico de programación de dispositivos Arduino – Ingeniería Civil Informática                                                              58


                           informatica.uv.cl
Diseño
2)  Diseño  del  Hardware

Taller básico de programación de dispositivos Arduino – Ingeniería Civil Informática                                                              59


                           informatica.uv.cl
Diseño
3)  Diseño  del  Socware

Problema:  variar  el  Wempo  de  parpadeo  según  el  


ángulo  de  giro  del  potenciómetro.

Analizar  los  posibles  valores  de  entrada

Si  0o≤α≤180o             ➡        5[V]≥Vout≥0[V]

¿cuál  es  el  rango  del  valor  de  entrada  


de  A3?

Si  0o≤α≤180o              ➡        1023≥A3≥0

Taller básico de programación de dispositivos Arduino – Ingeniería Civil Informática                                                              60


                           informatica.uv.cl
Diseño
3)  Diseño  del  Socware

Inicio

int sensorPin = A3;//El potenciometro esta conectado


Configurar pines // al pin analogo A0
int ledPin = 10; // El LED esta conectado al
// pin digital 10
duracion <- Leer A3 int duracion;
!
void setup() {
Poner en nivel
ALTO el pin 10 pinMode(sensorPin, INPUT); //pin como entrada
pinMode(pinLed, OUTPUT); //pin como salida
Esperar
}
duracion[seg] !
void loop() {
Poner en nivel duracion = analogRead(sensorPin);
BAJO el pin 10
!
//...
Esperar
duracion[seg]
}

Taller básico de programación de dispositivos Arduino – Ingeniería Civil Informática                                                              61


                           informatica.uv.cl
Diseño
3)  Diseño  del  Socware
int sensorPin = A3;//El potenciometro esta conectado
Inicio
// al pin analogo A0
int ledPin = 10; // El LED esta conectado al
Configurar pines // pin digital 10
int duracion;
!
duracion <- Leer A3 void setup() {
pinMode(sensorPin, INPUT); //pin como entrada
pinMode(pinLed, OUTPUT); //pin como salida
Poner en nivel
ALTO el pin 10 }
!
Esperar
void loop() {
duracion[seg] duracion = analogRead(sensorPin);
//Por tratarse de una entrada analogica
Poner en nivel //duracion esta entre 0 y 1023
BAJO el pin 10
digitalWrite(pinLed, HIGH);// prenda el LED
delay(duracion); // espere
Esperar
duracion[seg]
digitalWrite(pinLed, LOW); // apague el LED
delay(duracion) // espere
}
Taller básico de programación de dispositivos Arduino – Ingeniería Civil Informática                                                              62
                           informatica.uv.cl
Ejemplo 5

Taller básico de programación de dispositivos Arduino – Ingeniería Civil Informática                                                              63


                           informatica.uv.cl
Idea
La  idea  de  este  sistema  es  que  un  LED  se  encienda  en  ausencia  de  
luz  ambiental.  Si  hay  luz  ambiente,  el  LED  debe  permanecer  
apagado.  

1)  Diseño  del  Sistema


IN OUT

Sensor
Arduino LED
de luz

Sensor  de  luz


Rsensor[Ω]
Fotoresistencia

Taller básico de programación de dispositivos Arduino – Ingeniería Civil Informática                                                              64


                           informatica.uv.cl
Antecedentes eléctricos
2)  Diseño  del  Hardware
(Ausencia total (Luz directa)
de Luz)
Rsensor[Ω] Rsensor Rsensor

Configuración   5[V] Input


propuesta:
A

Rsensor[Ω]
Vout
PIN
Análogo
C
10[KΩ]

Taller básico de programación de dispositivos Arduino – Ingeniería Civil Informática                                                              65


                           informatica.uv.cl
Antecedentes eléctricos
2)  Diseño  del  Hardware
(Ausencia total (Luz directa)
de Luz)
Rsensor[Ω] Rsensor Rsensor

Configuración   5[V]
Input En  ausencia  total  de  luz:  
propuesta: A
IN
    Vout=1,25
10[KΩ]
Vout

Fines  prácWcos:  
PIN A0
C
Rsensor[Ω]

B
  Vout<1,5  indica  penumbra  
  o  ausencia  de  luz
Vout=1,5  es  equivalente  a  un  
número  entero  de  307  aprox.
Taller básico de programación de dispositivos Arduino – Ingeniería Civil Informática                                                              66
                           informatica.uv.cl
Antecedentes eléctricos
2)  Diseño  del  Hardware

PIN 10
Configuración  
propuesta: 330[Ω]

Output

Taller básico de programación de dispositivos Arduino – Ingeniería Civil Informática                                                              67


                           informatica.uv.cl
Solución
2)  Diseño  del  Hardware
5[V] PIN 10

A 330[Ω]
IN
10[KΩ]
Vout
PIN A0
C
Rsensor[Ω]

Taller básico de programación de dispositivos Arduino – Ingeniería Civil Informática                                                              68


                           informatica.uv.cl
Diseño
3)  Código  final

Inicio int sensorPin = A0; //Fotoresistencia conectada


// al pin analogo A0
Configurar pines
int pinLed = 10; // El LED esta conectado al
// pin digital 10
int intensidad;
intensidad <- Leer
Sensor de luz
!
void setup() {
pinMode(sensorPin, INPUT); //pin como entrada
¿hay luz ambiental ?
SI
pinMode(pinLed, OUTPUT); //pin como salida
}
NO !
Prenda el Apague el
void loop() {
LED LED intensidad = analogRead(sensorPin);
//Si hay luz==>haga algo, ( intensidad > 307)
//Si no, haga otra cosa
//...
}

Taller básico de programación de dispositivos Arduino – Ingeniería Civil Informática                                                              69


                           informatica.uv.cl
Diseño
3)  Código  final
int sensorPin = A0; //Fotoresistencia conectada
Inicio
// al pin analogo A0
int pinLed = 10; // El LED esta conectado al
// pin digital 10
Configurar pines
int intensidad;
!
intensidad <- Leer
void setup() {
Sensor de luz pinMode(sensorPin, INPUT); //pin como entrada
pinMode(pinLed, OUTPUT); //pin como salida
SI }
¿hay luz ambiental ?
!
NO void loop() {
intensidad = analogRead(sensorPin);
Prenda el
LED
Apague el
LED
//Por tratarse de una entrada analogica
//intensidad esta entre 0 y 1023
if(intensidad > 307) //hay luz ambiente
digitalWrite(pinLed, LOW);//apague el LED
else
digitalWrite(pinLed, HIGH); //prenda el LED
}

Taller básico de programación de dispositivos Arduino – Ingeniería Civil Informática                                                              70


                           informatica.uv.cl
Preguntas
claves como desarrollador

Taller básico de programación de dispositivos Arduino – Ingeniería Civil Informática                                                              71


                           informatica.uv.cl
Deben preguntarse

Qué  sensor  me  permite  cumplir  con  los  objeWvos  de  


mi  solución.

Dicho  sensor,  cómo  lo  conecto  a  la  placa  Arduino.

Qué  rango  de  valores  entrega  y  cuáles  de  ellos  me  sirve.

Con  qué  disposiWvo  logro  que  la  salida  de  la  placa  
interactúe  con  el  medio.

Taller básico de programación de dispositivos Arduino – Ingeniería Civil Informática                                                              72


                           informatica.uv.cl

También podría gustarte