1.2_Guia de programació

Aquesta pàgina inclou les funcions més comunes utilitzades a Arduino, com un manual de referència. En les següents pàgines es presenten les diferents funcions a poc a poc miyjançant exemples i exercicis.

Per aprendre més tipus de variables i funcions pots consultar la referència d’Arduino  i a la web https://www.arduino.cc/en/Tutorial/Sketch.

Xuleta per programar…

Un sketch és el nom que Arduino utilitza per a un programa. És la unitat de codi que es puja i s’executa a la placa d’Arduino.

Ens basarem en el programa Blink per explicar les parts d’un sketch

Estructura bàsica d’un programa:

  • Declaració de variables i funcions:

A l’inici es defineixen les constants, variables i funcions que s’utilitzaran més endavant en el programa.Per exemple, un LED connectat al pin 13 de la placa Arduino.

int LED = 13;

  • Configuració: setup () {…}

Aquí s’introdueix el codi de configuració inicial. S’executa una vegada. Per exemple, aquí indiquem que el passador 13 és un pin de sortida: pinMode (LED, OUTPUT). També podem inserir codi que només volem que carregui al començament del programa, una vegada.

  • Programa: loop () {…}

Les instruccions contingudes dins del bucle de funció s’executen de forma indefinida, fins que es desconnecti l’Arduino. Per exemple, fer que el LED s’encengui i s’apagui a determinats intervals de temps.

  • comentaris:

Ús / ** / per afegir un paràgraf amb diverses línies
// S’utilitza per afegir un comentari d’una sola línia

Les variables

Una variable és una dada que canvia de valor al llarg de l’execució del programa, mentre que una constant roman sempre el mateix valor.

Una variable és un lloc per emmagatzemar un conjunt de dades. Té un nom, un tipus, i un valor.

Per exemple, a Blink es declara una variable amb el nom de ledPin, el tipus int, i el valor inicial de 13. Es fa servir per indicar a quins pin d’Arduino el LED està connectat. Cada vegada que el nom de ledPin apareix en el codi, es recuperarà el seu valor. En aquest cas, la persona que escriu el programa podria haver optat per no crear la variable ledPin i en el seu lloc escriure 13 a tot arreu. L’avantatge d’utilitzar una variable es és que fa més fàcil canviar el LED a un pin diferent: només cal editar la línia on  s’assigna el valor inicial de la variable.

Sovint, però, el valor d’una variable canviarà mentre s’executa l’sketch. Per exemple, es podria emmagatzemar el valor llegit a l’entrada en una variable. Hi ha més informació al tutorial variables.

Tipus de variables:

descripció exemple
int Defineix per defecte una variable. Emmagatzema una variable de 16 bits valor sencer en el rang des -32.768-32.767
int brillo=0; // Indica que a variable brillo toma un valor = 0. Durante a execución do programa aquest  valor es pot variar.
1
2
3
4
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 sencer constant
const int led=9; // Indica que conectamos un LED no pin 9. O valor non varía durante a execución do programa.
1
2
3
4
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 el valor verdader (true) o fals (false)
boolean acendido=true; // Indica que a variable “acendido” é verdadeira.
1
2
3
4
boolean acendido = true ;
// Indica que a variable “acendido” é verdadeira.
char Carácter: Emmagatzema un ASCII
char letra=’a’; // Indica que a variable “letra” toma o valor “a”
1
2
3
4
char letra = ‘a’ ;
// Indica que a variable “letra” toma o valor “a”
byte Emmagatzema un número de 8 bits amb un rang de 0 a 255
byte C = 23; // Indica que a variable C toma o valor 23
1
2
3
4
byte C = 23 ;
// Indica que a variable C toma o valor 23
long Emmagatzema un número de 32 bits amb rango de -2.147.483.648 a 2.147.483.648
long Contador = -10000; // Indica que o contador toma un valor de -10000
1
2
3
4
long Contador = – 10000 ;
// Indica que o contador toma un valor de -10000
float Emmagatzema un número decimal de 32 bits 
float pi = 3.1416; // Indica que a variable pi ten un valor de 3,1416
1
2
3
4
float pi = 3.1416 ;
// Indica que a variable pi ten un valor de 3,1416

Por simplificar, aquí utilitzarem int en comptes de const int para definir las constantes. Por exemplo: int led=9;  para indicar que o led está conectado al pin 9.

Un array és un conjunt de variables. tipo nom [nº de variables]={valor1, …, valor n}

Exemple: const int leds[4]={7,8,9,10} Crea  l’array “leds” amb espai per emmagatzemar 4 números de tipus const int, no cal emmagatzemar els valors 7, 8,9 i 10.

Funcións dels programes

Funcions digitals:

pinMode (pin,modo) Permet configurar un pin
pinMode (13,OUTPUT); pinMode (pulsador,INPUT);
1
2
3
4
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
1
2
3
4
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);
1
2
3
4
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
1
2
3
4
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
1
2
3
4
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
1
2
3
4
delay ( 1000 ) ;
// Agarda 500ms = 0,5s
delayMicroseconds(n); temporización en microsegundos
delayMicroseconds(100); //Agarda 100 μs = 0.0001s
1
2
3
4
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.
1
2
3
4
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