Sie sind auf Seite 1von 29

Lic. Gerardo Espinoza Ramrez Instituto Tecnolgico Superior de Ciudad Serdn.

2.1. Lectura digital.


digitalRead(pin).

valor = digitalRead(Pin);
// la variable valor es igual
// al estado ledo en Pin
2
Pull UP y Pull DOWN.
3
2.1.1.1. Estructuras de control
condicionales.
Sentencia If(condicional).
4
2.1.1.1. Operadores de comparacin.
== Igual a
!= No igual a Diferente de
< Menor que
> Mayor que
<= Menor o igual que
>= Mayor o igual que
5
if (valor ?? valor)
{
ejecuta Instrucciones;
}

// ?? representa cualquier
operador de comparacin.
6
2.1.1.2. Estructura de programacin
else.
- Sentencia If(condicional)... Else.

if (inputPin == HIGH)
{
instrucciones A;
}
else
{
instruccionesB;
}

7
Ejemplo 2.1. Lectura de un botn con
condicional IF.
En este ejemplo se utiliza un pin como entrada digital
para leer el valor de un botn, tambin se utiliza un
pin como salida digital para encender o apagar un
diodo LED dependiendo el estado del botn
utilizando el condicional IF para establecer el
encendido o apagado del diodo LED.
8
9
//[[[DECLARACIN DE VARIABLES]]]
int pinLed = 5; // Se establece la variable 'pinLed' para almacenar el nmero 5 del pin de la
// tarjeta Arduino.

int pinBoton = 2; // Se establece la variable 'pinBoton' para almacenar el nmero 2 del pin de la
// tarjeta Arduino.
int estadoBoton; // Se declara la variable 'estadoBoton' la cual va a almacenar el valor leido del botn.

//[[[DECLARACIN DE VARIABLES]]]

