Está en la página 1de 45

Programación con

Arduino II. Teórico I


Asesoramientos SmartPeme
Si deseas resolver cualquier duda adicional:

Cita previa Horario

De lunes a jueves, de 9:00 a 14:30 y


de 16:00 a 19:00 horas
Portal web Teléfono Viernes de 9:00 a 14:30
www.smartpeme.depo.gal 886 202 020

Agosto
De lunes a viernes, de 9:00 a 14:30
Correo electrónico Modo presencial
info.smartpeme@depo.gal En cualquier punto de la red horas

2
SmartPeme en Redes Sociales
Para estar al día sobre nuestra programación de talleres y conocer nuestras novedades,
¡Síguenos en las redes!
Facebook Instagram Twitter

Smartpeme Smartpeme
Smartpeme
@smartpeme @smartpeme
@smartpeme

3
App SmartPeme
Para estar al día sobre la programación de talleres, descubrir nuestras novedades, solicitar y
gestionar tus citas para asesoramientos, recibir notificaciones de información relevante, conocer la
actualidad sobre ayudas y subvenciones...
¡¡¡Descarga la App de SmartPeme!!!
Google Play Store Apple Store

Smartpeme Smartpeme

DESCARGA DESCARGA
O
C
T Jueves 13- Presentación del itinerario – Programación con
Arduino I. Teórico I

U Jueves 20 - Programación con Arduino I. Teórico II

B Jueves 27 - Programación con Arduino I. Teórico III

R
E 5
N
O
V
Jueves 3- Programación con Arduino I. Práctico I
I
E
Jueves 10 - Programación con Arduino II. Teórico I

M
Jueves 17 - Programación con Arduino II. Teórico II

B
Jueves 24 - Programación con Arduino II. Práctico I

R
E 6
D
I
C
I Viernes 2- Programación con Arduino II. Teórico III
E Jueves 15 - Programación con Arduino II. Práctico II
M
B
R
E 7
Índice de contenidos

1. Máquina de estados
2. Comprobar el valor de…. Si es igual a….
3. Programación de un Luzómetro

8
2. Máquina de estados

9
Programación con Arduino II. Teórico I
1. Máquina de estados

Una máquina de estados es un programa que


reacciona de una forma u otra dependiendo no solo
de lo que está sucediendo, sino también de su
estado anterior.

Ejemplos que podemos realizar con una máquina


de estado son máquinas de vending, ascensores,
barreras de parking, estaciones industriales, e
incluso pequeños robots, entre muchos otros.

10
Programación con Arduino II. Teórico I
1. Máquina de estados

Para crear una máquina de estados necesitamos definir los


estados y los eventos.

Los estados son los posibles comportamientos de la


máquina. Se parte de un estado inicial y a medida que
ocurren eventos cambia a los distintos estados que
describen su comportamiento.

Los eventos son las acciones que hacen cambiar el estado


pueden depender de variables externas – INPUTS – o de
variables internas.

Frecuentemente las máquinas de estados se representan


con diagramas, en los que cada estado corresponde con un
círculo, y las transiciones con flechas que los unen.
(entradas) como internas.
11
Programación con Arduino II. Teórico I
1. Máquina de estados

Razonar una máquina de estados, un led


y un botón.

Si pulso el botón el led se enciende, si lo


vuelvo a pulsar el led se apaga.

12
Programación con Arduino II. Teórico I
1. Máquina de estados

Razonar una máquina de estados,


dos led y un botón.

Si pulso el botón una vez se enciende el led 1

Si pulso otra vez se enciende el led 2

Si pulso otra vez se encienden los 2 leds

Si pulso otra vez se apagan los 2 leds

13
Programación con Arduino II. Teórico I
1. Máquina de estados

Razonar una máquina de estados,


dos led y un botón.

Si pulso el botón una vez se enciende el led 1

Si pulso otra vez se enciende el led 2

Si pulso otra vez se encienden los 2 leds


E3
Si pulso otra vez se apagan los 2 leds

E2

14
Programación con Arduino II. Teórico I
1. Máquina de estados

Montaje

2 leds
1 botón
1 placa arduino

Un led al pin 7
Otro led al pin 8
El botón al pin 2

15
Programación con Arduino II. Teórico I
1. Máquina de estados

Programa

16
Programación con Arduino II. Teórico I
1. Máquina de estados

Programa

17
Programación con Arduino II. Teórico I
1. Máquina de estados

Programa

18
Programación con Arduino II. Teórico I
1. Máquina de estados

Programa

19
Programación con Arduino II. Teórico I
1. Máquina de estados

Razonar una máquina de estados para


un ascensor de 2 pisos, dos botones
uno para subir y otro para bajar.

20
Programación con Arduino II. Teórico I
1. Máquina de estados

Estados del ascensor

E0 -

21
Programación con Arduino II. Teórico I
1. Máquina de estados

Estados del ascensor

E0 – Arriba
E1 - Abajo

22
Programación con Arduino II. Teórico I
1. Máquina de estados

Estados del ascensor

E0 – Arriba
E1 – Abajo
E2 – Subiendo
E3 - Bajando

23
Programación con Arduino II. Teórico I
1. Máquina de estados

Estados del ascensor Eventos

E0 – Arriba EV0 –
E1 – Abajo EV1 –
E2 – Subiendo EV2 –
E3 - Bajando EV3 –

