0% encontró este documento útil (0 votos)
91 vistas7 páginas

Funciones Esenciales de Arduino

Las funciones digitalRead(), digitalWrite() y pinMode() permiten leer, escribir y configurar los pines digitales de Arduino. La función digitalRead() lee el valor HIGH o LOW de un pin, digitalWrite() establece un pin en HIGH o LOW, y pinMode() configura un pin como entrada o salida. Otras funciones como abs() calculan valores absolutos, constrain() restringe valores dentro de un rango y map() mapea valores de un rango a otro.

Cargado por

Ivon Maritza U G
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
91 vistas7 páginas

Funciones Esenciales de Arduino

Las funciones digitalRead(), digitalWrite() y pinMode() permiten leer, escribir y configurar los pines digitales de Arduino. La función digitalRead() lee el valor HIGH o LOW de un pin, digitalWrite() establece un pin en HIGH o LOW, y pinMode() configura un pin como entrada o salida. Otras funciones como abs() calculan valores absolutos, constrain() restringe valores dentro de un rango y map() mapea valores de un rango a otro.

Cargado por

Ivon Maritza U G
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

PROGRAMACIÓN EN ARDUINO: FUNCIONES

digitalRead ()

Descripción
Lee el valor de un pin digital especificado, ya sea HIGH o LOW.

Sintaxis
digitalRead(pin)

Parámetros
pin: el número de pin de Arduino que desea leer

Retorno
HIGH o LOW

Código de ejemplo
Establece el pin 13 al mismo valor que el pin 7, declarado como entrada.
int ledPin = 13; // LED connected to digital pin 13
int inPin = 7; // pushbutton connected to
digital pin 7
int val = 0; // variable to store the read value

void setup() {
pinMode(ledPin, OUTPUT); // sets the digital pin 13 as
output
pinMode(inPin, INPUT); // sets the digital pin 7 as
input
}

void loop() {
val = digitalRead(inPin); // read the input pin
digitalWrite(ledPin, val); // sets the LED to the button's
value
}

Notas y advertencias
Si el pin no está conectado a nada, digitalRead()puede regresar HIGH o LOW (y esto
puede cambiar al azar).
Los pines de entrada analógica se pueden usar como pines digitales, denominados A0, A1, etc. La
excepción son los pines A6 y A7 de Arduino Nano, Pro Mini y Mini, que solo se pueden usar
como entradas analógicas.

DE-F-025 V.04
PROGRAMACIÓN EN ARDUINO: FUNCIONES

digitalWrite ()

Descripción
Escriba un valor HIGHo LOWen un pin digital.

Si el pin se ha configurado como OUTPUTcon pinMode(), su voltaje se establecerá en el valor


correspondiente: 5V (o 3.3V en placas de 3.3V) para HIGH, 0V (tierra) para LOW.
Si el pin está configurado como un INPUT, digitalWrite()habilitará ( HIGH) o
deshabilitará ( LOW) el pullup interno en el pin de entrada. 

Se recomienda configurar pinMode()a INPUT_PULLUPpara habilitar la resistencia pull-up


interna. 

Si no configura el pinMode()to OUTPUTy no conecta un LED a un pin, al


llamar digitalWrite(HIGH), el LED puede aparecer atenuado. Sin un ajuste
explícito pinMode(), digitalWrite()habrá habilitado la resistencia de pull-up interna, que
actúa como una gran resistencia limitadora de corriente.

Sintaxis
digitalWrite(pin, value)

Parámetros
pin: el número de pin de Arduino. value: HIGHo LOW.

Retorno
Nada

Código de ejemplo
El código hace que el pin digital 13  OUTPUT y lo alterna alternando entre HIGH ya LOW un
segundo ritmo.
void setup() {
pinMode(13, OUTPUT); // sets the digital pin 13 as output
}

void loop() {
digitalWrite(13, HIGH); // sets the digital pin 13 on
delay(1000); // waits for a second
digitalWrite(13, LOW); // sets the digital pin 13 off
delay(1000); // waits for a second
}

DE-F-025 V.04
PROGRAMACIÓN EN ARDUINO: FUNCIONES

Notas y advertencias
Los pines de entrada analógica se pueden usar como pines digitales, denominados A0, A1, etc. La
excepción son los pines A6 y A7 de Arduino Nano, Pro Mini y Mini, que solo se pueden usar
como entradas analógicas.

pinMode ()

Descripción

Configura el pin especificado para que se comporte como entrada o como salida. Consulte
la página de Pines digitales para obtener detalles sobre la funcionalidad de los pines.

A partir de Arduino 1.0.1, es posible habilitar las resistencias pullup internas con el
modo INPUT_PULLUP. Además, el INPUT modo deshabilita explícitamente las dominadas
internas.

Sintaxis

pinMode(pin, mode)

Parámetros

pin: el número de pin de Arduino para establecer el modo.


mode: INPUT, OUTPUTO INPUT_PULLUP. Consulte la página de Pines digitales para obtener
una descripción más completa de la funcionalidad.

