0% encontró este documento útil (0 votos)
200 vistas15 páginas

Comandos Basicos en Arduino

Este documento describe los comandos básicos en Arduino. Explica que el código Arduino tiene dos funciones principales, setup() y loop(). Setup() se ejecuta una vez al inicio y se usa para configurar los pines, mientras que loop() se repite continuamente. También describe funciones matemáticas, aleatorias, de tiempo, declaración de variables, operadores, constantes y cómo configurar las entradas y salidas digitales.
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 PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
200 vistas15 páginas

Comandos Basicos en Arduino

Este documento describe los comandos básicos en Arduino. Explica que el código Arduino tiene dos funciones principales, setup() y loop(). Setup() se ejecuta una vez al inicio y se usa para configurar los pines, mientras que loop() se repite continuamente. También describe funciones matemáticas, aleatorias, de tiempo, declaración de variables, operadores, constantes y cómo configurar las entradas y salidas digitales.
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 PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 15

Comandos basicos en arduino

La estructura básica del lenguaje de programación de Arduino es bastante simple y se


compone de al menos dos partes. Estas dos partes necesarias, o funciones, encierran
bloques que contienen declaraciones, estamentos o instrucciones.

Void setup ()
{
Estamentos;
}
Void Loop ()
{
Estamentos;
}

En donde setup () es la parte encargada de recoger la configuración y Loop () es la que


contienen el programa que se ejecutará cíclicamente .Ambas funciones son necesarias
para que el programa trabaje.
La función setup () se invoca una sola vez cuando el programa empieza. Se utiliza para
inicializar los modos de trabajo de los pines, o el puerto serie. Debe ser incluido en un
programa aunque no haya declaración que ejecutar. Después de llamar a setup (), la
función Loop () hace precisamente lo que sugiere su nombre, se ejecuta de forma cíclica,
lo que posibilita que el programa este respondiendo continuamente ante los eventos que
se produzcan en la tarjeta.

 {} entre llaves
Las llaves sirven para definir el principio y el final de un bloque de instrucciones. Se
utilizan para los bloques de programación setup(), Loop(), if.., etc.
 ; punto y coma
El punto y coma “;” se utiliza para separar instrucciones en el lenguaje de
programación de Arduino.
 /*… */ bloque de comentarios
Los bloques de comentarios, o multi-línea de comentarios, son áreas de texto
ignorados por el programa que se utilizan para las descripciones del código o
comentarios que ayudan a comprender el programa. Comienzan con / * y
terminan con * / y pueden abarcar varias líneas.
Debido a que los comentarios son ignorados por el programa y no ocupan espacio
en la memoria de Arduino pueden ser utilizados con generosidad y también pueden
utilizarse para "comentar" bloques de código con el propósito de anotar
informaciones para depuración
 // línea de comentarios
Una línea de comentario empieza con // y terminan con la siguiente línea de
código. Al igual que los comentarios de bloque, los de línea son ignoradas por el
programa y no ocupan espacio en la memoria.
Una línea de comentario se utiliza a menudo después de una instrucción, para
proporcionar más información acerca de lo que hace esta o para recordarla más
adelante.
// Esto es un comentario

FUNCIONES MATEMÁTICAS

 min(x,y)
Calcula el mínimo de dos números de cualquier tipo de datos y devuelve el número
más pequeño.
Ejemplo:
Value = min (value, 100); //asigna a 'value' al más pequeño de 'value' o 100,
//asegurándose que nunca superara 100.

 max(x,y)
Calcula el máximo de dos números de cualquier tipo de datos y devuelve el número
más grande.
Ejemplo:
Value = max (value, 100); //asigna a 'value' al más grande de 'value' o 100,
//asegurándose que es al menos 100.

FUNCIONES ALEATORIO

 randomSeed(seed)
Asigna un valor, o semilla (seed en inglés), como el punto de partida para la función
random ().
Ejemplo:
randomSeed (value); //asigna 'value' como la semilla aleatoria

Como el Arduino es incapaz de crear un número verdaderamente aleatorio, randomSeed


te permite colocar una variable, constante, u otra función dentro de la función random, lo
cual ayuda a generar más números random (aleatorios). Existen una variedad de
diferentes semillas, o funciones, que pueden ser usadas en esta función incluyendo millis
() o incluso analogRead () para leer ruido eléctrico a través de un pin analógico.
 random(min, max)
La función random te permite devolver números pseudo aleatorios en un rango
especificado por los valores min y max.
Ejemplo:
Value = random (100, 200); //asigna a 'value' un número aleatorio
//entre 100 y 200.
Nota: Usar esto después de usar la función randomSeed().

FUNCIONES DE TIEMPO

 Función millis ()