//[[[CONFIGURACIN]]]
void setup()
{
pinMode(pinLed, OUTPUT); // Se establece como una salida al pin de la tarjeta Arduino
// el pin de la variable 'pinLed' (pin 5).
pinMode(pinBoton, INPUT); // Se establece como una entrada al pin de la tarjeta Arduino
// el pin de la variable 'pinBoton' (pin 2).
}
[[[BUCLE (CICLO REPETITIVO) DE FUNCIONAMIENTO]]]
void loop()
{
estadoBoton = digitalRead(pinBoton); // Se inicia el programa leyendo el valor del pin donde se encuentra asignado el botn,
// en esta caso la variable 'pinBoton' (pin nmero 2), dicho valor se guarda en la variable 'estadoBoton'.
if(estadoBoton==HIGH) // Condicin: SI el estado del botn es igual a 'ALTO' ENTONCES HACER LO SIGUIENTE:
{
digitalWrite(pinLed, HIGH); // Se escribe un 'ALTO' (un 1 digital) en el pin del diodo LED.
// Esto hace que el diodo LED encienda al pulsar el botn.
}
if(estadoBoton==LOW) // Condicion: SI En caso de que NO se cumpla la condicin anterior ENTONCES HACER LO
SIGUIENTE:
{
digitalWrite(pinLed, LOW); // Se escribe un 'BAJO' (un 0 digital) en el pin del diodo LED.
// Esto hace que el diodo LED se apague mientras el botn no est pulsado.
}
}
//[[[BUCLE (CICLO REPETITIVO) DE FUNCIONAMIENTO]]]
Ejemplo 2.2. Lectura de un botn con
condicional IF... ELSE.
En este ejemplo se utiliza un pin como entrada digital
para leer el valor de un botn, tambin se utiliza un pin
como salida digital para encender o apagar un diodo
LED dependiendo el estado del botn utilizando los
condicionales IF... ELSE para establecer el encendido o
apagado del diodo LED.
10
11
//[[[DECLARACIN DE VARIABLES]]]
int pinLed = 5; // Se establece la variable 'pinLed' para almacenar el nmero 5 del pin de la
// tarjeta Arduino.
int pinBoton = 2; // Se establece la variable 'pinBoton' para almacenar el nmero 2 del pin de la
// tarjeta Arduino.
int estadoBoton; // Se declara la variable 'estadoBoton' la cual va a almacenar el valor leido del botn.
//DECLARACIN DE VARIABLES]]]
void setup()
{
pinMode(pinLed, OUTPUT); // Se establece como una salida al pin de la tarjeta Arduino
// el pin de la variable 'pinLed' (pin 5).
pinMode(pinBoton, INPUT); // Se establece como una entrada al pin de la tarjeta Arduino
// el pin de la variable 'pinBoton' (pin 2).
}
//[[[BUCLE (CICLO REPETITIVO) DE FUNCIONAMIENTO]]]
void loop()
{
estadoBoton = digitalRead(pinBoton); // Se inicia el programa leyendo el valor del pin donde se encuentra
asignado el botn,
// en esta caso la variable 'pinBoton' (pin nmero 2), dicho valor se guarda en la
variable 'estadoBoton'.
if(estadoBoton==HIGH) // Condicin: SI el estado del botn es igual a 'ALTO' ENTONCES HACER LO
SIGUIENTE:
{
digitalWrite(pinLed, HIGH); // Se escribe un 'ALTO' (un 1 digital) en el pin del diodo LED.
// Esto hace que el diodo LED encienda al pulsar el botn.
}
else // SINO. En caso de que NO se cumpla la condicin anterior ENTONCES HACER LO
SIGUIENTE:
{
digitalWrite(pinLed, LOW); // Se escribe un 'BAJO' (un 0 digital) en el pin del diodo LED.
// Esto hace que el diodo LED se apague mientras el botn no est pulsado.
}
}
//[[[BUCLE (CICLO REPETITIVO) DE FUNCIONAMIENTO]]]
2.2.1. Incrementos en programacin.
Incrementos.
x = 3
x = x + 1
x = 4
12
Ejemplo 2.3. Incremento para control de
un LED.
En este ejemplo se utiliza una variable que controla
el encendido de un diodo LED con periodos de
intermitencia de 1 segundo para que encienda 3
veces, despus de 3 veces el diodo LED no vuelve a
encender hasta que la tarjeta Arduino sea
reiniciada.
13
14
//[[[DECLARACIN DE VARIABLES]]]
int pinLed = 5; // Se establece la variable 'pinLed' para almacenar el nmero 5 del pin de la
// tarjeta Arduino para el diodo LED.
int contador = 0; // Se establece la variable 'contador' la cual contar el nmero de veces que encienda
// el diodo LED.
//[[[CONFIGURACIN]]]
void setup()
{
pinMode(pinLed, OUTPUT); // Se establece como una salida al pin de la tarjeta Arduino
// el pin de la variable 'pinLed' (pin 5).
}
//[[[BUCLE (CICLO REPETITIVO) DE FUNCIONAMIENTO]]]
void loop()
{
if(contador<3) // Condicin: Si la variable contador es menor que el nmero 3
{ // entonces hacer las siguientes instrucciones:

digitalWrite(pinLed, HIGH); // Escribir el valor 'ALTO' en el 'pinLed' (pin 5).
delay(1000); // Se hace una pausa de 1 segundo (1000 milisegundos).
digitalWrite(pinLed, LOW); // Escribir el valor 'BAJO' en el 'pinLed' (pin 5).
delay(1000); // Se hace una pausa de 1 segundo (1000 milisegundos).
contador++; // Incrementar la variable 'contador' una unidad.
// Una vez que la variable 'contador' es igual a 3 la condicin (3<3) establecida ya no se
cumple
// por lo tanto ya no se accede a esta parte del cdigo, as el diodo LED slo enciende 3
veces.
}
}
//[[[BUCLE (CICLO REPETITIVO) DE FUNCIONAMIENTO]]]
2.3. Operadores booleanos.
&& Y, AND, CONJUNCIN.
|| O, OR, DISYUNSIN.
! NO, NOT, NEGACIN.
15
2.2.2. Estructura de programacin elseif.
La sentencia Else if(condicional) se utiliza para trabajar
diversos tipos de valores para los cuales se debe realizar
alguna accin especfica, en ocasiones evitando la excesiva
anidacin de sentencias if() o ifelse().
16
2.2.2. Estructura de programacin elseif.
if (variable < 500)
{
// Instrucciones
}
else if (variable2 >= 1000)
{
// Instrucciones
}
else
{
// Instrucciones
}
17
Ejemplo 2.5. Elseif para la activacin de
salidas dependiendo de los valores en el
incremento de una variable.
En el ejemplo se utiliza una variable para realizar un
incremento de 0 a 3, cuando el conteo est en el valor 0 un
diodo LED se enciende y se hace una pausa de 5 segundos.
En el valor 1 se activa un motor y se hace una pausa de 5
segundos antes de avanzar. Cuando el contador se
encuentra en el valor 2 entonces se activa el buzzer
haciendo una pausa de 5 segundos tambin. Una vez que
el contador llega a 3 el sistema se reinicia.
18
19
int contador = 0; // Se establece la variable 'contador' la cual mantendr el
conteo que se especifca en los requerimientos del ejemplo.
int pinLed = 5; // Se establece la variable 'pinLed' para almacenar el nmero 5
del pin de la // tarjeta Arduino para el diodo LED.
int pinBuzzer = 11; // Se establece la variable 'pinBuzzer' para almacenar el
nmero 11 del pin de la // tarjeta Arduino para el buzzer.
int pinMotor = 8; // Se establece la variable 'pinMotor' para almacenar el
nmero 8 del pin de la // tarjeta Arduino para el relevador.
//[[[CONFIGURACIN]]]
void setup()
{
pinMode(pinLed, OUTPUT); // Se establece a 'pinLed' como una salida al pin de la
tarjeta Arduino.
pinMode(pinBuzzer, OUTPUT); // Se establece a 'pinBuzzer' como una salida al pin
de la tarjeta Arduino.
pinMode(pinRele, OUTPUT); // Se establece a 'pinRele' como una salida al pin de la
tarjeta Arduino.
}
20
//[[[BUCLE (CICLO REPETITIVO) DE FUNCIONAMIENTO]]]
void loop()
{
if(contador == 0) // Condicin: SI la variable 'contador' es IGUAL a CERO:
{
digitalWrite(pinLed, HIGH); // Se escribe un 'ALTO' al pin del diodo LED.
delay(5000); // Se hace una pausa de 5 segundos.
contador++; // Se incrementa en uno la variable 'contador'.
}
else if (contador == 1) // En otro caso condicin: SI la variable 'contador' es IGUAL
a UNO:
{
digitalWrite(pinRele, HIGH); // Se escribe un 'ALTO' al pin del RELEVADOR.
delay(5000); // Se hace una pausa de 5 segundos.
contador++; // Se incrementa en uno la variable 'contador'.
}

21
else if(contador == 2) // En otro caso condicin: SI la variable 'contador' es IGUAL a
DOS:
{
digitalWrite(pinBuzzer, HIGH); // Se escribe un 'ALTO' al pin del BUZZER.
delay(5000); // Se hace una pausa de 5 segundos.
contador++; // Se incrementa en uno la variable 'contador'.
}
else // Para cualquier otro caso, es decir, para cualquier otro valor de
la variable 'contador' que no sea 0, 1 o 2:
{
// Se apagan los tres dispositivos: LED, RELEVADOR y BUZZER
digitalWrite(pinLed, LOW);
digitalWrite(pinBuzzer, LOW);
digitalWrite(pinRele, LOW);

contador=0; // SE REINICIA EL CONTADOR ASIGNNDOLES EL VALOR DE 0
(CERO), PARA QUE EL CONTEO VUELVA A INICIAR.
}

}

