You are on page 1of 114

Introducció a la plataforma

de desenvolupament Arduino

Manuel Ignacio Ayala Chauvin


1
Història
El projecte Arduino sorgeix per
l'any 2003 com una eina per a
estudiants en el Interaction
Design Institute Ivrea a Ivrea,
Itàlia, amb l'objectiu de
proporcionar una forma fàcil i

Manuel Ignacio Ayala Chauvin


econòmica de què principiants i
professionals creessin dispositius
que poguessin interactuar amb el
seu entorn mitjançant sensors i
actuadors.
https://www.tiki-toki.com/timeline/entry/1038535/Historia-de-Arduino/ 2
Història

Manuel Ignacio Ayala Chauvin


https://www.tiki-toki.com/timeline/entry/1038535/Historia-de-Arduino/ 3
Història

Manuel Ignacio Ayala Chauvin


https://www.tiki-toki.com/timeline/entry/1038535/Historia-de-Arduino/ 4
Coneixements
elementals

Manuel Ignacio Ayala Chauvin


Protoboard, delay, pinMode, digitalWrite, digitalRead, variables,
serial, for, rele, fritzing

5
La Breadboard o Protoboard

Manuel Ignacio Ayala Chauvin


6
ARDUINO UNO!

Manuel Ignacio Ayala Chauvin


7
COMPONENTS!

Transistor
Diodos Emisores de Luz (LEDs)
Cables puente

Manuel Ignacio Ayala Chauvin


Cable USB
Foto resistencia
Resistencias

Pulsadores Sensor de temperatura Condensadores


8
IDE de Arduino (instal·lació)
Permet escriure els programes i carregar-los a la
seva placa Arduino.

Descarregar la darrera versió de l'IDE des de:


http://arduino.cc/download

Manuel Ignacio Ayala Chauvin


Poseu la placa Arduino i el cable USB a prop del
seu ordinador. Encara no els connecti.
9
COMUNICACIÓ AMB ARDUINO...

Manuel Ignacio Ayala Chauvin


10
COMUNICACIÓ AMB ARDUINO...

1. Fer doble clic sobre l'aplicació d'Arduino per


obrir-la.

Manuel Ignacio Ayala Chauvin


11
COMUNICACIÓ AMB ARDUINO...
2. Seleccionar el menú "Arxiu" escollir "Exemples"
a continuació "01Basics" i per últim "Blink".

Manuel Ignacio Ayala Chauvin


12
COMUNICACIÓ AMB ARDUINO...

Programa

Manuel Ignacio Ayala Chauvin


13
COMUNICACIÓ AMB ARDUINO...
3. Seleccionar la seva placa Arduino des de:
Eines> Placa.

Manuel Ignacio Ayala Chauvin


14
COMUNICACIÓ AMB ARDUINO...
4. Escollir el port sèrie on la seva placa Arduino
aquesta connectada des del menú de: Eines>
Port (COM1.... COM2.... COM3.... Etc...)

Manuel Ignacio Ayala Chauvin


15
COMUNICACIÓ AMB ARDUINO...
5. Per carregar el Sketch que fa que el díode led
parpelleja al seu Arduino, pressionar el botó
Pujar a la cantonada superior esquerra de la
finestra.

Manuel Ignacio Ayala Chauvin


16
COMUNICACIÓ AMB ARDUINO...
6. Ha de veure una barra indicant el progrés de
càrrega del sketch prop de la cantonada
inferior dreta de l'IDE d'Arduino, i els díodes
led de la placa Arduino amb les etiquetes TX i
RX estaran parpellejant en el moment de la
càrrega.

Manuel Ignacio Ayala Chauvin


17
COMUNICACIÓ AMB ARDUINO...

Programa el delay:

Manuel Ignacio Ayala Chauvin


18
COMUNICACIÓ AMB ARDUINO...

Manuel Ignacio Ayala Chauvin


19
REFERENCE ARDUINO...
https://www.arduino.cc/reference/en/

Digital I/O Zero, Due & MKR Family Time Trigonometry


digitalRead() analogReadResolution() delay() cos()
digitalWrite() analogWriteResolution() delayMicroseconds() sin()
pinMode() micros() tan()
Advanced I/O millis()
Analog I/O noTone() Characters

