Nesta páxina recóllense as funcións máis comúns que se utilizan en arduino, como manual de consulta. Nas seguintes páxinas irán introducíndose as diversas funcións pouco a pouco mediante exemplos e exercicios.
Para coñecer máis tipos de variables e de funcións podes consultar a referencia de Arduíno.
Estrutura básica dun programa:
Declaración de variables e funcións:
No inicio definimos as constantes, variables e funcións que utilizaremos posteriormente no programa. Por exemplo, indicamos que temos un LED conectado ao pin 13 da placa arduino.
int led=13;
- Configuración: setup() { … }
Aquí introducimos o código de configuración inicial. Execútase unha soa vez. Por exemplo aquí indicamos que o pin 13 é un pin de saída: pinMode(led, OUTPUT); Tamén podemos introducir código que só queiramos que se execute ao inicio do programa, unha soa vez.
- Programa: loop() { … }
As instrucións contidas dentro da función loop execútanse indefinidamente, ata que se desconecte a placa arduino. Por exemplo, facemos que o led se acenda e se apague en determinados intervalos de tempo.
- Comentarios:
Utilizamos /* … */ para engadir un parágrafo con varias liñas
Utilizamos // … para engadir un comentario dunha liña
Variables
Unha variable é un dato que cambia o seu valor coa execución do programa, mentres que unha constante permanece sempre co mesmo valor.
Tipo | Descrición | Exemplo |
int | É o tipo de variable por defecto. Almacena un valor enteiro variable de 16 bits no rango de -32768 a +32767 |
int brillo=0; // Indica que a variable brillo toma un valor = 0. Durante a execución do programa este valor pode variar. |
const int | Valor enteiro constante |
const int led=9; // Indica que conectamos un LED no pin 9. O valor non varía durante a execución do programa. |
boolean | Valor booleano: Toma o valor verdadeiro (true) ou falso (false) |
boolean acendido=true; // Indica que a variable "acendido" é verdadeira. |
char | Carácter: Almacena un ASCII |
char letra='a'; // Indica que a variable "letra" toma o valor "a" |
String | texto: Almacena unha cadea de caracteres |
String texto="Ola mundo"; // Indica que a variable "texto" toma o valor "Ola mundo" |
byte | Almacena un número de 8 bits no rango de 0 a 255 |
byte C = 23; // Indica que a variable C toma o valor 23 |
long | Almacena un número de 32 bits no rango de -2.147.483.648 a 2.147.483.648 |
long Contador = -10000; // Indica que o contador toma un valor de -10000 |
float | Almacena un número decimal de 32 bits |
float pi = 3.1416; // Indica que a variable pi ten un valor de 3,1416 |
Por simplificar, aquí usaremos int no canto de const int para definir as constantes. Por exemplo: int led=9; para indicar que o led está conectado no pin 9.
Un array é un conxunto de variables. tipo nome[nº de variables]={valor1, …, valor n}
Exemplo: const int leds[4]={7,8,9,10} Crea o array “leds” con espazo para almacenar 4 números de tipo const int no cal almacena os valores 7,8,9 e 10.
Funcións
Funcións dixitais:
pinMode(pin,modo) | Permite configurar un pin |
pinMode (13,OUTPUT); pinMode (pulsador,INPUT); |
digitalRead(pin) | Permite ler un pin dixital (0 ou 1) |
int a = digitalRead (2); // Define a variable "a" coa lectura 0 ou 1 do pin 2 |
digitalWrite(pin,estado) | Permite escribir un pin dixital con 1 ou 0 (ou con HIGH e LOW) |
digitalWrite (13,HIGH); digitalWrite (13,LOW); |
Funcións analóxicas:
analogRead(pin) | Permite ler un valor analóxico de 0 a 1023 |
int a = analogRead (A0); // Define a variable "a" coa lectura do valor do pin analóxico A0 |
analogWrite(pin,valorPWM) | Permite escribir un valor analóxico de 0 a 255 |
analogWrite (9, 134); // Asigna o valor 134 ao pin 9 |
Outras funcións:
delay(n); | temporización en milésimas de segundo |
delay(1000); // Agarda 500ms = 0,5s |
delayMicroseconds(n); | temporización en microsegundos |
delayMicroseconds(100); //Agarda 100 μs = 0.0001s |
var = millis(); | Devolve o tempo en ms transcorrido desde o comezo do programa | |
tone(pin, frecuencia, duración); | Xera un son da frecuencia desexada, sobre o pin indicado e cunha duración que indiquemos |
tone(6,12000,500); // Xera un ton de 12 KHZ durante 0.5s polo pin 2. |
noTone(pin); | Finaliza o ton que estea soando polo pin indicado |
Operadores
Booleanos: | De comparación: | Matemáticos: | ||||
AND: && | Igual a : == | Diferente de: != | Asignar: = | Módulo: % | ||
OR: || | Maior que: > | Menor que: < | Suma: + | Resta: – | ||
NOT: ! | Maior ou igual: >= | Menor ou igual: <= | Multiplicación: * | División: / |
Operadores compostos | |||
Operador | Operación | Exemplo | Equivale a |
++ | Incrementa unha unidade | n++ | n=n+1 |
– – | Decrementa unha unidade | n- – | n=n-1 |
+= | Suma | n+=3 | n=n+3 |
-= | Resta | n-=3 | n=n-3 |
*= | Produto | n*=3 | n=n*3 |
/= | División | n/=3 | n=n/3 |
Estruturas de control
Son instrucións que nos permiten tomar decisións ou facer repeticións de acordo cuns parámetros.
if(condición) { proceso } (Se… ) | |
![]() |
Cando se cumpre a condición establecida execútanse as funcións do proceso definido entre as chaves {…}. Cando non se cumpre a condición non se executan e o programe segue o seu curso.Exemplo: Se a entrada é menor que 500 execútase o proceso.
if (entrada < 500) { // Proceso } |
if(condición) { proceso 1 } else { proceso 2 } (Se … se non …) | |
![]() |
Neste caso definimos dous procesos, un para cando se cumpre a condición establecida, e outro para cando non se cumpre.Exemplo: Se a entrada é menor que 500 execútase o proceso 1, e se non execútase o proceso 2
if (entrada < 500) { // proceso1 } else { // proceso2 } |
switch() / case (Varios camiños ) | |
![]() |
Permite elixir entre varios camiños para executar diferentes funcións ou grupos de funcións.Exemplo: Se a variable toma o valor 4 execútase o proceso 1, se toma o valor 5 execútase o proceso 2 e se non se cumpre ningunha das anteriores condicións (default) execútase o proceso 3.
switch(variable) { case 4: // proceso1 break; case 5: // proceso2 break; default: // proceso3 break; } |
for(inicio,condición,modificador) { proceso } (Por …) | |
![]() |
Esta función permite realizar bucles, para que as funcións contidas entre os parénteses se executen un número determinado de veces.Exemplo: Executamos o proceso desde a=0 ata a=9. Cando a=10 non se cumpre a condición e sae do bucle.for(inicio,condición,modificador) a++: incrementa 1 for( int a=0; a<10; a++) { // Proceso a repetir } |
while(condición) { proceso } (Mentres …) | |
![]() |
Mentres se cumpra a condición establecida entre parénteses execútase o proceso encerrado baixo chaves. O bucle finaliza cando se deixa de cumprir a condición.
Exemplo1: Executamos un proceso mentres a sexa menor ou igual que b: while(a<=b) { // proceso a repetir a = analogRead (A0); } Exemplo2: Executamos un proceso 200 veces var = 0; while(var < 200) { // acción a repetir var++; } |
break; | |
Serve para romper calquera bucle for(), while() ou do…while() aínda que non se cumpran as condicións establecidas. |