A todos nos ha pasado que cuando ya le pillamos el truquillo a esto de Arduino hacemos programas más y más grandes, añadiendo funciones extras haciendo que se sumen lineas hasta casi volvernos locos buscando esa linea...
Para solucionar esto y hacer que nuestro código este mucho mejor estructurado. Podemos solucionar esto de varias maneras. Una de ellas seria con Sketch que vayamos a utilizar en otros programas y otra mediante pestañas dentro del mismo Sketch.
Supongamos que tenemos el siguiente código:
int led = 13; void setup() { pinMode(led, OUTPUT); } void loop() { funcion(); } void funcion(){ digitalWrite(led, HIGH); // Enciende el LED delay(1000); // Espera un segundo digitalWrite(led, LOW); // Apaga el LED delay(1000); // Espera un segundo }
Como se puede ver en el loop() llamamos a void funcion() y esta es la que contiene el código que hace que el Led encienda y apague. esta parte del código sera la que guardaremos en otro archivo llamado por ejemplo funcion.ino
Hay que tener en cuenta que en el programa solo puede haber un setup() y un loop(), por lo que estos archivos solo pueden contener la función especifica en este caso void funcion()
Para añadir el archivo que contiene la función lo haremos desde Programas --> Añadir fichero...
![]() |
Añadir fichero Sketch Arduino |
Quedandonos de la siguiente manera:
![]() | |
|
Para esto nos tenemos que ir a la flecha situada en la parte superior derecha de la pantalla donde se nos abrirá el siguiente menú:
![]() |
Pestaña nueva Arduino |
De las dos maneras nos saldrá un recuadro donde introduciremos el nombre del archivo, en este caso "funcion":
![]() |
Da nombre a la pestaña nueva |
La única diferencia es que si añadimos el archivo, este ya viene con un cçodigo y con "Nueva pestaña" el archivo estará vacío esperando vuestro código, Saludos!!!
haciendo la prueba, me da error funcion was not declared, que puede suceder?
ResponderEliminarComprueba que la función creada en la pestaña sea por ejemplo void funcion() {} - que contenga los paréntesis - y luego en el sketch principal lo llamas funcion();
EliminarSaludos,
Gracias, lo voy a probar. ¿Hay que poner #Include en la pestaña principal (donde está el void Setup, void Loop)?
ResponderEliminarMuchas gracias
Muchas gracias. Ahora se para que sirve, y si que me hacia falta.
ResponderEliminar