Manuel Ignacio Ayala Chauvin


analogRead() pulseIn() Math isAlpha()
analogReference() pulseInLong() abs() isAlphaNumeric()
analogWrite() shiftIn() constrain() isAscii()
shiftOut() map() isControl()
tone() max() isDigit()
min() isGraph()
pow() isHexadecimalDigit()
sq() isLowerCase()
sqrt() isPrintable() 20
El corrent elèctric
(mesura en amperes, o
amps, amb el símbol A)

Manuel Ignacio Ayala Chauvin


mesurat en volts,
amb el símbol V mesura en ohms,
amb el símbol 

21
El corrent elèctric

Manuel Ignacio Ayala Chauvin


En un circuit, l'electricitat flueix des d'un punt amb
el potencial d'energia més alt (normalment es
coneix com el positiu o + de la font d'energia) a un
punt amb el potencial d'energia més baix.
22
El corrent elèctric

Si disposa d'una
connexió en on es
connecten els punts
d'alimentació i massa
junts directament i

Manuel Ignacio Ayala Chauvin


sense resistència, es
produirà un curtcircuit.

23
Fritzing

Fritzing és software lliure de codi obert. Tingueu


en compte que el desenvolupament del mateix
depèn del suport actiu de la comunitat.
Seleccioneu la baixada de la vostra plataforma a
continuació.

Manuel Ignacio Ayala Chauvin


http://fritzing.org/download/

24
Fritzing

Manuel Ignacio Ayala Chauvin


25
Selecció de resistències

Manuel Ignacio Ayala Chauvin


26
Engeguem
un LED!
2

Alimentació

Manuel Ignacio Ayala Chauvin


a 5V

27
Engeguem un LED!

(25mA)

El terminal més llarg I=V/R

Manuel Ignacio Ayala Chauvin


del LED és anomenat
ànode, es connectarà a I = 5 V / 220 = 0.023 A
la alimentació. El
terminal més curt és el
(23mA) que consumeix el
càtode i es connectarà
díode LED
a la massa. 28
Engeguem un LED!

ánode

cátode

Manuel Ignacio Ayala Chauvin


29
Engeguem un LED!
3
4

Manuel Ignacio Ayala Chauvin


30
Engeguem un LED!

Connectar el port USB!


5

Manuel Ignacio Ayala Chauvin


31
Engeguem un LED!

Connectar el port USB!

Manuel Ignacio Ayala Chauvin


32
Engeguem un LED!

Manuel Ignacio Ayala Chauvin


33
LED controlat amb polsador

Manuel Ignacio Ayala Chauvin


34
LED controlat
amb polsador
2

Manuel Ignacio Ayala Chauvin


35
LED controlat amb polsador

Polsador

Manuel Ignacio Ayala Chauvin


LED

36
LED controlat amb polsador
¡desconnectar abans de muntar el circuit!

Manuel Ignacio Ayala Chauvin


5
37
LED controlat amb polsador
Connectar el port USB!
6

Manuel Ignacio Ayala Chauvin


38
LED controlat amb polsador

Manuel Ignacio Ayala Chauvin


39
Polsadors en sèrie

Manuel Ignacio Ayala Chauvin


40
Polsadors en sèrie

Manuel Ignacio Ayala Chauvin


41
Polsadors en sèrie

Manuel Ignacio Ayala Chauvin


42
Polsadors en paral·lel

Manuel Ignacio Ayala Chauvin


43
Polsadors en paral·lel

Manuel Ignacio Ayala Chauvin


44
Polsadors en paral·lel

Manuel Ignacio Ayala Chauvin


45
El Hello World de l’Arduino

Manuel Ignacio Ayala Chauvin


46
El Hello World de l’Arduino

1. Fes que el LED


pampalluguegi un cop
per segon
(PRACTICA_1).

Manuel Ignacio Ayala Chauvin


47
El Hello World de l’Arduino
1. Fes que el LED pampalluguegi un cop per segon

Manuel Ignacio Ayala Chauvin


PRACTICA_1 48
El Hello World de l’Arduino
1. Fes que el LED pampalluguegi un cop per segon

Manuel Ignacio Ayala Chauvin


PRACTICA_1 CODE
49
El Hello World de l’Arduino
2. Augmenta la freqüència de les pampallugues fins que
el teu ull ja no les pugui veure (PRACTICA_2).

Amb quants ms
com a mínim
pots veure les

Manuel Ignacio Ayala Chauvin


pampallugues?

PRACTICA_2 50
El Hello World de l’Arduino
2. Augmenta la freqüència de les pampallugues fins que
el teu ull ja no les pugui veure.

Manuel Ignacio Ayala Chauvin


PRACTICA_2 CODE
51
El Hello World de l’Arduino

3. Programa uns llums


d’emergència d’una
ambulància (PRACTICA_3).

groc verd

Manuel Ignacio Ayala Chauvin


220 220

PRACTICA_3
52
El Hello World de l’Arduino
3. Llums d’emergència d’una ambulància

groc verd

Manuel Ignacio Ayala Chauvin


220 220

PRACTICA_3
53
El Hello World de l’Arduino
3. Llums d’emergència d’una ambulància

Manuel Ignacio Ayala Chauvin


PRACTICA_3 CODE
54
El Hello World de l’Arduino

4. Programa un semàfor. El
vermell groc verd groc a de durar 1 segon, el
verd i el vermell 4 segons.

Manuel Ignacio Ayala Chauvin


220 220 220

PRACTICA_4

55
El Hello World de l’Arduino
4. Programa un semàfor.

Manuel Ignacio Ayala Chauvin


vermell groc verd

220 220 220

PRACTICA_4
56
El Hello World de l’Arduino
4.
Programa
un semàfor.

PRACTICA_4 CODE

Manuel Ignacio Ayala Chauvin


57
El Hello World de l’Arduino
4. Programa un semàfor.
Desenvolupa la
següent seqüència.

int

Manuel Ignacio Ayala Chauvin


PRACTICA_4 V2
58
El Hello World de l’Arduino
4. Programa un semàfor.

vermell groc verd

Manuel Ignacio Ayala Chauvin


220 220 220

PRACTICA_4 V2 59
Semàfor amb peató

5. Programa la
sincronització de
un semàfor de
cotxe y un
semàfor de
vianant. 220 220 220 220 220

Manuel Ignacio Ayala Chauvin


vermell groc verd vermell verd

PRACTICA_5 60
Semàfor amb peató

220 220 220 220 220

Manuel Ignacio Ayala Chauvin


vermell groc verd vermell verd

PRACTICA_5 61
Semàfor amb peató

Manuel Ignacio Ayala Chauvin


62
Resum

Sketch Digital I/O Time


loop() digitalRead() delay()
setup() digitalWrite() delayMicroseconds()
pinMode() micros()
millis()

Manuel Ignacio Ayala Chauvin


63
Tipus de variables a l’Arduino

Manuel Ignacio Ayala Chauvin


64
Tipus de variables a l’Arduino

Manuel Ignacio Ayala Chauvin


65
El polsador
1. Fer que si pitges el
polsador s’engegui el
LED, i si no el pitges, que
s’apagui (PRACTICA 6).

boolean

Manuel Ignacio Ayala Chauvin


66
El polsador

PRACTICA_6

Manuel Ignacio Ayala Chauvin


67
El polsador

Manuel Ignacio Ayala Chauvin


PRACTICA_6 CODE 68
El polsador

2. Fer que si pitges el


polsador s’apagui el LED, i
si no el pitges, que estigui
encès (PRACTICA 7).

Manuel Ignacio Ayala Chauvin


69
El polsador

Manuel Ignacio Ayala Chauvin


PRACTICA_7 CODE 70
El polsador

3. Fes que mentre pitgis el


boto, faci pampallugues el
LED. Si no el pitges, està
apagat (PRACTICA 8).
if () {

Manuel Ignacio Ayala Chauvin


}
else {
}

71
El polsador

Manuel Ignacio Ayala Chauvin


PRACTICA_8 CODE 72
El polsador

4. Programar el llum de
l’escala: que al fer clic el
LED es quedi 5 segons
engegat i després s’apagui
sol (PRACTICA 9).

Manuel Ignacio Ayala Chauvin


73
El polsador

Manuel Ignacio Ayala Chauvin


PRACTICA_9 CODE 74
El polsador

5. Fer que m’enviï al PC


quants cops he fet clic.
(Serial plot) (PRACTICA 10)