Prctica 2.1

Nombre de la prctica.
Enclave de un Motor.

Descripcin general de la prctica.
Se utiliza el botn y un motor, cuando inicia el
sistema este se encuentra en espera de la pulsacin
del botn, una vez que ocurre esto se activa el motor
y as permanece hasta que nuevamente se pulse el
botn para desactivar el Motor.
22
23
int pinMoto = 8; // Se establece la variable 'pinMoto' para almacenar el
nmero 8 del pin de la // tarjeta Arduino para el Motor.
int pinBoton = 2; // Se establece la variable 'pinBoton' para almacenar el
nmero 2 del pin de la // tarjeta Arduino para el Botn.
int estadoBoton; // Se declara la variable 'estadoBoton' de tipo entera en la
que se guardar el estado del botn (CERO o UNO).
int enclavado=0; // Se declara la variable 'enclavado' de tipo entera con la
que se indicar dentro del programa si el relevador se encuentra en
// un estado enclavado (UNO) o si no se encuentra en estado
enclavado (CERO). Esta variable se inicializa con un valor
// igual a CERO (enclavado=0) porque por lgica el relevador
iniciar en un estado no enclavado, segn las especificaciones
// que indica la prctica.
//[[[CONFIGURACIN]]]
void setup()
{
pinMode(pinMoto, OUTPUT); // Se establece como una salida al 'pinMoto' (pin 8)
de la tarjeta Arduino
pinMode(pinBoton, INPUT); // Se establece como una salida al 'pinBoton' (pin 2)
de la tarjeta Arduino
}
24
//[[[BUCLE (CICLO REPETITIVO) DE FUNCIONAMIENTO]]]
void loop()
{
estadoBoton=digitalRead(pinBoton); // Se efecta la lectura del 'pinBoton' (pin 2) y el
valor obtenido se almacena en la variable 'estadoBoton'.

if((estadoBoton==HIGH) && (enclavado==0)) // Condicin: SI la variable 'estadoBoton' es
IGUAL a HIGH (botn presionado), Y TAMBIN SI la
{ // variable 'enclavado' es IGUAL a CERO (el relevador NO est
enclavado), entonces hacer lo siguiente:

digitalWrite(pinMoto,HIGH); // Se enva un 'ALTO' al pin del motor ('pinMoto')
enclavado=1; // Se cambia el valor de la variable 'enclavado' con la
finalidad de indicar que el relevador ahora se encuentra en
// un estado enclavado, haciendo que pase de valor CERO a
valor UNO.
delay(1000); // Se hace una pausa de 1 segundo(1000 milisegundos).

}
else if((estadoBoton==HIGH)&&(enclavado==1)) // Condicin: SI la variable 'estadoBoton'
es IGUAL a HIGH (botn presionado), Y TAMBIN SI la
{ // variable 'enclavado' es IGUAL a UNO (el relevador SI est
enclavado), entonces hacer lo siguiente:


