Sesion3 entradas y salidas Analógicas.pdf

19
Lic. Gerardo Espinoza Ramírez Instituto Tecnológico Superior de Ciudad Serdán.

Transcript of Sesion3 entradas y salidas Analógicas.pdf

Page 1: Sesion3 entradas y salidas Analógicas.pdf

Lic. Gerardo Espinoza Ramírez Instituto Tecnológico Superior de Ciudad Serdán.

Page 2: Sesion3 entradas y salidas Analógicas.pdf

3.1.1. Lectura analógica

Sentencia analogRead() valor = analogRead(Pin);

Page 3: Sesion3 entradas y salidas Analógicas.pdf

Ejemplo 3.1. Lectura de un potenciómetro.

En este ejemplo se utiliza un pin analógico como entrada para leer los valores de un potenciómetro, una vez que la lectura del potenciómetro alcanza un valor de 500 entonces se enciende un diodo LED.

Page 4: Sesion3 entradas y salidas Analógicas.pdf

//[[[DECLARACIÓN DE VARIABLES]]] int valorPot; // Se declara la variable 'valorPot' la cual guardará el valor leído del potenciómetro. int pinLed=5; // Se declara la variable 'pinLed' que almacena el valor 5 del pin de la tarjeta Arduino. //[[[DECLARACIÓN DE VARIABLES]]] //[[[CONFIGURACIÓN (SE EJECUTA SÓLO UNA VEZ)]]] void setup() { pinMode(pinLed, OUTPUT); // Se establece a 'pinLed' como una salida digital. } //[[[CONFIGURACIÓN (SE EJECUTA SÓLO UNA VEZ)]]]

Page 5: Sesion3 entradas y salidas Analógicas.pdf

//[[[BUCLE (CICLO REPETITIVO) DE FUNCIONAMIENTO]]] void loop() { valorPot=analogRead(A0); // Se lee el valor analógico del pin 'A0' donde se encuentra conectado el potenciómetro, una vez leído el valor se guarda en // la variable 'valorPot'. if(valorPot>=500) // Condición: SI la variable 'valorPot' es MAYOR O IGUAL a 500: { digitalWrite(pinLed, HIGH); // Escribir un 'ALTO' en el 'pinLed'. } else // En otro caso. { digitalWrite(pinLed, LOW); // Escribir un 'BAJO' en el 'pinLed'. } }//[[[BUCLE (CICLO REPETITIVO) DE FUNCIONAMIENTO]]]

Page 6: Sesion3 entradas y salidas Analógicas.pdf

3.2 Uso del PWM.

Page 7: Sesion3 entradas y salidas Analógicas.pdf

Sentencia analogWrite() analogWrite(pin, valor);

3.2.1 Escritura analógica

Page 8: Sesion3 entradas y salidas Analógicas.pdf

Ejemplo 3.2. Encendido de un diodo LED por PWM.

En este ejemplo se utiliza la modulación por ancho de pulso para encender un diodo LED de manera gradual, esto se hace incrementando una variable de uno en uno iniciando desde cero, una vez que se llega al valor de 255 el mismo diodo LED se debe apagar, se vuelve a iniciar el proceso anterior una vez que se reinicia la tarjeta Arduino, mientras no se haga esto el diodo LED permanece apagado.

Page 9: Sesion3 entradas y salidas Analógicas.pdf

