PDF de programación - MANUAL DE LENGUAJE DE PROGRAMACIÓN DE ARDUINO

Imágen de pdf MANUAL DE LENGUAJE DE PROGRAMACIÓN DE ARDUINO

MANUAL DE LENGUAJE DE PROGRAMACIÓN DE ARDUINOgráfica de visualizaciones

Actualizado el 21 de Marzo del 2018 (Publicado el 19 de Febrero del 2018)
3.940 visualizaciones desde el 19 de Febrero del 2018
1,3 MB
25 paginas
Creado hace 8a (27/10/2015)
MANUAL DE LENGUAJE DE PROGRAMACIÓN DE ARDUINO




INTRODUCCIÓN

Puede dividirse en: ESTRUCTURA, VARIABLES, FUNCIONES.

I.

ESTRUCTURA GENERAL DE UN SKETCH/PROGRAMA


1.1. ESTRUCTURA BÁSICA DEL PROGRAMA:

Se compone de tres secciones principales:


1.1.1.

Sección de declaración de variables: Ubicadas al inicio.


1.1.2. Sección llamada “void setup”:

Delimitada por llaves de apertura y cierre. Es la primera función a ejecutar en el programa. Se
ejecutan una única vez en el momento de encender o resetear la placa ARDUINO.
Se usa para inicializar:

 Los modos de trabajo de los pins E/S (PinMode)
 Comunicación en serie

Ejemplo:









// Se ejecuta una zona vez, cuando el programa inicia

int buttonPin = 3;
void setup()
{
Serial.begin(9600);
pinMode(buttonPin, INPUT); // Configura en pin digita l#3 como ENTRADA de datos
}
void loop()
{
// ...
}

// Comunicación en serie



1.1.3. Sección llamada “void loop()”:

Delimitada por llaves de apertura y cierre; incluye el código que se ejecuta continuamente
leyendo entradas, activando salidas, etc. Esta función es el núcleo de todos los programas
ARDUINO y hace la mayor parte del trabajo. Se ejecutan justo después de la sección “void
setup()” infinitas veces hasta que la placa se apague (o se resetee).

Ejemplo:

Int pin = 10;
void setup()
{
pinMode(pin, OUTPUT);
}
void loop()
{
digitalWrite(pin, HIGH);
delay(1000);

digitalWrite(pin, LOW);
delay(1000);

}





// Establece 'pin' como salida

// pone en uno (on, 5v) el ´pin´
// espera un segundo (1000 ms)
// pone en cero (off, 0v.) el ´pin´
// espera un segundo (1000 ms)

1







MANUAL DE LENGUAJE DE PROGRAMACIÓN DE ARDUINO




1.2. ESTRUCTURA DE CONTROL:

BLOQUES CONDICIONALES



1.2.1. Bloque “if” , “if/else” y “If/else if” :



 Las sentencias if comprueban si cierta condición ha sido alcanzada y ejecutan todas las
sentencias dentro de las llaves si la declaración es cierta. Si es falsa el programa ignora la
sentencia.

Ejemplo:


byte x=50;
void setup() {

Serial.begin(9600);
if (x >=10 && x <=20){
Serial.println("Frase 1");
}
if (x >=10 || x <=20) {
Serial.println("Frase 2");
}
if (x >=10 && !(x<=20)) {
Serial.println("Frase 3");
}

void loop(){

}

}

Veremos que solamente se muestran la “Frase 2”
y la “Frase 3”. Esto es debido a que la condición
del primer “if” es falsa: en él se comprueba si la
variable “a” es mayor que 10 Y A LA VEZ si es
menor de 20. En cambio, la condición del segundo
“if” es cierta: en él se comprueba si la variable “a”
es mayor que 10 O BIEN menor de 20: como ya se
cumple una de las condiciones –la primera–, la
condición total ya es cierta valga lo que valga el
resto de condiciones presentes. La condición del
tercer “if” también es cierta: en él se comprueba
si la variable “a” es mayor que 10 y a la vez, gracias
al operador “!”, que NO sea menor de 20.





 Las sentencias if/else permiten un mayor control sobre el flujo del código que la declaración
if básica, por permitir agrupar múltiples comprobaciones. “Si esto no se cumple haz esto
otro”.

Ejemplo:

