SlideShare ist ein Scribd-Unternehmen logo
1 von 17
PROGRAMEM LA
PLACA ARDUINO
Conceptes bàsics - INS Olorda
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.
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.
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.
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.
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.
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.
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.
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.
Conceptes bàsics – Operadors.
Operació mòdul
Operació divisió
Conceptes bàsics – Operadors compostos.
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.
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.
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.
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
}
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
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.

Weitere ähnliche Inhalte

Ähnlich wie Programem la placa Arduino - Presentación para la asignatura de robótica

Programació - Pac2 - Solució - Lídia Bria
Programació - Pac2 - Solució - Lídia BriaProgramació - Pac2 - Solució - Lídia Bria
Programació - Pac2 - Solució - Lídia BriaLidia Bria
 
Lego mindstorm nxt alex sanchez
Lego mindstorm nxt alex sanchezLego mindstorm nxt alex sanchez
Lego mindstorm nxt alex sanchezAlex San
 
Programació Web - PAC 4 correcció - Multimèdia (UOC) - Paquita Ribas
Programació  Web - PAC 4 correcció - Multimèdia (UOC) - Paquita RibasProgramació  Web - PAC 4 correcció - Multimèdia (UOC) - Paquita Ribas
Programació Web - PAC 4 correcció - Multimèdia (UOC) - Paquita RibasPaquita Ribas
 
1213 Sockets [3] Programació
1213 Sockets [3] Programació1213 Sockets [3] Programació
1213 Sockets [3] ProgramacióOriol Torres
 
Presentació pfc disseny mòdul knx
Presentació pfc disseny mòdul knxPresentació pfc disseny mòdul knx
Presentació pfc disseny mòdul knxTOMAS GARCIA VERDUGO
 
Programació - Pràctica1 - Lidia Bria
Programació - Pràctica1 - Lidia BriaProgramació - Pràctica1 - Lidia Bria
Programació - Pràctica1 - Lidia BriaLidia Bria
 
Programació - Pac1 - Lidia Bria
Programació - Pac1 - Lidia BriaProgramació - Pac1 - Lidia Bria
Programació - Pac1 - Lidia BriaLidia Bria
 
Diàleg del projecte
Diàleg del projecteDiàleg del projecte
Diàleg del projecteSergiTorres23
 
Andorra Dot Net Event4 Assentant Bases
Andorra Dot Net  Event4  Assentant BasesAndorra Dot Net  Event4  Assentant Bases
Andorra Dot Net Event4 Assentant BasesLluis Franco
 
Programació - Pac3 - Solució - Lídia Bria
Programació - Pac3 - Solució - Lídia BriaProgramació - Pac3 - Solució - Lídia Bria
Programació - Pac3 - Solució - Lídia BriaLidia Bria
 
Disseny d'interacció: Arduino
Disseny d'interacció: ArduinoDisseny d'interacció: Arduino
Disseny d'interacció: ArduinoJordi Zango Novell
 

Ähnlich wie Programem la placa Arduino - Presentación para la asignatura de robótica (20)

UD3 PROGRAMACIÓ
UD3 PROGRAMACIÓUD3 PROGRAMACIÓ
UD3 PROGRAMACIÓ
 
Programació - Pac2 - Solució - Lídia Bria
Programació - Pac2 - Solució - Lídia BriaProgramació - Pac2 - Solució - Lídia Bria
Programació - Pac2 - Solució - Lídia Bria
 
Prog_prac1
Prog_prac1Prog_prac1
Prog_prac1
 
Lego mindstorm nxt alex sanchez
Lego mindstorm nxt alex sanchezLego mindstorm nxt alex sanchez
Lego mindstorm nxt alex sanchez
 
Programació Web - PAC 4 correcció - Multimèdia (UOC) - Paquita Ribas
Programació  Web - PAC 4 correcció - Multimèdia (UOC) - Paquita RibasProgramació  Web - PAC 4 correcció - Multimèdia (UOC) - Paquita Ribas
Programació Web - PAC 4 correcció - Multimèdia (UOC) - Paquita Ribas
 
Sistema de control
Sistema de controlSistema de control
Sistema de control
 
Control pid
Control pidControl pid
Control pid
 
UD3 Programació
UD3 ProgramacióUD3 Programació
UD3 Programació
 
Prog_pac3
Prog_pac3Prog_pac3
Prog_pac3
 
Entorn Tangible Digital
Entorn Tangible DigitalEntorn Tangible Digital
Entorn Tangible Digital
 
1213 Sockets [3] Programació
1213 Sockets [3] Programació1213 Sockets [3] Programació
1213 Sockets [3] Programació
 
Presentació pfc disseny mòdul knx
Presentació pfc disseny mòdul knxPresentació pfc disseny mòdul knx
Presentació pfc disseny mòdul knx
 
Programació - Pràctica1 - Lidia Bria
Programació - Pràctica1 - Lidia BriaProgramació - Pràctica1 - Lidia Bria
Programació - Pràctica1 - Lidia Bria
 
Sistema de control
Sistema de controlSistema de control
Sistema de control
 
Programació - Pac1 - Lidia Bria
Programació - Pac1 - Lidia BriaProgramació - Pac1 - Lidia Bria
Programació - Pac1 - Lidia Bria
 
Diàleg del projecte
Diàleg del projecteDiàleg del projecte
Diàleg del projecte
 
Prog_pac1
Prog_pac1Prog_pac1
Prog_pac1
 
Andorra Dot Net Event4 Assentant Bases
Andorra Dot Net  Event4  Assentant BasesAndorra Dot Net  Event4  Assentant Bases
Andorra Dot Net Event4 Assentant Bases
 
Programació - Pac3 - Solució - Lídia Bria
Programació - Pac3 - Solució - Lídia BriaProgramació - Pac3 - Solució - Lídia Bria
Programació - Pac3 - Solució - Lídia Bria
 
Disseny d'interacció: Arduino
Disseny d'interacció: ArduinoDisseny d'interacció: Arduino
Disseny d'interacció: Arduino
 

Programem la placa Arduino - Presentación para la asignatura de robótica

  • 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.
  • 10. Conceptes bàsics – Operadors. Operació mòdul Operació divisió
  • 11. Conceptes bàsics – Operadors compostos.
  • 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.