void setup() { pinMode(pinLed, OUTPUT); // Se establece a 'pinLed' como una salida digital. } void loop() { if(brillo <= 255) // Condición: SI la variable 'brillo' es MENOR O IGUAL a 255: { analogWrite(pinLed, brillo); // Se escribe el valor actual de la variable 'brillo' en el 'pinLed' (pin 5). delay(30); // Se hace una pequeña pausa para evitar que el aumento se vaya de forma corrida. brillo = brillo + 1; // Se incrementa en uno a la variable 'brillo' para que de forma gradual se incremente la intensidad de luz que emite el diodo LED. } else // En otro caso. { // Si la variable brillo ha alcanzado el valor máximo que es 255 se hace lo siguiente: digitalWrite(pinLed, LOW); // Se escribe en el 'pinLed' un 'BAJO' para apagar el diodo LED. } }

Page 10: Sesion3 entradas y salidas Analógicas.pdf

3.2.2. Ciclos repetitivos.

Ciclo For. for(inicialización; condición; expresión) { Instrucciones; }

Page 11: Sesion3 entradas y salidas Analógicas.pdf

3.2.2. Ciclos repetitivos

for (i=0; i<20; i++) { digitalWrite(13, HIGH); delay(500); digitalWrite(13, LOW); delay(500); }

Page 12: Sesion3 entradas y salidas Analógicas.pdf

Ejemplo 3.3. Encendido de un diodo LED utilizando ciclo for.

En este ejemplo se utiliza la modulación por ancho de pulso para encender un diodo LED de manera gradual esto se hace utilizando el ciclo repetitivo for iniciando en el valor cero hasta un valor de 255, incrementando en intervalos de 3.

Page 13: Sesion3 entradas y salidas Analógicas.pdf

int brillo; // Se declara la variable 'brillo'. int pinLed=5; // Se declara la variable 'pinLed' que almacena el valor 5 del pin de la tarjeta Arduino. void setup() { pinMode(pinLed, OUTPUT); // Se establece a 'pinLed' como una salida digital. } void loop() { for(brillo=0;brillo<=255;brillo=brillo+3) // Ciclo: INICIA con la variable 'brillo' IGUAL a CERO; { // SE REPITE mientras 'brillo' sea MENOR O IGUAL a 255; SE INCREMENTA en 3 unidades en cada repetición. analogWrite(pinLed, brillo); // Se escribe el valor actual de la variable 'brillo' en el 'pinLed'. delay(30); // Se hace una pequeña pausa para evitar que el aumento se vaya de forma corrida. } }

Page 14: Sesion3 entradas y salidas Analógicas.pdf

Practica 3.1. Diodo LED incremento y decremento con PWM.

Se va a aumentar y disminuir la luminosidad de un diodo led usando PWM. Para ello se conecta un diodo LED al pin 5, implementando un ciclo for que va desde 0 hasta 255 se debe hacer incrementar la intensidad de luz del diodo LED, una vez terminado este ciclo se debe iniciar otro pero con los parámetros de 255 a 0 para decrementar la intensidad de luz del mismo diodo LED.

Page 15: Sesion3 entradas y salidas Analógicas.pdf

int brillo; // Se declara la variable 'brillo'. int pinLed=5; // Se declara la variable 'pinLed' que almacena el valor 5 del pin de la tarjeta Arduino. void setup() { pinMode(pinLed, OUTPUT); // Se establece a 'pinLed' como una salida digital. } void loop() { for(brillo=0;brillo<=255;brillo++) // Ciclo: INICIA con la variable 'brillo' IGUAL a CERO; { // SE REPITE mientras 'brillo' sea MENOR O IGUAL a 255; SE INCREMENTA en una unidad en cada repetición. analogWrite(pinLed, brillo); // Se escribe el valor actual de la variable 'brillo' en el 'pinLed'. delay(30); // Se hace una pequeña pausa. } for(brillo=255;brillo>=0;brillo--) // Ciclo: INICIA con la variable 'brillo' IGUAL a 255; { // SE REPITE mientras 'brillo' sea MAYOR O IGUAL a CERO; SE DECREMENTA en una unidad en cada repetición. analogWrite(pinLed, brillo); // Se escribe el valor actual de la variable 'brillo' en el 'pinLed'. delay(30); // Se hace una pequeña pausa. } }

Page 16: Sesion3 entradas y salidas Analógicas.pdf

Practica 3.2. Luz de LED en función de la luz en ambiente.

Se leerá el valor analógico de una FOTORESISTENCIA. Cuando la lectura del valor de la fotoresistencia se encuentre entre 0 y 512 el LED debe estar apagado, si el valor leído se encuentra entre valores 512 y 1024 el LED debe encender.

Page 17: Sesion3 entradas y salidas Analógicas.pdf

int pinLed=5; // Se declara la variable 'pinLed' que almacena el valor 5 del pin de la tarjeta. int estadoFTR; // Se declara la variable 'estadoFTR' donde se guardará el valor entero analógico leído desde la FOTORESISTENCIA. void setup() { pinMode(pinLed, OUTPUT); // Se establece a 'pinLed' como una salida digital. } void loop() { estadoFTR=analogRead(A0); // Se lee y guarda el valor analógico proporcionado por la FOTORESISTENCIA. if(estadoFTR<512) // Condición: SI la variable 'estadoFTR' es MENOR a 512: { digitalWrite(pinLed, LOW); // Se escribe un 'BAJO' en 'pinLed'. } else // En otro caso. { // Entonces la variable 'estadoBoton' es mayor a 512, es por eso que accede a esta sección. digitalWrite(pinLed, HIGH); // Se escribe un 'ALTO' en 'pinLed'. } }

Page 18: Sesion3 entradas y salidas Analógicas.pdf

Practica 3.3. Medidor de luz ambiente.

Se utiliza una fotorresistencia para captar la luz en el ambiente. Habrá tres niveles de intensidad de luz medibles, BAJO, MEDIO, ALTO. Si el valor analógico leído de la fotorresistencia se encuentra entre 0 y 300 entonces el LED enciende a una intensidad de 80. Si se encuentra entre 300 y 600 enciende a 160, y si el valor leído es mayor a 600 entonces el LED enciende a 255. Esto se hace utilizando la propiedad PWM sobre el diodo LED.

Page 19: Sesion3 entradas y salidas Analógicas.pdf

Proyecto 3. Incrementar luminosidad de LED con un botón.

Se tiene que incrementar la luminosidad de un diodo LED conectado al pin 5 a través de la pulzación de un botón. El botón estará conectado al pin 2. Con la pulsación del botón aumenta la luminosidad del LED hasta llegar a su valor máximo (255). Una vez que se llega al valor máximo el sistema se reinicia, el LED se apaga y vuelve a empezar.