You are on page 1of 17

 FUNCIONES

 VARIABLES

INPUT (entrada) o como OUTPUT (salida).

Definición de los niveles de los pines: HIGH y LOW


Cuando leemos o escribimos un pin digital, solo hay dos valores posibles que el pin puede tener,
activado o desactivado: HIGH o LOW.

attach
adjuntar()
Descripción
Adjunte la variable Servo a un pin. Tenga en cuenta que en Arduino 0016 y
versiones anteriores, la biblioteca Servo solo admite servos en dos pines: 9 y
10.

Sintaxis
servo .attach (pin)
servo .attach (pin, min, max)

Parámetros
servo: una variable de tipo Servo

pin: el número del pin al que está conectado el servo

Serial.begin
stablece la velocidad de datos en bits por segundo (baudios) para la
transmisión de datos en serie. Para comunicarse con la computadora, use
una de estas tarifas: 300, 600, 1200, 2400, 4800, 9600, 14400, 19200,
28800, 38400, 57600 o 115200. No obstante, puede especificar otras tarifas,
por ejemplo, comunicarse a través de los pines 0 y 1 con un componente que
requiere una velocidad en baudios particular.

Un segundo argumento opcional configura los datos, la paridad y los bits de


parada. El valor predeterminado es 8 bits de datos, sin paridad, un bit de
parada.

Sintaxis
Serial.begin (velocidad)
Serial.begin (velocidad, configuración)

Solo Arduino Mega:


Serial1.begin (velocidad)
Serial2.begin (velocidad)
Serial3.begin (velocidad)
Serial1.begin (velocidad, configuración)
Serial2.begin (velocidad, configuración)
Serial3.begin (velocidad, configuración)

digitalRead ()
[E / S digital]

Descripción

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

Sintaxis

digitalRead(pin)

Parámetros
pin : el número del pin digital que quieres leer

Devoluciones

HIGH o LOW

Código de ejemplo

Establece el pin 13 en el mismo valor que el pin 7, declarado como


una entrada.

int ledPin = 13; // LED conectado al pin digital 13


int inPin = 7; // botón pulsador conectado al pin digital 7
int val = 0; // variable para almacenar el valor de lectura

Configuración de vacío ()
{
pinMode (ledPin, OUTPUT); // configura el pin digital 13 como salida
pinMode (inPin, INPUT); // establece el pin digital 7 como entrada
}

void loop ()
{
val = digitalRead (inPin); // leer el pin de entrada
digitalWrite (ledPin, val); // establece el LED al valor del botón
}

Notas y advertencias

Si el pin no está conectado a nada, digitalRead () puede regresar


ALTO o BAJO (y esto puede cambiar aleatoriamente).

Los pines de entrada analógica se pueden usar como pines digitales,

con

digitalWrite ()
[E / S digital]

Descripción
Escriba a HIGH o un LOW valor en un pin digital.

Si el pin se ha configurado como OUTPUT con 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 se configura como an INPUT , digitalWrite() habilitará ( HIGH )


o deshabilitará ( LOW ) el pullup interno en el pin de entrada. Se
recomienda configurar el pinMode() to INPUT_PULLUP para habilitar la
resistencia de pull-up interna. Consulte el tutorial de pines digitales
para obtener más información.

Si no configura el pinMode() a OUTPUT , y conecta un LED a un pin,


cuando llama digitalWrite(HIGH) , el LED puede aparecer
atenuado. Sin configuración explícita pinMode() , digitalWrite() habrá
habilitado la resistencia interna de pull-up, que actúa como una
gran resistencia limitadora de corriente.

Sintaxis

digitalWrite(pin, value)

Parámetros

pin : el número de pin

value : HIGH o LOW

Devoluciones

Nada

Código de ejemplo

El código hace que el pin digital 13 sea un OUTPUT y lo alterna


alternando entre HIGH y LOW en un segundo ritmo.

Configuración de vacío ()
{
pinMode (13, SALIDA); // configura el pin digital 13 como salida
}

void loop ()
{
digitalWrite (13, ALTO); // establece el pin digital 13 en
retraso (1000); // espera por un segundo
digitalWrite (13, BAJO); // desactiva el pin digital 13
retraso (1000); // espera por un segundo
}

ocidos como A0, A1, etc.

pinMode ()
[E / S digital]

Descripción

Configura el pin especificado para que se comporte como una


entrada o una salida. Consulte la descripción 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 modo ENTRADA
desactiva explícitamente las dominadas internas.

Sintaxis

pinMode(pin, mode)

Parámetros

pin : el número del pin cuyo modo desea configurar

