R06D - U1S4 - Inputs, Outputs, DDR

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 26

TALLER DE INTERNET DE LAS

COSAS
2019 – CICLO 1 MARZO
ARDUINO
ENTRADAS Y SALIDAS
La utilidad más evidente de una placa Arduino es
interaccionar con su entorno físico a través de sensores y
actuadores. Para ello, disponemos de varias funciones que
tratan señales de tipo digital o de tipo analógico.
ARDUINO
FUNCIONES
ENTRADAS Y SALIDAS: DIGITALES
pinMode()
configura un pin digital como entrada o como salida, según si el valor de su
segundo parámetro es la constante predefinida INPUT o bien OUTPUT,
respectivamente.
Esta función es necesaria porque los pines digitales a priori pueden actuar
como entrada o salida, pero hay que definir previamente si queremos que
actúen de una forma u de otra. Es por ello que esta función se suele escribir
dentro de “setup()”.

SINTAXIS:
pinMode(#dePin, constante);

pinMode(13, OUTPUT);
SALIDAS: DIGITALES
digitalWrite()
Envía un valor ALTO (HIGH) o BAJO (LOW) a un pin digital; es decir, tan solo es
capaz de enviar dos valores posibles. Por eso, de hecho, hablamos de salida
“digital”.

El pin al que se le envía la señal se especifica como primer parámetro y el valor


concreto de esta señal se especifica como segundo parámetro.

SINTAXIS:
digitalWrite(#dePin, constante);

digitalWrite(13, HIGH);
ENTRADAS: DIGITALES
digitalRead()
devuelve el valor leído del pin digital, cuyo número se haya especificado como
parámetro. Este valor de retorno es de tipo “int” y puede tener dos únicos
valores, la constante HIGH (1) o LOW (0).

SINTAXIS:
digitalRead(#dePin);

digitalRead(13);
PONGAMOS LO APRENDIDO EN PRÁCTICA
MANEJO DE
ENTRADAS Y
SALIDAS
DIGITALES
Componentes:
 01 Protobord
 01 Arduino Uno R3
 06 LED
 06 Resistencia 220Ω
 Cables Dupont MM
SECUENCIA DE
LEDS
Colocar varios leds, uno seguido
de otro para que estos sigan una
secuencia. Como por ejemplo se
enciendan uno después de otro de
un lado a otro
MANEJO DE I/O USANDO REGISTROS DE PUERTOS

Los Registros de puertos permiten la manipulación de los pines de I/O del


microcontrolador en una placa Arduino.

Los integrados utilizados en la placa Arduino (ATmega8 y ATmega168) tienen 3


grupos de puertos:

 B (pines digitales 8 al 13)


 C (pines de entrada analogica A0 a A5)
 D (pines digitales 0 al 7)

Cada Puerto esta controlado por estos 3 registros, que a su vez están definidos
como variables en el lenguaje Arduino.
REGISTROS DE PUERTOS: DDR/PORT

El registro DDR, determina si un pin es una entrada (INPUT) o una salida


(OUTPUT)

El registro PORT controla si el pin se encuentra en estado ALTO (HIGH) o estado


BAJO (LOW)

Los registros DDR y PORT ambos permiten ser escritos y leídos, para definir
como activos se representarán con un bit 1 y para desactivarlos ser definirán
con un bit 0
REGISTROS DE PUERTOS: DDR/PORT
EJEMPLOS: DDR/PORT
Tomando como ejemplo la imagen inferior, deberemos utilizar los registros
DDR del grupo D (pines de 0 al 8) para definir la dirección de cada puerto
(INPUT/OUTPUT).

DDRD = B11111100; // Define los pines de 2 al 8 como OUTPUTS (1)

Para activar los puertos deberemos utilizar los registros PORT con su
respectivo grupo.

PORTD = B10000100; // define los pines digitales 8 y 2 en HIGH


EJEMPLO DDR
PWM: PULSE WIDTH MODULATION
una señal PWM es una señal digital cuadrada que
simula ser una señal analógica. El valor simulado de
la señal analógica dependerá de la duración que
tenga el pulso digital.

Por ejemplo si valor es 0, significa que su pulso no


dura nada y por tanto su valor analógico “simulado”
será el mínimo (0V). Si vale 255, que es el máximo
valor posible su pulso dura todo el período de la
señal y por tanto su valor analógico “simulado” será
el máximo ofrecido por la placa (5 V).
PWM: PULSE WIDTH MODULATION

Cualquier otro valor entre estos dos extremos (0 y 255)


implica un pulso de una longitud intermedia (por ejemplo,
el valor 128 generará una onda cuadrada cuyo pulso es de
la misma longitud que la de su estado bajo) y por tanto, un
valor analógico “simulado” intermedio (en el caso anterior,
2,5 V).
SALIDAS: ANALÓGICAS
analogWrite()
Envía un valor de tipo “byte, que representa una señal PWM, a un pin digital configurado como
OUTPUT.

No todos los pines digitales pueden generar señales PWM: en la placa Arduino UNO por
ejemplo solo son los pines 3, 5, 6, 9, 10 y 11.

SINTAXIS:
analogWrite(#dePin, #deCiclos);

analogWrite(13, 200);
ENTRADAS: ANALÓGICAS
analogRead()
Devuelve el valor leído del pin de entrada analógico cuyo número (0, 1, 2...) se ha especificado como
parámetro. Este valor se obtiene mapeando proporcionalmente la entrada analógica obtenida (que
debe oscilar entre 0 y un voltaje llamado voltaje de referencia, el cual por defecto es 5 V) a un valor
entero entre 0 y 1023. Esto implica que la resolución de lectura es de 5V/1024, es decir, de 0,0049 V.

SINTAXIS:
analogRead(#dePin);

analogRead(2);
ENTRADAS
ANALÓGICAS
Componentes:
 01 Protobord
 01 Arduino Uno R3
 01 LED
 01 Resistencia 220Ω
 01 Potenciómetro 1KΩ
 Cables Dupont MM
MONITOR SERIAL
El monitor serial es el ‘cable’ entre el ordenador y el Arduino. Permite enviar y recibir mensajes de texto,
útiles para la depuración y también control de Arduino. Por ejemplo, es posible enviar comandos desde el
ordenador para encender LEDs.
MONITOR SERIAL
MONITOR SERIAL
El monitor de puerto serie es una pequeña utilidad integrada dentro de IDE
Standard que nos permite enviar y recibir fácilmente información a través del
puerto serie. Su uso es muy sencillo, y dispone de dos zonas, una que muestra
los datos recibidos, y otra para enviarlos. Estas zonas se muestran en la
siguiente imagen.

SINTAXIS:
void setup(){
Serial.begin(9600); //iniciamos el puerto serie
}

void loop(){
Serial.println(“impresion de linea con retorno de carro);
Serial.print(“Impresion de una linea: ");
}
PREGUNTAS

También podría gustarte