2. Continguts
◦ Estructura de programa.
◦ Variables.
◦ Funcions digitals.
◦ Funcions analògiques.
◦ Altres funcions.
◦ Operadors.
◦ Operadors compostos.
◦ Estructura de control if.
◦ Estructura de control if ... else.
◦ Estructura de control switch ... case.
◦ Estructura de control for.
◦ Estructura de control while.
◦ Estructura de control break.
3. Conceptes bàsics – Estructura de programa.
Referència de la pàgina oficial
d’Arduino
Podem distingir tres parts:
1.- Definició de variables.
2.- Configuració.
3.- Programa.
• Declaració de variables i funcions :
En aquesta part definim les constants, variables i funcions que farem
servir al programa. Per exemple, volem llegir un valor d’un sensor analògic
i per això creen una variable anomenada “valor” i la inicialitzem a “0”.
int valor=0;
• Configuració:
Escrivim el codi de la configuració inicial. S’executa només una
vegada. Per exemple: iniciem el monitor sèrie de l’Arduino amb
el codi Serial.begin(9600);
També podem escriure qualsevol codi que vulguem que
s’executi només una vegada.
void setup(){
}
• Programa:
Les declaracions contingudes dins de la funció de
bucle s’executen indefinidament, fins que es
desconnecta la placa arduino. Per exemple, assignem
la lectura del sensor a la variable valor i la mostrem
pel port sèrie.
void loop(){
}
• Comentaris:
Utilitzem /* … */ per agregar un paràgraf de vàries línies
Utilitzem // … per afegir un comentari d’una línia.
4. Conceptes bàsics – Variables 1.
int
const int
boolean
char
String
byte
long
float
Valor enter. Emmagatzema un valor enter variable
de 16 bits en el rang de -32768 a +32767.
int brillo=0;
// Indica que la variable brillo pren un valor = 0. mentre s'executa el
programa aquest valor pot variar.
Valor enter constant.
const int led= 9 ;
// Indica que connectem un LED al pin 9. El valor no
canvia durant l’execució del programa.
Valor booleà : Pren el valor vertader
(true) o fals (fals)
boolean encendido=true;
// Indica que la variable
"encendido" és vertadera.
Caràcter: Emmagatzema el valor del
caràcter ASCII.
char letra='a';
// Indica que la variable
"letra" pren el valor "a“.
Text: Emmagatzema un conjunt de
caràcters.
String text=“Hola mundo";
// Indica que la variable "text" pren
el valor “Hola mundo”.
Emmagatzema un nombre de 8 bits
de rang de 0 fins a 255.
byte C = 23;
// Indica que la variable C
pren el valor 23.
Emmagatzema un nombre de 32
bits de rang de -2.147.483.648
fins a 2.147.483.648.
long Contador = -10000;
// Indica que o contador toma un
valor de -10000
Emmagatzema un nombre decimal
de 32 bits de rang de 0 fins a 255.
float pi = 3.1416;
// Indica que la variable pi té
un valor de 3,1416.
5. Conceptes bàsics – Variables 2.
Per a simplificar, aquí utilitzarem int en lloc de const int per definir constants. Per
exemple: int led=9; per a indicar que el led està connectat al pin 9.
Un array és un conjunt de variables. int miArray[] = {valor0,
valor1, valor2…}
Amb un bucle podem recórrer un array
per llegir-lo o per escriure valors.
6. Conceptes bàsics – Funcions digitals.
pinMode()
Configura el pin especificat perquè es
comporti com a entrada (INPUT) o com a
sortida (OUTPUT).
digitalRead() Llegeix el valor d'un pin digital
especificat, o HIGH bé LOW.
Estableix el pin 13 al mateix valor que el pin 7, declarat com a entrada.
digitalWrite()
Escriu un HIGH o un LOW valor en un pin digital.
El codi fa que el pin digital 13 en OUTPUT i el canviï alternant entre HIGH
i LOW a un segon ritme.
7. Conceptes bàsics – Funcions analògiques.
analogRead()
Permet llegir un
valor analògic entre
0 i 1023.
El codi llegeix la tensió a
analogPin i la mostra.
Permet escriure un
valor analògic entre
0 a 255.
analogWrite()
Estableix la sortida al LED proporcional al valor llegit des del
potenciòmetre.
8. Conceptes bàsics – Altres Funcions 1.
delay()
Atura el programa durant la
quantitat de temps (en
mil·lisegons) especificada
com a paràmetre.
El codi posa en pausa el programa durant un
segon abans de canviar el pin de sortida.
delayMicroseconds()
Temporització en
microsegons.
El codi configura el pin número 8 perquè
funcioni com a pin de sortida. Envia un tren de
polsos d'un període d'aproximadament 100
microsegons. L'aproximació es deu a l'execució
de les altres instruccions del codi.
9. Conceptes bàsics – Altres Funcions 2.
millis()
Retorna el nombre de mil·lisegons passats
des que la placa Arduino va començar a
executar el programa actual. Aquest nombre
es desbordarà (tornarà a zero), després
d'aproximadament 50 dies. Aquest codi d'exemple imprimeix al port sèrie el nombre de mil·lisegons passats des que
la placa Arduino va començar a executar el codi.
tone() Genera un so de la freqüència desitjada,
al pin indicat i amb una durada que
indiquem.
tone(6,12000,500);
// Genera un to de 12 KHZ durant 0.5s des del pin 2.
notone() Finalitza el to que reprodueix el pin indicat.
12. Conceptes bàsics – Estructures de control - if.
Quan es compleix la condició establerta,
s'executen les funcions del procés definides entre
claus {…}. Quan no es compleix la condició, no
s'executen i el programa continua el seu curs.
if
Els claudàtors es poden ometre després d'una
declaració if. Si es fa, la línia següent (definida pel punt
i coma) es converteix en l'única declaració condicional.
13. Conceptes bàsics – Estructures de control – if else.
If else
A continuació es mostra un extracte d'un codi per al
sistema de sensor de temperatura
Permet if…else un major control sobre el flux de codi que la if instrucció bàsica, ja
que permet agrupar múltiples comparacions. else S'executarà una clàusula (si n'hi
ha) si la condició de la if instrucció resulta en ”false”. Llavors else pot procedir a una
altra if comparació, de manera que es poden executar múltiples comparacions
mútuament excloents al mateix temps.
14. Conceptes bàsics – Estructures de control – switch ... case.
switch ... case
Exemple: Si la variable pren el valor 4,
s'executa el procés 1, si pren el valor 5,
s'executa el procés 2 i si no hi ha cap de
les condicions anteriors. es compleixen
(per defecte) s'executa el procés 3.
switch(variable)
{
case 4:
// proceso1
break;
case 5:
// proceso2
break;
default:
// proceso3
break;
}
Permet escollir entre diversos camins per executar diferents
funcions o grups de funcions.
15. Conceptes bàsics – Estructures de control – bucle for.
for Aquesta funció permet realitzar bucles, para que las funcions contingudes
entre els parèntesis s’executen un número determinat de vegades.
Exemple: Executem el procés des de a=0 fins a a=9. Quan a=10
no s’acompleix la condició de l’estructura de
bucle.for(inicio,condición,modificador)
a++: augmenta 1
for( int a=0; a<10;
a++) {
// Proceso a repetir
}
16. Conceptes bàsics – Estructures de control – while.
while
while(a<=b) {
// proceso a repetir
a = analogRead
(A0);
}
var = 0;
while(var < 200)
{
// acción a repetir
var++;
}
Sempre que es compleixi la condició establerta entre parèntesis, el procés s'executa entre
claus. El bucle acaba quan la condició ja no es compleix.
Exemple 1: executem un procés
mentre a és menor o igual que b:
Exemple 2: executem un procés
200 vegades
17. S'utilitza per trencar qualsevol bucle for(), while() o do...while()
encara que no es compleixin les condicions establertes.
Conceptes bàsics – Estructures de control – break.
break
Al codi següent, el control surt del for bucle quan el valor del sensor supera el llindar.