String cad1="hola";
String cad2="hola";
void setup() {

Serial.begin(9600);

void loop() {
if (cad1 == cad2){
Serial.println("La cadena es

}

igual");
}
else
{

Serial.println("La cadena es

diferente");
}
}

Hay que tener en cuenta que solamente se
pueden utilizar los operadores de comparación
cuando ambas cadenas han sido declaradas
como objetos String: si son arrays de caracteres
no se pueden comparar. En este sentido,
comparar si una cadena es mayor o menor que
otra simplemente significa evaluar las cadenas en
orden alfabético carácter tras carácter (por
ejemplo, “alma” sería menor que “barco”, pero
“999” es mayor que “1000” ya que el carácter “9”
va después del
las
comparaciones de cadenas son case-sensitive (es
decir, el dato de tipo String “hola” no es igual que
el dato de tipo String “HOLA”).

“1”). Recalcar que



2





MANUAL DE LENGUAJE DE PROGRAMACIÓN DE ARDUINO






 Las sentencias if/else if pueden realizar múltiples comprobaciones en una misma
estructura de condiciones. Cada comprobación procederá a la siguiente sólo cuando su
propio resultado sea FALSE. Cuando el resultado sea TRUE, su bloque de código contenido,
será ejecutado, y el programa esquivará las siguientes comprobaciones hasta el final de la
estructura de comprobaciones.

Ejemplo:

int numero;

void setup(){
Serial.begin(9600);
}

void loop(){

if (Serial.available() > 0) { //El nº introducido ha de estar en el rango del tipo "int"
numero=Serial.parseInt();
if (numero == 23){
Serial.println("Numero es igual a 23");
}
else if (numero < 23) {



Serial.println("Numero es menor que 23");
}
else {
Serial.println("Numero es mayor que 23");
}

}



}



En el código anterior aparece un primer “if” que comprueba si hay datos en el buffer de entrada
del chip TTL-UART pendientes de leer. Si es así (es decir, si el valor devuelto por Serial.available()
es mayor que 0), se ejecutarán todas las instrucciones en su interior. En cambio, si la condición
resulta ser falsa (es decir, si Serial.available() devuelve 0 y por tanto no hay datos que leer),
fijarse que la función “loop()” no ejecuta nada.

En el momento que la condición sea verdadera, lo que tenemos dentro del primer “if” es la
función Serial.parseInt() que reconoce y extrae de todo lo que se haya enviado a través del canal
serie (por ejemplo, usando el “Serial monitor”) un número entero, asignándolo a la variable
“numero”. Y aquí es cuando llega otro “if” que comprueba si el valor de “numero” es igual a 23.
Si no es así, se comprueba entonces si su valor es menor de 23. Y si todavía no es así, solo queda
una opción: que sea mayor de 23. Al ejecutar este sketch a través del “Serial monitor”, lo que
veremos es que cada vez que enviemos algún dato a la placa, esta nos responderá con alguna
de las tres posibilidades.



Nota: Ahora que ya sabemos las diferentes sintaxis del bloque “if”, veamos qué tipo de
condiciones podemos definir entre los paréntesis del “if”. Lo primero que debemos saber es que
para escribir correctamente en nuestro sketch estas condiciones necesitaremos utilizar alguno
de los llamados operadores de comparación,

 x == y (x es igual a y)

 x != y (x no es igual a y)



3



MANUAL DE LENGUAJE DE PROGRAMACIÓN DE ARDUINO

 x < y (x es menor a y)
 x > y (x es mayor a y)

 x <= y (x es menor o igual a y)
 x >= y (x es mayor o igual a y)






1.2.2. Bloque “switch/case”:

void setup(){

byte x=50;
Serial.begin(9600);
switch (x) {

case 20:

Serial.println("Vale 20 exactamente");
break;

case 50:

Serial.println("Vale 50 exactamente");
break;
default:
Serial.println("No vale ninguna de los

valores anteriores");

}

}
void loop(){

}



Consta en su interior de una serie de
secciones “case” y, opcionalmente, de una
sección “default”. Nada más llegar a la
primera línea del “switch”, primero se
comprueba el valor de
la variable o
expresión que haya entre sus paréntesis. Si
el resultado es igual al valor especificado en
la primera sección “case”, se ejecutarán las
instrucciones del interior de la misma y se
dará por finalizado el “switch”, en caso de
no ser igual el resultado de la expresión a lo
especificado en el primer “case” se pasará
a comprobarlo con el segundo “case”, y si
no con el tercero, etc. Por último, si existe
una sección “default” (opcional) y el
resultado de la expresión no ha coincidido
con ninguna de
las secciones “case”,
entonces se ejecutarán las sentencias de la
sección “default”.

BLOQUES REPETITIVOS (BUCLES)

1.2.3. Bloque “while”:

Este bucle repite la ejecución de las instrucciones que están dentro de sus llaves de apertura y
cierre mientras la condición especificada entre sus paréntesis sea cierta (“true”,1), sin importar
el número de veces repita. El número de iteraciones realizadas depende del estado de la
condición definida.

byte x=1;
void setup(){

}
void loop(){

Serial.begin(9600);

while (x <= 50)
{
Serial.println("Es menor

de 50");

x=x+1;
delay(250);

}

Serial.println("Es mayor

que 50");
delay(250)
}


Ejemplo: El “Serial monitor” los primeros 50 mensajes
que aparecerán indicarán que la variable es menor de
50 porque se está ejecutando el interior del “while”.
Pero en el momento que la variable sea mayor (porque
en cada iteración del bucle se le va aumentando en una
unidad su valor), la condición del “while” dejará de ser
cierta y saltará de allí, mostrando entonces el mensaje
(ya de forma infinita) de que la variable es mayor que
50.







4





MANUAL DE LENGUAJE DE PROGRAMACIÓN DE ARDUINO






1.2.4. Bloque “do”:

int pulsador = 24;
int led= 25;
void setup() {
pinMode(pulsador, INPUT);
pinMode(led, OUTPUT);
}
void loop() {
do
{
digitalWrite(led, HIGH);
delay(1000);
digitalWrite(led, LOW);
delay(1000);
}
while (digitalRead(pulsador) == HIGH);
}

1.2.5. Bloque “For”:


La condición es evaluada después de ejecutar
las instrucciones escritas dentro de las llaves.
Esto hace que las instrucciones siempre sean
ejecutadas como mínimo una vez aun cuando la
condición sea falsa, porque antes de llegar a
comprobar esta, las instrucciones ya han sido
leídas (a diferencia del bucle “while”, donde si
la condición ya de entrada era falsa
las
instrucciones no se ejecutaban nunca).











El bucle for es una estructura que se utiliza cuando queremos que una serie de acciones se repita
un número
  • Links de descarga
http://lwp-l.com/pdf8879

Comentarios de: MANUAL DE LENGUAJE DE PROGRAMACIÓN DE ARDUINO (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad