Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


arduino ejercicio 5 practica, Ejercicios de Ingeniería de Transportes

ejercicio de arduino resuelto tinkercad

Tipo: Ejercicios

2025/2026

Subido el 26/02/2026

sabela-vazquez-calvino
sabela-vazquez-calvino 🇪🇸

1 documento

1 / 13

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Transporte aéreo y sistemas embardados
1
Práctica 6
Arduino 5
pf3
pf4
pf5
pf8
pf9
pfa
pfd

Vista previa parcial del texto

¡Descarga arduino ejercicio 5 practica y más Ejercicios en PDF de Ingeniería de Transportes solo en Docsity!

Transporte aéreo y sistemas embardados

Práctica 6

Arduino 5

Transporte aéreo y sistemas embardados

Índice

• Objetivos:

– Conocer los fundamentos básicos de programación Arduino

• Entregables:

– N/A

Transporte aéreo y sistemas embardados

• Funciones:

• Bloque de código que realiza una función, y que puede “ocultar” sus

detalles de implementación;

• Es habitual (¡y necesario!) construirse bibliotecas de funciones

organizadas por tipología;

• Definición de una función:

tipo_devuelto nombre_funcion(argumentos) { // cuerpo de la función } // fin de la función

• Tipo_devuelto:

  • Definición del tipo de dato que la función devuelve cuando es llamada: int, char…
  • Si la función no devuelve ningún valor, debemos indicar tipo nulo (void);

• Nombre_función:

  • Mismo concepto que en nomenclatura de variables;

Generalidades fundamentales

void IntermitenciaLed (int Led, int Duración) { digitalWrite(Led, HIGH); delay(Duracion); digitalWrite(Led, LOW); }

Transporte aéreo y sistemas embardados

• Funciones:

• Definición de una función:

• Argumentos:

  • De ningún argumento, a varios, son los datos recibidos que necesita una función

para ejecutar su tarea;

  • El tipo nulo se puede obviar: setup(void) equivale a setup(), que es lo habitual;
  • Los tipos de datos y los valores deben ser coherentes: el compilador realiza

comprobaciones, pero es mejor no fiar el resultado al mismo;

  • Firma de una función: EsBisiesto(int)
  • Prototipo de una función: bool EsBisiesto(int Anho);
    • El prototipo le indica al compilador tipos recibidos/devueltos y número de

argumentos, para comprobar antes de cada llamada;

  • Al contrario que otros lenguajes, Arduino prototipa por nosotros las

funciones que creamos en un fichero. Si las declaramos antes del loop

normalmente no hay problema. Si las declaramos después del loop es

conveniente prototiparlas antes.

float Media(int p, int q) { float r = (p+q)/2; return r; } … void loop() { … float MediaNotas = Media(10, 5); …

Generalidades fundamentales

float Media(int , int ); … void loop(){ … float MediaNotas = Media(10,5); …} … float Media(int p, int q) { return (p+q)/2; // compacto por ahorro de espacio }

Transporte aéreo y sistemas embardados

• Funciones:

• Sobrecargas:

• Sobrecargamos una función cuando existe más de una firma con el mismo

nombre (que difieren en el número y/o tipo de argumentos):

int DuplicaEntero(int p) { return (2p); } float DuplicaFloat(float p) { return(2p); } … int nValorDuplicado = DuplicaEntero(10); float fValorDuplicado = DuplicaFloat(15.5);

• “Recomendaciones”:

• Nombres cortos, pero descriptivos de lo que se hace, y no cómo se hace;

• Una cosa al tiempo: una función debería hacer sólo una sola cosa;

• “Que quepa en una pantalla”: tamaños pequeños, sin tener que hacer scroll;

• “No reinventes la rueda”: ¿seguro que no lo ha hecho alguien ya?...Pero, aún

así, genera tus propias librerías: aprenderás, y son herramientas que siempre

irán contigo.

Generalidades fundamentales

int Duplica(int p) { return (2p); } float Duplica(float p) { return(2p); } … int nValorDuplicado = Duplica(10); float fValorDuplicado = Duplica(15.5);

Transporte aéreo y sistemas embardados

• Directivas de procesador:

• #include:

• Permite invocar funciones de una biblioteca a nuestro código (imprescindible

al trabajar con hardware de cualquier fabricante);

• Solicita al compilador que incluya el contenido del fichero indicado en nuestro

código fuente, en el punto en el que hemos escrito la directiva;

• Dos formas de invocar una biblioteca:

• #include : busca en el directorio de bibliotecas por

defecto;

• #include “SoftwareSerial.h”: buscar en el directorio del proyecto;

• Los archivos de cabeceras contienen los prototipos de funciones de la

biblioteca (o métodos, si la biblioteca está escrita como clase);

• #undef NOMBRE; //”desregistra” una directiva de pre-procesador

Generalidades fundamentales

Transporte aéreo y sistemas embardados

• Directivas de procesador:

• #define:

• Otro uso común es “ocultar” instrucciones “de comprobación” que vamos

incorporando al código para ir revisando resultados parciales (ver siguiente);

• #ifdef … #endif

• Permiten incluir/descartar bloques de código encerrados entre las dos

directivas, si está definido un literal:

#define DEBUG 1 // al principio de nuestro código, típicamente, mientras estamos codificando … #ifdef DEBUG Serial.println(ValorLeido); Serial.println(ActuacionMotorIzquierdo); Serial.println(ActuacionMotorDerecho); #endif …

• De hecho, el compilador obvia el código y “aligera” el programa si no está

definido el literal.

• #if defined = #ifdef; #if !defined = #ifndef

Generalidades fundamentales

Transporte aéreo y sistemas embardados

Ejercicios

Transporte aéreo y sistemas embardados

Muchas gracias