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.
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.
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. |