24
Programación con Arduino II. Teórico I
1. Máquina de estados

Estados del ascensor Eventos

E0 – Arriba EV0 – Pulsar Arriba


E1 – Abajo EV1 – Pulsar Abajo
E2 – Subiendo EV2 –
E3 - Bajando EV3 –

25
Programación con Arduino II. Teórico I
1. Máquina de estados

Estados del ascensor Eventos

E0 – Arriba EV0 – Pulsar Arriba


E1 – Abajo EV1 – Pulsar Abajo
E2 – Subiendo EV2 – Llegar arriba
E3 - Bajando EV3 – Llegar abajo

26
Programación con Arduino II. Teórico I
1. Máquina de estados

Estados del ascensor Eventos

E0 – Arriba EV0 – Pulsar Arriba


E1 – Abajo EV1 – Pulsar Abajo
E2 – Subiendo EV2 – Llegar arriba
E3 - Bajando EV3 – Llegar abajo

27
2. Switch… Case …

28
Programación con Arduino II. Teórico I
2. Comprobar el valor de…. Si es igual a….

Es una estructura de control, no sirve para


comprobar el valor de una variable y en función
de su valor ejecutar una orden u otra.

switch, comprueba el valor de la variable


switch ( variable) {
case 0: en caso de que la variable valga 0 ejecuta lo que va a continuación
case “valor”:
líneas a ejecutar break; paramos el programa esta a la espera
break; sale del bucle case 1: en caso de que la variable valga 1 ejecuta lo que va a continuación

break; paramos el programa esta a la espera

29
3. Programación de un Luzómetro

30
Programación con Arduino II. Teórico I
3. Programación de un Luzómetro

Componentes

1 LDR al pin A0

1 Pulsador al pin 7

1 Led RGB a los pines 12,11,10

1 POT al pin A5

1 Servo 180 al pin 4

1 Placa Arduino

1 Chasis Luzómetro

31
Programación con Arduino II. Teórico I
3. Programación de un Luzómetro
Enunciado

El aparato debe indicar con su aguja si es:


- De día (plena luz)
- Atardecer o anochecer (media luz)
- De noche (oscuridad)

El Luzómetro se debe calibrar antes de su modo de funcionamiento normal.


El proceso debe ser:
- Usando el Pot llevamos la aguja a la posición de luz e iluminamos el sensor de luz
- Usando el Pot llevamos la aguja a la posición de media luz e iluminamos parcialmente
el sensor de luz
- Usando el Pot llevamos la aguja a la posición de oscuridad y tapamos el LDR
Tanto las posiciones de la aguja como la cantidad de luz se calculan en este proceso y no
pueden estar escritos numéricamente en el código, son resultado del proceso de
calibración.
Una vez calibrado el luzómetro la aguja se debe mover a la posición adecuada según la
cantidad de luz.

32
Programación con Arduino II. Teórico I
3. Programación de un Luzómetro

Máquina de estados del Luzómetro

Estados Eventos

S0 - EV0 -

33
Programación con Arduino II. Teórico I
3. Programación de un Luzómetro

Máquina de estados del Luzómetro

Estados Eventos

S0 – stanby EV0 – pulsación


S1 - calibración noche
S2 – calibración atardecer
S3 – calibración día
S4 – automático

34
Programación con Arduino II. Teórico I
3. Programación de un Luzómetro

Máquina de estados del Luzómetro

Estados Eventos

S0 – stanby EV0 – pulsación


S1 - calibración noche
S2 – calibración atardecer
S3 – calibración día
S4 – automático

35
Programación con Arduino II. Teórico I
3. Programación de un Luzómetro
Estados

S0 – stanby
La máquina esta apagada, un led rojo nos indica su estado

S1 - calibración noche
Leeremos el sensor LDR simulando la noche y guardaremos su valor en una variable, también leeremos
la posición del Pot cuando la aguja marque noche y la guardamos en otra variable

S2 – calibración atardecer
Lo mismo que para noche pero en atardecer, usaremos el valor de la luz ambiente

S3 – calibración día
Lo mismo que noche pero para día, utilizaremos una luz externa –linterna móvil- para obtener el valor de
luz día

S4 – automático
La máquina debe responder por si sola a las variaciones de luz recibidas

36
Programación con Arduino II. Teórico I
3. Programación de un Luzómetro

Determinar los umbrales de luz

Para ello mediremos el LDR con el Serial Monitor.

Miraremos el valor de sin luz –noche-


El valor con la luz ambiente – atardecer-
El valor con la linterna del móvil – día-

Unos valores típicos podrían ser


Noche 0 a 100
Atardecer 101 a 250
Día 251 a 580

37
Programación con Arduino II. Teórico I
3. Programación de un Luzómetro

Programa

38
Programación con Arduino II. Teórico I
3. Programación de un Luzómetro

39
Programación con Arduino II. Teórico I
3. Programación de un Luzómetro

40
Programación con Arduino II. Teórico I
3. Programación de un Luzómetro

41
Programación con Arduino II. Teórico I
3. Programación de un Luzómetro

42
Programación con Arduino II. Teórico I
3. Programación de un Luzómetro

43
Programación con Arduino II. Teórico I
3. Programación de un Luzómetro

44
Muchas gracias

También podría gustarte