Arduíno

Ir a Arduíno en tecnoloxia.org

Guía de programación

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:

  • programa_led_parpadeanteDeclaració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
const int Valor enteiro constante
boolean Valor booleano: Toma o valor verdadeiro (true) ou falso (false)
char Carácter: Almacena un ASCII
byte Almacena un número de 8 bits no rango de 0 a 255
long Almacena un número de 32 bits no rango de -2.147.483.648 a 2.147.483.648
float Almacena un número decimal de 32 bits 

 

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
digitalRead(pin) Permite ler un pin dixital (0 ou 1)
digitalWrite(pin,estado) Permite escribir un pin dixital con 1 ou 0 (ou con HIGH e LOW)

 

Funcións analóxicas:

analogRead(pin) Permite ler un valor analóxico de 0 a 1023
analogWrite(pin,valorPWM) Permite escribir un valor analóxico de 0 a 255

 

Outras funcións:

delay(n); temporización en milésimas de segundo
delayMicroseconds(n); temporización en microsegundos
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
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… )
if 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(condición) { proceso 1 } else { proceso 2 } (Se … se non …)
if-else 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

switch() / case (Varios camiños )
fluxo_cond5 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.

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

while(condición) { proceso } (Mentres …)
 estrutura_mentresfacer2 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:

Exemplo2: Executamos un proceso 200 veces

break;
Serve para romper calquera bucle for(), while() ou do…while() aínda que non se cumpran as condicións establecidas.