Devoluciones

Nada

Código de ejemplo

El código hace el pin digital 13 OUTPUTy lo alterna HIGHyLOW


void setup() {
pinMode(13, OUTPUT); // sets the digital pin 13 as output
}

void loop() {
digitalWrite(13, HIGH); // sets the digital pin 13 on
delay(1000); // waits for a second
digitalWrite(13, LOW); // sets the digital pin 13 off
delay(1000); // waits for a second
}
3

DE-F-025 V.04
PROGRAMACIÓN EN ARDUINO: FUNCIONES

Notas y advertencias

Los pines de entrada analógica se pueden utilizar como pines digitales, denominados A0, A1, etc.

abs()

Descripción
Calcula el valor absoluto de un número.

Sintaxis

abs(x)
Parámetros

x: el número

Devoluciones

x: si x es mayor o igual que 0


-x.: si x es menor que 0.
Notas y advertencias

Debido a la forma en que se implementa la función abs (), evite usar otras funciones dentro de los
corchetes, ya que puede dar lugar a resultados incorrectos.

abs(a++); // avoid this - yields incorrect results

// use this instead:


abs(a);
a++; // keep other math outside the function

constrain()

DE-F-025 V.04
PROGRAMACIÓN EN ARDUINO: FUNCIONES

Descripción
Restringe un número para que esté dentro de un rango.

Sintaxis
constrain(x, a, b)

Parámetros
x: el número para restringir Tipos de datos permitidos: todos los tipos de datos.
a: el extremo inferior del rango. Tipos de datos permitidos: todos los tipos de datos.
b: el extremo superior del rango. Tipos de datos permitidos: todos los tipos de datos.

Devoluciones
x: si x está entre ay b.
a: si x es menor que a.
b: si x es mayor que b.
Código de ejemplo
El código limita los valores del sensor entre 10 y 150.
sensVal = constrain(sensVal, 10, 150); // limits range of sensor
values to between 10 and 150

Notas y advertencias
Debido a la forma en constrain()que se implementa la función, evite usar otras funciones
dentro de los corchetes, puede dar lugar a resultados incorrectos.
Este código producirá resultados incorrectos:
int constrainedInput = constrain(Serial.parseInt(), minimumValue,
maximumValue); // avoid this
Use esto en su lugar:
int input = Serial.parseInt(); // keep other operations outside
the constrain function
int constrainedInput = constrain(input, minimumValue,
maximumValue);

DE-F-025 V.04
PROGRAMACIÓN EN ARDUINO: FUNCIONES

map()

Descripción
Vuelve a mapear un número de un rango a otro. Es decir, un valor
de fromLow se asignaría a toLow , un valor de fromHigh a toHigh , valores intermedios a
valores intermedios, etc.
No restringe los valores dentro del rango, porque los valores fuera de rango a veces son
intencionados y útiles. La constrain()función puede usarse antes o después de esta función,
si se desean límites a los rangos.
Tenga en cuenta que los "límites inferiores" de cualquiera de los rangos pueden ser mayores o
menores que los "límites superiores", por lo que la map()función se puede utilizar para invertir
un rango de números, por ejemplo
y = map(x, 1, 50, 50, 1);
La función también maneja bien los números negativos, de modo que este ejemplo
y = map(x, 1, 50, 50, -100);
también es válido y funciona bien.
La map()función usa matemáticas enteras, por lo que no generará fracciones, cuando las
matemáticas podrían indicar que debería hacerlo. Los residuos fraccionarios se truncan y no se
redondean ni promedian.
Sintaxis
map(value, fromLow, fromHigh, toLow, toHigh)
Parámetros
value: el número a mapear.
fromLow: el límite inferior del rango actual del valor.
fromHigh: el límite superior del rango actual del valor.
toLow: el límite inferior del rango objetivo del valor.
toHigh: el límite superior del rango objetivo del valor.
Devoluciones
El valor mapeado.

DE-F-025 V.04
PROGRAMACIÓN EN ARDUINO: FUNCIONES

Código de ejemplo
/* Map an analog value to 8 bits (0 to 255) */
void setup() {}

void loop() {
int val = analogRead(0);
val = map(val, 0, 1023, 0, 255);
analogWrite(9, val);
}
Apéndice
Para los inclinados a las matemáticas, aquí está toda la función
long map(long x, long in_min, long in_max, long out_min, long
out_max) {
return (x - in_min) * (out_max - out_min) / (in_max - in_min) +
out_min;
}
Notas y advertencias
Como se mencionó anteriormente, la función map () usa matemáticas enteras. Entonces, las
fracciones podrían suprimirse debido a esto. Por ejemplo, fracciones como 3/2, 4/3, 5/4 se
devolverán todas como 1 desde la función map (), a pesar de sus diferentes valores
reales. Entonces, si su proyecto requiere cálculos precisos (por ejemplo, voltaje con una precisión
de 3 decimales), considere evitar map () e implementar los cálculos manualmente en su código.

DE-F-025 V.04

También podría gustarte