Devuelve la cantidad de milisegundos transcurridos desde que la placa Arduino
empezó a ejecutar el programa actual. Este número se desbordará (volverá a cero),
después de aproximadamente 50 días. El dato devuelto es de tipo unsigned long
(rango [0, 2^32 – 1]).

 Función delay (tiempo)


Pausa el programa durante el tiempo (en milisegundos) especificado en el
parámetro tiempo. El dato dado como parámetro es de tipo unsigned long.

DECLARACION DE VARIABLES

Una variable es una manera de nombrar y almacenar un valor numérico para su uso
posterior por el programa. Como su nombre indica, las variables son números que se
pueden variar continuamente en contra de lo que ocurre con las constantes cuyo valor
nunca cambia. Una variable debe ser declarada y, opcionalmente, asignarle un valor.
Todas las variables tienen que declararse antes de que puedan ser utilizadas. Para declarar
una variable se comienza por definir su tipo:

TIPO DIMENSION
BYTE Byte almacena un valor numérico de 8 bits sin decimales. Tienen
un rango entre 0 y 255
INT Enteros son un tipo de datos primarios que almacenan valores
numéricos de 16 bits sin decimales comprendidos en el rango
32,767 to -32,768.
LONG El formato de variable numérica de tipo extendido “Long” se
refiere a números enteros (tipo 32 bits) sin decimales que se
encuentran dentro del rango -2147483648 a 2147483647.
FLOAT El formato de dato del tipo “punto flotante” “float” se aplica a los
números con decimales. Los números de punto flotante tienen
una mayor resolución que los de 32 bits con un rango
comprendido 3.4028235E +38 a +38-3.4028235E.
CHAR Carácter
UNSIGNED INT Entero sin signo, desde 0 a 65,535
UNSIGNED LONG entero 32bit sin signo, desde 0 a 4,294,967,295
STRING cadena de caracteres
VOID (VACÍO) Sólo utilizado cuando una función no devuelve nada
 arrays
Un array es un conjunto de valores a los que se accede con un número índice.
Cualquier valor puede ser recogido haciendo uso del nombre de la matriz y el
número del índice.
El primer valor de la matriz es el que está indicado con el índice 0, es decir el
primer valor del conjunto es el de la posición 0. Un array tiene que ser declarado y
opcionalmente asignados valores a cada posición antes de ser utilizado.

int miArray[] = {valor0, valor1, valor2...}


Del mismo modo es posible declarar una matriz indicando el tipo de datos y el tamaño y
posteriormente, asignar valores a una posición especifica:

int miArray[5]; // declara un array de enteros de 6 posiciones


miArray[3] = 10; // asigna el valor 10 a la posición 4

Para leer de un array basta con escribir el nombre y la posición a leer:

x = miArray [3]; // x ahora es igual a 10 que está en la posición 3 del array

SIMBOLOS Y OPERADORES

ARTMETICOS
Los operadores aritméticos que se incluyen en el entorno de programación son suma,
resta, multiplicación y división. Estos devuelven la suma, diferencia, producto, o cociente
(respectivamente) de dos operandos.

Suma: a =b+c
Resta: a =b-c
Multiplicación: a=b*c
División: x=a \ b

ASIGNACIONES COMPUESTAS
Las asignaciones compuestas combinan una operación aritmética con una variable
asignada. Estas asignaciones compuestas pueden ser:
OPERADORES DE COMPARACIÓN

OPERADORES LÓGICOS

Los operadores lógicos son usualmente una forma de comparar dos expresiones y
devolver un verdadero o falso dependiendo del operador. Existen tres operadores lógicos,
AND (&&), OR (||) y NOT (!).
Ejemplo:

CONSTANTES

El lenguaje de programación de Arduino tiene unos valores predeterminados, que son


llamados constantes. Se utilizan para hacer los programas más fáciles de leer. Las
constantes se clasifican en grupos:

 CIERTO/FALSO (TRUE/FALSE)
Estas son constantes booleanas que definen los niveles HIGH (alto) y LOW (bajo)
cuando estos se refieren al estado de las salidas digitales. FALSE se asocia con 0
(cero), mientras que TRUE se asocia con 1, pero TRUE también puede ser cualquier
otra cosa excepto cero.

 HIGH/LOW
Estas constantes definen los niveles de salida altos o bajos y se utilizan para la
lectura o la escritura digital para las patillas. ALTO se define como en la lógica de
nivel 1, ON, ó 5 voltios, mientras que BAJO es lógica nivel 0, OFF, o 0 voltios.

Ejemplo:
DigitalWrite (13, HIGH); // activa la salida 13 con un nivel alto (5v.)
 INPUT/OUTPUT
Estas constantes son utilizadas para definir, al comienzo del programa, el modo de
funcionamiento de los pines mediante la instrucción pinMode de tal manera que el
pin puede ser una entrada INPUT o una salida OUTPUT.