Manuel Ignacio Ayala Chauvin


75
El polsador

Manuel Ignacio Ayala Chauvin


PRACTICA_10 CODE 76
REPTE
Fer que el LED faci pampallugues de 500ms, i que
per cada clic que faci, cada cop les faci més ràpid.
(variable numèrica) (PRACTICA 11)

Manuel Ignacio Ayala Chauvin


77
REPTE

PRACTICA_11 CODE

Manuel Ignacio Ayala Chauvin


78
Envia un SOS amb code Morse
(PRACTICA 12)

Manuel Ignacio Ayala Chauvin


79
Code Morse SOS

int ledPin = 2;
void setup() {
pinMode(ledPin, OUTPUT);
}
void loop() {
digitalWrite(ledPin, HIGH);
delay(1000);

Manuel Ignacio Ayala Chauvin


digitalWrite(ledPin, LOW);
delay(1000);
}

(PRACTICA 12)
Codi per generar pampallugues!
80
Code Morse SOS

Manuel Ignacio Ayala Chauvin


PRACTICA_12 CODE
81
Programa això amb el polsador:
Posar dos polsadors i fer el següent: (PRACTICA 13)

Manuel Ignacio Ayala Chauvin


82
Programa això amb el polsador:
(PRACTICA 13)
1. Que un sumi clics, i l’altre posi
el contador a 0

2. Que un sumi clics, i l’altre resti


clics, tan si es pitja un polsador
com l’altre, s’ha d’enviar la
dada al PC.

Manuel Ignacio Ayala Chauvin


3. Fer que amb un posador contis
clics, i al pitjar el segon
polsador, que el LED faci
tantes pampallugues com clics
hem fet amb el primer
polsador. (for)
83
Programa això amb el polsador:
(PRACTICA 13)
4. Que quan li faci clic
s’engegui i quedi engegat.
Quan torni a fer clic s’apagui
i que quedi apagat.

5. Fer que el semafor sigui


manual. Que avanci al
següent estat en cada clic del

Manuel Ignacio Ayala Chauvin


polsador.

6. El semafor per defecte esta


pagat, al clicar comença a
funcionar. I al tornar a clicar
s’apaga. 84
Programa això amb el polsador:
1. Que un sumi clics, i
l’altre posi el
contador a 0

Manuel Ignacio Ayala Chauvin


PRACTICA_13.1 CODE 85
Programa això amb el polsador:

2. Que un sumi clics, i l’altre


resti clics, tan si es pitja un
polsador com l’altre, s’ha
d’enviar la dada al PC.

Manuel Ignacio Ayala Chauvin


PRACTICA_13.2 CODE 86
Programa això amb el polsador:

3. Fer que amb un posador


contis clics, i al pitjar el
segon polsador, que el LED
faci tantes pampallugues com
clics hem fet amb el primer
polsador. (for)

Manuel Ignacio Ayala Chauvin


PRACTICA_13.3 CODE 87
Programa això amb el polsador:

4. Que quan li faci clic s’engegui i


quedi engegat. Quan torni a fer
clic s’apagui i que quedi
apagat.

Manuel Ignacio Ayala Chauvin


PRACTICA_13.4 CODE 88
Programa això amb el polsador:

5. Fer que el semafor sigui


manual. Que avanci al següent
estat en cada clic del polsador.

Manuel Ignacio Ayala Chauvin


PRACTICA_13.5 CODE 89
Programa això amb el polsador:

6. El semafor per defecte esta


pagat, al clicar comença a
funcionar. I al tornar a clicar
s’apaga.

Manuel Ignacio Ayala Chauvin


PRACTICA_13.6 CODE 90
El polsador amb LEDs
1. El LED verd ha de veure
Polsador
'encès. Al prémer el
polsador, els LEDs
vermells començaran a
parpellejar i el LED verd
s'apagarà.
2. Intenta canviar el temps
Rojo Rojo Verde
de les dues instruccions

Manuel Ignacio Ayala Chauvin


delay (); s'observa que li
10K 220 220 220
passa als LEDs i com la
resposta del sistema ha
canviat en variar la
velocitat del parpelleig.
(PRACTICA_14).
91
El polsador amb LEDs

Manuel Ignacio Ayala Chauvin


