You are on page 1of 5

LENGUAXE DE PROGRAMACIÓN:

Sintaxis:
 ; (punto e coma): sempre ó final de cada instrución.
 {} (corchetes): marcan o inicio e o final dun bloque.
 // (dobre barra): comentario de unha línea.
 /*comentario */: comentarios en varias líneas.
Constantes:
 INPUT: entrada → pinMode (led, INPUT)
 OUTPUT: saída → pinMode (led, OUTPUT)
 HIGH: encendido (5V) → como máximo 5v, pode traballar a 3,3v
 LOW: apagado (0V)
Tipos de datos:
 boolean ou bool → 2 valores. 1bit
true: verdadeiro → Ex: bool a = true;
false: falso → Ex: bool a = false;

 Char → caracteres, ocupa 1 byte x carácter.


Ex: char var = ‘c’;

 byte → 1 byte (8 bits).


Ex: byte var = B00000001;
byte var =50; // vai de 0-255
 int → 2 bytes (16 bits). Rango -32768 hasta 32767
 unsigned int → 2bytes (16bits). Rango de 0 e 65535
 long → enteiro de 32 bits (4 bytes) → desde -2.147.483.648 a 2.147.843.647
 unsigned long → 32 bits → desde 0 a 4.294.967.295

 float → 32 bits → permite almacenar números reais.


Ex: float a = 3,5;
 string → cadea de caracteres. Ex: string mensaje = “Hola mundo”;

 array → matriz.
Ex: int a[6]; //declaramos un array de enteiros de 6 posicións
int var;
var = a[0]; //gardamos o valor da posición 0 na variable variable:
a[1] = 5; // na posición 1 gardamos o número 5

FUNCIÓNS PRINCIPAIS:

E/S dixitais:
 Configuración de pins:
 pinMode (nº de pin, Entrada(INPUT) ou saída (OUTPUT):
Ex: pinMode (13, OUTPUT); // Pin 13 configurado como saída
pinMode( 14, INPUT); // Pin 14 configurado como entrada
// isto configúrase no Setup porque solo se executa unha vez.
 Escribir en pin dixital:
 digitalWrite (nº de pin, valor -> nivel alto(HIGH) ou baixo (LOW)):
Ex: digitalWrite (15, HIGH); //Poño o valor 15 a valor alto/true/positivo... 5V
digitalWrite (16, LOW); //Poño o valor 16 a valor baixo/false/masa... 0V
// Execútase no void loop.

 Ler pins dixitais:


 digitalRead (nº de pin):
Ex: digitalRead(16); // Lemos o pin 16 (HIGH ou LOW)
// Execútase no void loop.

E/S analóxicas:
 Ler entradas analóxicas:
 analogRead (nº de pin);
No noso caso, en mega, os pins de lectura son os A0 ata A15.
Resolución: 10 bits → 210 -1 = 1023
0: mínimo = 0V
1023: máximo = 5V
5/1024 = 4,88
4,88-10 -3 V = 4,9 mV
A resolución mínima que pode detectar é de 4,9 → 5. É dicir, ata 5mV non detecta cambios, si a
resolución fose de 13 bits, detectaría cambios ós 0,61mV.

15
100 microsegundos = 100ms = 0,0001s
f.max = 10 kHz
10
f.muestreo >= 2 * f. máxima do sinal
→ f.muestreo >= 20
5 → T < 1/20 → T < 0,05s = 50ms
f.max = 5 kHz
0
0 1 2 3 4 5
 Escribir analóxicas:
 analogWrite (nº de pin (de A0 a A15, valor (de 0 a 255 → 8bits));
Ex: analogWrite (0, 123) → 0 = 0V e 255 = 5V

Arduino escribe o valor analóxico (saída) en PWM (modulación por ancho de pulso)

Ex: analogWrite (2,0);

100%

Ex: analogWrite(2,64); //25%


5

0
25%

Ex: analogWrite(2,127); //50%

0
50%

Duty cicle

Os pins cos que podo traballar en arduino en PWM son:


 2-12
 44-46
*
*Escalado: a entrada analóxica vai de 0 a 1023, dividímola entre 4 para que se aproxime a 255.
COMANDOS:
 delay: introduce unha pausa no noso programa en milisegundos.
delay (1000); // o programa queda quieto 1s.

 Puerto serie:
Serial.print (“Hola mundo”); // escribe un detrás do outro.
Serial.println (“Hola mundo”); // salto de columna.
Serial.print (valor); //”valor” é unha variable e mostrará o seu valor.

ESTRUCTURAS DE CONTROL:
 if ... else: se si, fago unha cousa, senón fago outra.
pseudocódigo: código:
si o led está apagado{ if (digitalRead (led) == LOW){
encendo; digitalWrite (led, HIGH);
} {
senón { else{
apago; digitalWrite (led, LOW);
} }

Bucle for:
 Bucle for:
for (inicio; fin; incremento / decremento){
Código;
}

Ex: for (i=0; i<=10; i++){


suma = suma + i;
}

Os bucles pódense anidar:

 Bucle While:
while (condición = true){
execútase o código mentras o while sexa true;
}

*Para romper un bucle infinito, úsase break.

You might also like