Ejemplo:
PinMode (13, OUTPUT); // designamos que el PIN 13 es una salida

CONFIGURACION DE ENTRADAS Y SALIDAS DIGITALES

 pinMode(pin, mode)
Esta instrucción es utilizada en la parte de configuración setup () y sirve para
configurar el modo de trabajo de un PIN pudiendo ser INPUT (entrada) u OUTPUT
(salida).
Ejemplo:
pinMode (pin, OUTPUT); // configura ‘pin’ como salida

Los terminales de Arduino, por defecto, están configurados como entradas, por lo tanto
no es necesario definirlos en el caso de que vayan a trabajar como entradas.
Los pines configurados como entrada quedan, bajo el punto de vista eléctrico, como
entradas en estado de alta impedancia.
Estos pines tienen a nivel interno una resistencia de 20 K a las que se puede acceder
mediante software. Estas resistencias se acceden de la siguiente manera:

pinMode (pin, INPUT); // configura el ‘pin’ como entrada


digitalWrite (pin, HIGH); // activa las resistencias internas

Las resistencias internas normalmente se utilizan para conectar las entradas a


interruptores. En el ejemplo anterior no se trata de convertir un pin en salida, es
simplemente un método para activar las resistencias interiores.
Los pines configurado como OUTPUT (salida) se dice que están en un estado de baja
impedancia estado y pueden proporcionar 40mA (miliamperios) de corriente a otros
dispositivos y circuitos. Esta corriente es suficiente para alimentar un diodo LED (no
olvidando poner una resistencia en serie), pero no es lo suficiente grande como para
alimentar cargas de mayor consumo como relés, solenoides, o motores.

 digitalRead(pin)

Lee el valor de un pin (definido como digital) dando un resultado HIGH (alto) o LOW (bajo).
El pin se puede especificar ya sea como una variable o una constante (0-13).

Valor = digitalRead (Pin); // hace que 'valor’ sea igual al estado leído en ´Pin´
 digitalWrite(pin, value)

Envía al ´pin´ definido previamente como OUTPUT el valor HIGH o LOW (poniendo en 1 o 0
la salida). El pin se puede especificar ya sea como una variable o como una constante (0-
13).
Ejemplo

digitalWrite (pin, HIGH); // deposita en el 'pin' un valor HIGH (alto o 1)

CONFIGURACION DE ENTRADAS Y SALIDAS ANALOGICAS

 analogRead(pin)

Lee el valor de un determinado pin definido como entrada analógica con una
resolución de 10 bits. Esta instrucción sólo funciona en los pines (0-5). El rango de
valor que podemos leer oscila de 0 a 1023.

Valor = analogRead (pin); // asigna a valor lo que lee en la entrada ´pin'

Nota: Los pines analógicos (0-5) a diferencia de los pines digitales, no necesitan ser
declarados como INPUT u OUTPUT ya que son siempre INPUT.

 analogWrite(pin, value)
Esta instrucción sirve para escribir un pseudo-valor analógico utilizando el
procedimiento de modulación por ancho de pulso (PWM) a uno de los pines de
Arduino marcados como “pin PWM”. El más reciente Arduino, que implementa el
chip ATmega168, permite habilitar como salidas analógicas tipo PWM los pines 3,
5, 6, 9, 10 y 11. Los modelos de Arduino más antiguos que implementan el chip
ATmega8, solo tiene habilitadas para esta función los pines 9, 10 y 11. El valor que
se puede enviar a estos pines de salida analógica puede darse en forma de variable
o constante, pero siempre con un margen de 0-255.

analogWrite (pin, valor); // escribe 'valor' en el 'pin' definido como analógico

Nota: Las salidas analógicas a diferencia de las digitales, no necesitan ser


declaradas como INPUT u OUTPUT.
MANEJO DE LA PANTALLA LCD

 Función LiquidCrystal()
Esta función crea una nueva instancia en software de un LCD conectado a la placa.
Sintaxis:
LiquidCrystal name_display (RS, E, DB4, DB5, DB6, DB7);

Ejemplo: LiquidCrystal Lcd (12, 11, 5, 4, 3, 2);

 Función begin (columnas, filas)


Con la instancia creada, esta función define el tamaño del display.

Ejemplo: Lcd. begin (16,2);

 Función print(datos, base)


Envía datos a la pantalla.

Ejemplo 1: Lcd. Print (“hola”);


Ejemplo 2: Lcd. Print (analogRead (A3), DEC);

 Función write (dato)


Envía un carácter al display.

Ejemplo 1: Lcd.Write (236);

 Función clear ()
Borra contenido de la pantalla.

Ejemplo: Lcd. Clear ();

 Función setCursor (columna, fila)