PRACTICA_14 92
El polsador amb LEDs

Manuel Ignacio Ayala Chauvin


PRACTICA_14 CODE 93
Encendre un LED i canviar-li la
seva intensitat utilitzant PWM

Utilitza la funció:
sin()

Manuel Ignacio Ayala Chauvin


PRACTICA_15 94
Encendre un LED i canviar-li la
seva intensitat utilitzant PWM

Manuel Ignacio Ayala Chauvin


PRACTICA_15 CODE 95
Encendre un LED i canviar-li la
seva intensitat utilitzant PWM

Utilitza la funció:
for () { }

Manuel Ignacio Ayala Chauvin


PRACTICA_16 96
Encendre un LED i canviar-li la
seva intensitat utilitzant PWM
?

Manuel Ignacio Ayala Chauvin


PRACTICA_16 CODE 97
Llums de trànsit interactives

Manuel Ignacio Ayala Chauvin


98
Llums de trànsit interactives

Manuel Ignacio Ayala Chauvin


99
Llums de trànsit interactives

Manuel Ignacio Ayala Chauvin


100
Fi

Gràcies

Manuel Ignacio Ayala Chauvin


101
Detector de calor

Voltaje de entrada: 2.7 a 5.5 V DC


Factor de escala 10 mV/°C
Precisión de ±2 °C sobre temperatura
Linealidad de ±0.5 °C
+Vsource 1 Rango de operación: -40 °C a +125 °C
Vout
2

Manuel Ignacio Ayala Chauvin


GND
3

PRACTICA_17
102
Detector de calor

Manuel Ignacio Ayala Chauvin


103
Detector de calor

Manuel Ignacio Ayala Chauvin


104
Lectures Analogiques: La fotoresistència (LDR)

1. Llegir el valor analògic i


enviar-lo al PC
2. Veure el Serial Plot
3. Fer que quan sigui fosc
s’engegui el LED, i quan hi
hagi llum que s’apagui

Manuel Ignacio Ayala Chauvin


4. Posar 4 LEDs: si hi ha
molta llum que s’apaguin
tots. Com més foscor hi
hagi, més LEDs s’han
d’engegar. (else if)

PRACTICA_18
105
Lectures Analogiques: La fotoresistència (LDR)

1. Llegir el valor
analògic i
enviar-lo al PC

Manuel Ignacio Ayala Chauvin


PRACTICA_18
106
Lectures Analogiques: La fotoresistència (LDR)

2. Veure el Serial Plot

Manuel Ignacio Ayala Chauvin


PRACTICA_18
107
Lectures Analogiques: La fotoresistència (LDR)

3. Fer que quan


sigui fosc
s’engegui el
LED, i quan hi

Manuel Ignacio Ayala Chauvin


hagi llum que
s’apagui

PRACTICA_18 V2
108
Lectures Analogiques: La fotoresistència (LDR)

4. Posar 3 LEDs: si hi
ha molta llum que
s’apaguin tots.
Com més foscor hi

Manuel Ignacio Ayala Chauvin


hagi, més LEDs
s’han d’engegar.
(else & if)

PRACTICA_18 V3
109
El sensor de
temperatura DHT11

Manuel Ignacio Ayala Chauvin


Sota protocol One-Wire i com afegir llibreries

110
Sensors de temperatura
https://learn.adafruit.com/dht
DHT11 DHT22
Preu Ultra Low Cost (3€ aprx.) Low Cost (6€ aprx.)
Voltatge (V) 3 to 5V d'alimentació i dades
Consum (mA) 2,5mA durant la sol·licitud d'informació
Humitat Relativa
20 a 80% +/-5% 0 a100% +/- 2..5%
(%HR)
Temperatura (ªC) 0 a 50ºC +/-2ºC -40 a 125 +/-0,5ºC

Manuel Ignacio Ayala Chauvin


Mostratge 1Hz (1 cop per segon) 0,5Hz (2 cops per segon)

https://github.com/adafruit/DHT-sensor-library

111
Les llibreries externes
• Arduino Library Manager • Git Hub

Manuel Ignacio Ayala Chauvin


https://github.com/adafruit/DHT-sensor-library

112
Manuel Ignacio Ayala Chauvin
113
Manuel Ignacio Ayala Chauvin
114

You might also like