25
digitalWrite(pinMoto,LOW); // Se enva un 'BAJO' al pin del Motor ('pinMoto')
enclavado=0; // Se cambia el valor de la variable 'enclavado'
con la finalidad de indicar que el relevador ahora ya no se encuentra en
// un estado enclavado, haciendo que pase de valor
UNO a valor CERO.
delay(1000); // Se hace una pausa de 1 segundo(1000
milisegundos).
}


}
//[[[BUCLE (CICLO REPETITIVO) DE FUNCIONAMIENTO]]]

Prctica 2.2.

Nombre de la prctica.
Incrementa y decrementa.

Descripcin general de la prctica.
Se tienen dos botones, del mismo modo se tiene
una variable de control la cual por medio de uno de
los dos botones ser incrementada, con el otro
botn se le harn decrementos a esta misma
variable. El nmero mximo es 10. El nmero
mnimo es cero, cuando se llega al lmite, tanto
inferior como superior, debe sonar el buzzer.
26
Proyecto 2.

Nombre del proyecto.
Encendido de una luz por medio del conteo de n nmero de
pulsos.

Descripcin del proyecto.
1. El sistema inicia y permanece siempre en espera
de contar los pulsos.
2. Debe existir una variable encargada de almacenar
los pulsos realizados, esta debe iniciar con un valor igual a 0
(cero).
3. Una vez que se ha iniciado el sistema este espera a
contar y almacenar los pulsos realizados a travs de un botn
conectado como una entrada digital en algn pin de la
tarjeta Arduino.
27

4. A partir de que se hace el primer pulso se queda
almacenado. Cuando se vuelve a marcar otro pulso este se
suma al nmero de pulsos contados anteriormente y as
sucesivamente.
5. Cuando se marca un pulso con el botn el sistema
debe esperar un periodo igual a 1 segundo antes de volver a
leer otro pulso, mientras tanto el sistema hace caso omiso a
los pulsos marcados dentro de ese periodo de tiempo.
6. Dentro del mismo periodo de tiempo, de 1 segundo,
se debe encender la luz, indicando que el pulso se ha ledo y
no se puede volver a pulsar hasta que dicha luz se desactive.
28
7. Una vez que la luz se desactiva, pasado 1 segundo
de tiempo, entonces es posible volver a marcar otro pulso.
8. El nmero mximo de pulsos contados y almacenados
debe ser IGUAL a 5.
9. Una vez que se han alcanzado los 5 pulsos lmite la
luz se debe encender por un periodo de 10 segundos, esto
indica que se han contado y almacenado las 5 pulsaciones
del botn.
10. Despus del periodo de 10 segundos la luz se
desactiva, del mismo modo el contador de pulsos debe volver
a iniciar desde cero, esto es como un RESET en el conteo.
11. Enseguida de lo anterior el sistema queda como
en el estado inicial, es decir, en espera de 5 nuevos pulsos
para activar la luz, de este modo el sistema vuelve a iniciar
con el proceso antes especificado.
29

Das könnte Ihnen auch gefallen