mode : INPUT , OUTPUT O INPUT_PULLUP . (Consulte la página ( 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 OUTPUT y lo alterna HIGH y LOW

Configuración de vacío ()
{
pinMode (13, SALIDA); // configura el pin digital 13 como salida
}

void loop ()
{
digitalWrite (13, ALTO); // establece el pin digital 13 en
retraso (1000); // espera por un segundo
digitalWrite (13, BAJO); // desactiva el pin digital 13
retraso (1000); // espera por un segundo
}

analogRead ()
[E / S analógica]

Descripción

Lee el valor del pin analógico especificado. La placa Arduino


contiene un convertidor analógico a digital de 6 canales (8 canales
en Mini y Nano, 16 en la Mega). Esto significa que mapeará voltajes
de entrada entre 0 y 5 voltios en valores enteros entre 0 y 1023.
Esto produce una resolución entre las lecturas de: 5 voltios / 1024
unidades o, .0049 voltios (4.9 mV) por unidad. El rango de entrada
y la resolución se pueden cambiar usando analogReference () .

Se necesitan aproximadamente 100 microsegundos (0,0001 s) para


leer una entrada analógica, por lo que la velocidad máxima de
lectura es aproximadamente 10.000 veces por segundo.
Sintaxis

analogRead(pin)

Parámetros

pin : el número del pin de entrada analógica para leer (0 a 5 en la


mayoría de los tableros, 0 a 7 en el Mini y Nano, 0 a 15 en el Mega)

Devoluciones

int (0 a 1023)

Código de ejemplo

El código lee el voltaje en analogPin y lo muestra.

int analogPin = 3; // potentiometer wiper (middle terminal) connected to analog


pin 3
// outside leads to ground and +5V
int val = 0; // variable to store the value read

void setup()
{
Serial.begin(9600); // setup serial
}

void loop()
{
val = analogRead(analogPin); // read the input pin
Serial.println(val); // debug value
}

Notas y advertencias

Si el pin de entrada analógica no está conectado a nada, el valor


devuelto por analogRead () fluctuará en función de una serie de
factores (por ejemplo, los valores de las otras entradas analógicas,
qué tan cerca está la mano de la placa, etc.).
analogReference ()
[E / S analógica]

Descripción

Configura la tensión de referencia utilizada para la entrada


analógica (es decir, el valor utilizado como la parte superior del
rango de entrada). Las opciones son:

Arduino AVR Boards (Uno, Mega, etc.)

 PREDETERMINADO: la referencia analógica predeterminada de


5 voltios (en tarjetas Arduino de 5V) o 3.3 voltios (en tarjetas
Arduino de 3.3V)
 INTERNO: una referencia incorporada, igual a 1.1 voltios en el
ATmega168 o ATmega328P y 2.56 voltios en el ATmega8 (no
disponible en el Arduino Mega)
 INTERNAL1V1: una referencia incorporada de 1.1V (solo
Arduino Mega)
 INTERNAL2V56: una referencia incorporada de 2.56 V (solo
Arduino Mega)
 EXTERNAL: la tensión aplicada al pin AREF (de 0 a 5 V
solamente) se utiliza como referencia.

Arduino SAMD Boards (Zero, etc.)

 AR_DEFAULT: la referencia analógica predeterminada de 3.3V


 AR_INTERNAL: una referencia incorporada de 2.23V
 AR_INTERNAL1V0: una referencia incorporada de 1.0V
 AR_INTERNAL1V65: una referencia incorporada de 1.65V
 AR_INTERNAL2V23: una referencia incorporada de 2.23V
 AR_EXTERNAL: el voltaje aplicado al pin AREF se usa como
referencia

Arduino SAM Boards (debido)


 AR_DEFAULT: la referencia analógica predeterminada de
3.3V. Esta es la única opción admitida para Due.

Sintaxis

analogReference(type)

Parámetros

type : qué tipo de referencia usar (ver lista de opciones en la


descripción).

Devoluciones

delay()

Descripción

Pausa el programa por la cantidad de tiempo (en milisegundos)


especificado como parámetro. (Hay 1000 milisegundos en un
segundo).

Sintaxis

delay(ms)

Parámetros

ms : el número de milisegundos para pausar ( unsigned long )

Devoluciones

Nada

Código de ejemplo
El código pausa el programa por un segundo antes de alternar el pin
de salida.

int ledPin = 13; // LED connected to digital pin 13

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

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

Notas y advertencias

Si bien es fácil crear un LED parpadeante con la delay() función, y


muchos bocetos usan breves demoras para tareas como el
antirrebote de interruptores, el uso de delay() un boceto tiene
inconvenientes importantes. Ninguna otra lectura de sensores,
cálculos matemáticos o manipulación de pines puede continuar
durante la función de retardo, por lo que, en efecto, detiene la
mayoría de otras actividades. Para obtener enfoques alternativos
para controlar el tiempo, consulte la función milis () y el boceto que
se encuentra a continuación. Los programadores más conocedores
generalmente evitan el uso de delay() eventos de más de 10 de
milisegundos, a menos que el boceto de Arduino sea muy simple.

Ciertas cosas continúan mientras la función de demora () controla el


chip Atmega, sin embargo, porque la función de retardo no
desactiva las interrupciones. La comunicación en serie que aparece
en el pin RX se graba, los valores PWM ( analogWrite ) y los estados
de pin se mantienen, y las interrupciones funcionarán como
deberían.
Constantes de punto
flotante
[Constantes]

Descripción

De forma similar a las constantes enteras, las constantes de coma


flotante se utilizan para hacer que el código sea más legible. Las
constantes de punto flotante se intercambian en tiempo de
compilación para el valor al que evalúa la expresión.

Código de ejemplo
n = 0.005; // 0.005 is a floating point constant

Notas y advertencias

Las constantes de punto flotante también se pueden expresar en


una variedad de notación científica. 'E' y 'e' son aceptados como
indicadores de exponente válidos.

Convierte un valor al tipo de datos int .

Sintaxis

int(x)

Parámetros

x : un valor de cualquier tipo

Devoluciones
int

VARIABLES
Tipos de datos Arduino y constantes.

Constantes
Constantes de punto flotante Constantes
enteras
ALTO | BAJA
ENTRADA | SALIDA | INPUT_PULLUP
LED_BUILTIN
verdadero | falso

Conversión
byte ()
char ()
float ()
int ()
long ()
palabra ()

Tipos de datos
String
String ()
array
bool
boolean
byte
char
double
flotante
int
largo
corto
sin signo char
sin signo int
sin signo largo
vacío
palabra

Alcance variable y Calificadores


const
scope
estático
volátil

Utilidades
PROGMEM
sizeof ()

ESTRUCTURA
Los elementos del código Arduino (C ++).

Bosquejo
configuración loop ()
()

Estructura de control
break
continue
do ... while
else
para
goto
if ... else
return
cambiar ... caso
mientras

Sintaxis adicional
#define (definir)
#include (incluir)
/ * * / (bloquear comentario)
// (comentario de una sola línea)
; (punto y coma)
{} (llaves)

Operadores aritméticos
% (resto)
* (multiplicación)
+ (adición)
- (resta)
/ (división)
= (operador de asignación)

Operadores de comparación
! = (no igual a)
< (menor que)
<= (menor o igual que)
== (igual a)
> (mayor que)
> = (mayor que o igual a)

si ... else
[Estructura de control]

Descripción

La if declaración verifica una condición y ejecuta la instrucción previa


o el conjunto de enunciados si la condición es 'verdadera'.

Sintaxis
if (condition)
{
//statement(s)
}

Parámetros

condición: una expresión booleana, es decir, puede ser true o false

Código de ejemplo

Los corchetes pueden omitirse después de una declaración if. Si se


hace esto, la siguiente línea (definida por el punto y coma) se
convierte en la única instrucción condicional.
if (x > 120) digitalWrite(LEDpin, HIGH);

if (x > 120)
digitalWrite(LEDpin, HIGH);

if (x > 120){ digitalWrite(LEDpin, HIGH); }

if (x > 120){
digitalWrite(LEDpin1, HIGH);
digitalWrite(LEDpin2, HIGH);
} // all are correct

Notas y advertencias

Las declaraciones que se evalúan dentro de los paréntesis requieren


el uso de uno o más operadores que se muestran a continuación.

Operadores de comparación:

x == y (x es igual a y)
x! = y (x no es igual a y)
x <y (x es menor que y)
x> y (x es mayor que y)
x <= y (x es menor o igual a y)
x> = y (x es mayor o igual a y)

Tenga cuidado con el uso accidental del signo igual (por ejemplo if
(x = 10) ). El signo igual individual es el operador de asignación, y se
establece xen 10 (pone el valor 10 en la variable x ). En su lugar,
utilice el signo doble igual (por ejemplo if (x == 10) ), que es el
operador de comparación, y comprueba si x es igual a 10 o no. La
última declaración solo es verdadera si xes igual a 10, pero la
declaración anterior siempre será verdadera.

Esto se debe a que C evalúa la declaración de la if (x=10) siguiente


manera: 10 está asignado a x (recuerde que el signo igual individual
es el ( operador de asignación )), entonces xahora contiene 10.
Entonces el condicional 'si' evalúa 10, que siempre evalúa TRUE , ya
que cualquier el número distinto de cero se evalúa como
VERDADERO. En consecuencia, if (x = 10) siempre se evaluará
a TRUE , que no es el resultado deseado cuando se utiliza una
declaración 'if'. Además, la variable x se establecerá en 10, que
tampoco es una acción deseada.
Servo

adjuntar()
Descripción
Adjunte la variable Servo a un pin. Tenga en cuenta que en Arduino 0016 y
versiones anteriores, la biblioteca Servo solo admite servos en dos pines: 9 y
10.

Sintaxis
servo .attach (pin)
servo .attach (pin, min, max)

Parámetros
servo: una variable de tipo Servo

pin: el número del pin al que está conectado el servo

min (opcional): el ancho del pulso, en microsegundos, correspondiente al


ángulo mínimo (0 grados) en el servo (por defecto es 544)

max (opcional): el ancho del pulso, en microsegundos, que corresponde al


ángulo máximo (180 grados) en el servo (por defecto es 2400)