Especifica las coordenadas del lugar donde se va a escribir en la pantalla. En el caso
de la pantalla que se utiliza, columna está en el rango [0,15] y fila en [0,1].

Ejemplo: Lcd. SetCursor (0,1);

 Función createChar (num, data)


Permite crear caracteres definidos por el programador.

Ejemplo: Para definir la letra ñ, se dibuja una matriz de 8x5 y se rellena adecuadamente.
COMUNICACIÓN SERIE

Para que el computador pueda visualizar los datos enviados por la placa, se puede utilizar
el “Monitor Serial” incorporado en el entorno de Arduino, tal. El monitor serial debe tener
seleccionada la misma velocidad utilizada en la función Serial.begin ().

 Función Serial.begin(velocidad)
Establece la velocidad de transmisión de datos en símbolos por segundo (baudios)
para la transmisión de datos serie. Por costumbre, se suele utilizar una velocidad
de 9600[baudios]. Obviamente, se pueden utilizar velocidades de transmisión
numéricamente más grandes.
 Función Serial.available ()
Devuelve el número de Bytes que están disponibles para lectura en el buffer de
entrada del puerto serie, el que puede almacenar hasta 64[Bytes].

 Función Serial.end ()
Desactiva la comunicación serie, permitiendo a los pines 0 (RX) y 1 (TX) ser
utilizados como entradas o salidas digitales. Para volver a habilitar la comunicación
serie, se llama a Serial.begin ().


 Serial.parseInt();
Toma datos seriales solamente si estos son números enteros, si no lo son se
ignoran

 Función Serial.print (valor, formato) y Serial.println (valor, formato)


Envía datos al puerto serie como texto ASCII. Los datos float son impresos por
omisión con dos decimales. La diferencia entre Serial.print () y Serial.println () es
que la primera no añade retorno de carro ni nueva línea.
Si se envía un número entero, el campo formato se puede utilizar para establecer
la base numérica del número. El campo formato puede tomar los siguientes
valores: DEC, HEX, OCT, BIN.
Si se envía un número en punto flotante, el campo formato se puede utilizar para
especificar la cantidad dígitos decimales que tiene dicho número.

 Función Serial.write (datos)


Envía datos binarios al puerto serie. La variable datos puede ser un byte o una serie
de bytes.
Por ejemplo:
Serial.write (35) enviará un byte, con el número 35 codificado en binario.
Serial.write (“hola”) enviará una serie de bytes, con el string “hola”. Esta función
es similar a Serial.print ().

 Función Serial.read ()
Permite leer los datos que llegan por el puerto serie.
Ejemplo:

Dato=Serial.read (); //almacena en la variable dato los datos que lee


INTERRUPCIONES

Una interrupción permite que el flujo normal de un programa se detenga y se ejecute un


función específica. Una vez que esta función termina, el control retorna al programa. Al
igual que en otros sistemas, Arduino tiene dos clases de interrupciones: por hardware y
software.

INTERRUPCIONES POR HARDWARE


En el caso de arduino UNO, tiene dos interrupciones, INT0 e INT1 asociadas a los pines 2 y
3, respectivamente. Una interrupción suceder en cualquier momento de la ejecución del
programa.
 Función attachInterrup(interrupt,ISR,mode)
Los argumentos de esta función son:
Interrupt: Número de la interrupción {0, 1}
ISR: (Interruption Service Routine) Función que se va a ejecutar cuando se
produzca la interrupción.
mode: Define cuando la interrupción se gatillará.
LOW: se gatilla cuando el pin está en un nivel bajo.
CHANGE: se gatilla cuando el pin cambia de valor.
FALLING: se gatilla cuando el pin pasa de un nivel alto a un nivel bajo.
RISING: se gatilla cuando el pin pasa de un nivel bajo a un nivel alto
 Función noInterrupts() y interrupts()
En algunas ocasiones, se quiere que ciertas zonas del código no sean interrumpidas
por las interrupciones. Esto se logra con estas funciones.

INTERRUPCIONES POR SOFTWARE

Las interrupciones por software, en al caso de Arduino, están asociadas a temporizadores.


Esta significa que se debe configurar un temporizador por cierta cantidad de tiempo, y
cuando éste se cumpla, se gatilla la ejecución de una función previamente definida.
Existen varias bibliotecas que permiten el uso de temporizadores. En particular, se verá la
timer1.h.

 Función initialize (periodo)


Especifica cada cuánto microsegundos se ejecutará la función que atienda la
interrupción. Por omisión, el período es 1seg. Cuando se inicializa el timer, los
pines 9 y 10 se deshabilitan para la función analogWrite ().
 Función attachInterrupt(function)
Llama a la función function en el intervalo de tiempo especificado por la función
anterior.
 Función detachInterrupt()
Esta función deshabilita la interrupción inicializada.

También podría gustarte