Post on 12-Jun-2020
Práctica 3. Entradas/Salidas Digitales con Arduino
Manuel Jiménez Buendía
José Alfonso Vera Repullo Departamento de Tecnología Electrónica
Noviembre 2013
Índice
Electrónica Industrial 2
Índi
ce
1. Conocimientos previos. 1.1. Identificación y medida de resistencias.
1.2. Repaso de medidas de tensión, continuidad e intensidad con el polímetro
1.3. Polarización de un diodo LED.
1.4. Conexión de entradas. Pull-Up y Pull-Down. 1.5. Placa de pruebas.
2. Utilización de LEDs, sensores Tilt, interruptores y Buzzers con Arduino.
2.1 Caso de estudio propuesto.
2.2 Esquemático propuesto.
2.3 Código fuente.
3. Uso de LEDs RGB con Arduino. 3.1 El LED RGB.
3.2 Esquemático propuesto.
3.3 Código fuente.
4. Diseño propuesto.
Conocimientos Previos
Electrónica Industrial 3
Resistencias Para obtener el valor nominal y la tolerancia de una resistencia se utiliza un código de colores:
Verde-Azul-Amarillo-Marrón
Rojo-Naranja-Violeta-Negro-Marrón
Conocimientos Previos
Electrónica Industrial 4
Repaso del polímetro
Conocimientos Previos
Electrónica Industrial 5
Polarización de un diodo LED Identificación de terminales Circuito de Polarización
Comprobación y medida de diodos
Conocimientos Previos
Electrónica Industrial 6
Placa de pruebas (breadboard)
Conocimientos Previos
Electrónica Industrial 7
Conexión de entradas Cuando una línea digital de entrada de un micro-controlador no está conectada a nada ofrece un valor por defecto (‘1’ ó ‘0’) que depende del diseño del micro-controlador.
‘1’ lógico en reposo
Solución: Conexión de resistencias de Pull-Up y Pull-Down
‘0’ lógico en reposo
Arduino incluye resistencias internas de pull-up que pueden ser utilizadas al configurar el pin de entrada digital.
Syntax pinMode(pin, mode) Parameters pin: the number of the pin whose mode you wish to set. mode: INPUT, OUTPUT, or INPUT_PULLUP. Returns None
LEDs, sensores Tilt, SWs y Buzzers
Electrónica Industrial 8
Caso de estudio Se pretende simular el sistema de un camión para la activación de la luz de marcha atrás, así como el aviso de que la bañera está en movimiento. • Un interruptor simula la selección de la marcha atrás.
• Un sensor de tipo Tilt indica que la bañera está en movimiento.
• Un diodo LED simula la luz de marcha atrás.
• Un buzzer indica de un modo sonoro que la bañera está en movimiento.
LEDs, sensores Tilt, SWs y Buzzers
Electrónica Industrial 9
Esquemático propuesto
• LED. Cátodo-GND. Anódo-resistencia de 330 Ω-pin 13.
• Buzzer. Terminal negativo-GND. Terminal positivo-resistencia 330 Ω-pin 12.
• Interruptor. Extremo-GND. Terminal central-pin 11.
• Tilt sensor. GND-Tilt sensor-pin 10.
LEDs, sensores Tilt, SWs y Buzzers
Electrónica Industrial 10
Código fuente
int ledPin = 13; int buzzerPin = 12; int switchPin = 11; int tiltSensorPin = 10; int switchValue = 0; int tiltValue = 0; void setup() pinMode(ledPin, OUTPUT); pinMode(buzzerPin, OUTPUT); pinMode(switchPin, INPUT_PULLUP); pinMode(tiltSensorPin, INPUT_PULLUP);
void loop() switchValue = digitalRead(switchPin); if (switchValue == LOW) digitalWrite(ledPin, HIGH); tiltValue = digitalRead(tiltSensorPin); if (tiltValue == LOW) digitalWrite(buzzerPin, HIGH); delay(500); digitalWrite(buzzerPin, LOW); else digitalWrite(ledPin, LOW); delay(500);
LEDs RGB
Electrónica Industrial 11
El LED RGB Engloba tres diodos LED en el mismo encapsulado: Rojo, Azul y Verde. Este diseño consiste en poder activar los tres canales del LED RGB de manera independiente (tres botones). Para identificar el terminal común se puede utilizar el polímetro.
LEDs RGB
Electrónica Industrial 12
Esquemático propuesto
• Pulsador componente B. Pull-Up. Pin 8.
• Pulsador componente G. Pull-Down. Pin 9.
• Pulsador componente R. Pull-Up. Pin 10.
• LED RGB. Conexión ánodo (+) común. Las componentes R, G y B, están conectadas con los pines 13, 12 y 11, respectivamente.
• Las resistencias de los pulsadores son de 10 kΩ.
• Las resistencias de los canales del LED RGB son de 330 Ω.
LEDs RGB
Electrónica Industrial 13
Código fuente
int ledRPin = 13; int ledGPin = 12; int ledBPin = 11; int swRPin = 10; int swGPin = 9; int swBPin = 8; int r = 0, g = 0, b = 0; void setup() pinMode(ledRPin, OUTPUT); pinMode(ledGPin, OUTPUT); pinMode(ledBPin, OUTPUT); pinMode(swRPin, INPUT); pinMode(swGPin, INPUT); pinMode(swBPin, INPUT);
void loop() r = digitalRead(swRPin); g = digitalRead(swGPin); b = digitalRead(swBPin); if (r == LOW) digitalWrite(ledRPin, LOW); else digitalWrite(ledRPin, HIGH); if (g == HIGH) digitalWrite(ledGPin, LOW); else digitalWrite(ledGPin, HIGH); if (b == LOW) digitalWrite(ledBPin, LOW); else digitalWrite(ledBPin, HIGH);
Diseño Propuesto
Electrónica Industrial 14
Descripción Emplear los conocimientos adquiridos durante la prácticas para diseñar una luz navideña que realice una secuencia en uno o varios LEDs, y que además incluya una secuencia sonora usando el buzzer. La selección de la secuencia puede ser automática o utilizar interruptores y pulsadores para elegir una secuencia determinada. Se puede utilizar el LED RGB, los LEDs simples, así como una combinación de los anteriores. Para facilitar la generación de tonos se puede utilizar la biblioteca “tone” de Arduino. Se recomienda abrir el ejemplo “toneMelody” (ArchivoEjemplosDigital).
Syntax tone(pin, frequency) tone(pin, frequency, duration) Parameters pin: the pin on which to generate the tone frequency: the frequency of the tone in hertz - unsigned int duration: the duration of the tone in milliseconds (optional) - unsigned long
Syntax noTone(pin) Parameters pin: the pin on which to stop generating the tone
Manuel Jiménez Buendía José Alfonso Vera Repullo Universidad Politécnica de Cartagena Campus Muralla del Mar, s/n 30202 Cartagena
Tel. +34 968 32 54 75 +34 968 33 88 88 Fax. +34 968 32 53 45 E-mail jose.vera@upct.es manuel.jimenez@upct.es Www www.cincubator.com