Alumno(a): Gutierrez Huayhua Hida luz
Electrónica y Hardware de
Computadoras
Laboratorio 09
“Programación Arduino:
Entradas y salidas analógicas”
1
TECSUP Programación Arduino
Programación Arduino: Entradas y salidas analógicas
Objetivos
Reconocer las entradas y salidas analógicas de la placa Arduino UNO.
Desarrollar sketchs haciendo uso de funciones para entradas y salidas
analógicas.
Analizar sketchs para identificar la función que realiza.
Equipos y Materiales
Un computador personal con acceso a internet.
Introducción:
Hasta el momento se ha trabajado con las entradas y salidas digitales, que al tomar
solo dos posibles valores, no son muy difíciles de trabajar. Sin embargo, en la
naturaleza encontramos muchos parámetros que son analógicos, por ejemplo, la
temperatura, presión, flujo, velocidad, sonido, intensidad de luz, etc, los cuales, al
tomar muchos posibles valores, se requieren elementos que nos permitan
acondicionarlos y trabajarlos como digitales.
En este laboratorio vamos a experimentar con algunos de ellos.
Procedimiento
Diodo LED
1. Sabemos que el diodo LED tiene la característica de emitir luz cuando conduce, y la
cantidad de luz que emite va a depender de la corriente que circula por él. Es por
esta razón que se conecta una resistencia en serie; por lo tanto, de acuerdo al valor
de resistencia, circulará mayor o menor cantidad de corriente, y con ello, iluminará
con mayor o menor intensidad.
Pero también podemos controlar la cantidad de corriente, variando el voltaje que se
le entrega al diodo LED.
2. Un caso especial de LED, es el tricolor, el cual, tiene internamente tres led, rojo,
verde y azul (los colores primarios) y con este Led vamos a trabajar.
2
TECSUP Programación Arduino
3. En primer lugar, realizaremos un sketch que permita prender y apagar el LED de
cada color, con un intervalo de 500 milisegundos.
void setup()
{
pinMode(11, OUTPUT);
pinMode(10, OUTPUT);
pinMode(9, OUTPUT);
}
void loop()
{
digitalWrite(11, HIGH);
delay(500); //
digitalWrite(11, LOW);
delay(500); //
digitalWrite(10, HIGH);
delay(500); //
digitalWrite(10, LOW);
delay(500); //
digitalWrite(9, HIGH);
delay(500); //
digitalWrite(9, LOW);
delay(500); //
}
4. Ahora vamos a desarrollar un sketch que encienda el led rojo, pero con 6 niveles de
intensidad; de mayor a menor. El mismo circuito anterior.
3
TECSUP Programación Arduino
void setup()
{
pinMode(11, OUTPUT);
}
void loop()
{
analogWrite(11, 255);
delay(500); //
analogWrite(11, 150);
delay(500); //
analogWrite(11, 80);
delay(500); //
analogWrite(11, 20);
delay(500); //
analogWrite(11, 10);
delay(500); //
analogWrite(11, 0);
delay(500); //
}
5. ¿Cuáles son esos 6 niveles? Indique su equivalente aproximado en voltios.
6. Sabemos que con la combinación de los colores primarios, podemos obtener
toda una gama de colores. Para ello debemos encender cada LED con
diferentes valores. Se muestra un ejemplo. El mismo circuito anterior.
void setup()
pinMode(11, OUTPUT);
pinMode(10, OUTPUT);
pinMode(9, OUTPUT);
4
TECSUP Programación Arduino
void loop()
analogWrite(11, 150);
analogWrite(10, 150);
analogWrite(9, 100);
delay(500); // Wait for 1000 millisecond(s)
analogWrite(11, 50);
analogWrite(10, 255);
analogWrite(9, 50);
delay(500); // Wait for 1000 millisecond(s)
7. Luego realizar los cambios para obtener el amarillo, blanco, magenta y cian.
Motor DC
8. Así como podemos controlar intensidad de luz de un LED, también podemos
controlar la velocidad y giro de un motor DC. A continuación el circuito y programa.
5
TECSUP Programación Arduino
9. El terminal de la derecha es el positivo (rojo) y el de la izquierda el negativo (negro),
el sketch realizará el cambio de giro. Tener presente que no se puede realizar el
cambio de giro abruptamente, por eso es necesario apagarlo por un instante, previo
al cambio de giro.
void setup() {
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
void loop()
analogWrite(6,255);
analogWrite(5,0);
delay(2000); // Wait for 1000 millisecond(s)
analogWrite(6,0);
analogWrite(5,0);
delay(1000);
analogWrite(5,255);
analogWrite(6,0);
delay(2000); // Wait for 1000 millisecond(s)
analogWrite(6,0);
analogWrite(5,0);
delay(2000);
IMPORTANTE:
Es importante hacer notar que el motor no se debe alimentar directamente de la
salidas de Arduino; solo se está haciendo para fin demostrativo. Para fines prácticos,
se debe hacer por medio de transistores.
Lima, 2023
TECSUP