Arduino en español
Circuitos con Arduino - Juan Antonio Villalpando
-- Tutorial de iniciación a Arduino --
Volver al índice del tutorial
____________________________
39.- La aplicación en dos archivos.
- Supongamos que tenemos una aplicacion con códigos muy largos, vamos a ver cómo podemos poner ese código en dos archivos.
- En el segundo archivo podríamos poner parte del código como una función, y llamar a esa función desde el primer archivo.
- En este sencillo ejemplo cuando pulsemos el Pulsador2 se encenderá el LED12 y cuando pulsemos el Pulsador3 se encenderá el LED13.
_______________________
- Conexiones.
_______________________
- Código.
uno_dos.ino |
/*
Juan A. Villalpandoo
kio4.com
*/
// Entrada y Salida.
// Al pulsar los pulsadores se enciende los LEDs, al dejar de pulsarlos, se apagarán.
#define pin2 2 // Al terminal 2 lo llamamos pin2. Aquí irá el pulsador 2.
#define pin3 3 // Al terminal 3 lo llamamos pin3. Aquí irá el pulsador 3.
#define pin12 12 // Al terminal 12 lo llamamos pin12. Aquí irá el LED12.
#define pin13 13 // Al terminal 13 lo llamamos pin13. Aquí irá el LED13.
int valor2; // Esto es una variable entera
int valor3; // Esto es una variable entera
// En el setup establecemos los parámetros iniciales.
void setup() {
pinMode(pin2, INPUT); // El pin2 será entrada. Pulsador.
pinMode(pin3, INPUT); // El pin3 será entrada. Pulsador.
pinMode(pin12, OUTPUT); // El pin12 será salida. LED12.
pinMode(pin13, OUTPUT); // El pin13 será salida. LED13.
Serial.begin(9600); // Para ver información en el Seria Monitor.
}
void loop() {
valor2 = digitalRead(pin2); // Lee el valor del pin2 y se lo asigna a valor2. (Puede ser 0 o 1)
if (valor2 == HIGH) {
digitalWrite(pin12, HIGH); // Si valor2 es ALTO, pone el pin12 en ALTO
Serial.println("Pulsado 2");
}
if (valor2 == LOW) {
digitalWrite(pin12, LOW); // Si valor2 es BAJO, pone el pin12 en BAJO
Serial.println("No Pulsado 2");
}
////////////////////////////////////////////////////
valor3 = digitalRead(pin3); // Lee el valor del pin3 y se lo asigna a valor3. (Puede ser 0 o 1)
if (valor3 == HIGH) {
digitalWrite(pin13, HIGH); // Si valor3 es ALTO, pone el pin13 en ALTO
Serial.println("Pulsado 3");
}
if (valor3 == LOW) {
digitalWrite(pin13, LOW); // Si valor3 es BAJO, pone el pin13 en BAJO
Serial.println("No Pulsado 3");
}
}
|
- Si consultamos la carpeta donde está el archivo, observaremos:
- La carpeta uno_dos y dentro el archivo uno_dos.ino
__________________________________________
__________________________________________
__________________________________________
- Vamos a poner el código anterior en dos archivos.
uno.ino |
/*
Juan A. Villalpandoo
kio4.com
*/
// Entrada y Salida.
// Al pulsar los pulsadores se enciende los LEDs, al dejar de pulsarlos, se apagarán.
#define pin2 2 // Al terminal 2 lo llamamos pin2. Aquí irá el pulsador 2.
#define pin3 3 // Al terminal 3 lo llamamos pin3. Aquí irá el pulsador 3.
#define pin12 12 // Al terminal 12 lo llamamos pin12. Aquí irá el LED12.
#define pin13 13 // Al terminal 13 lo llamamos pin13. Aquí irá el LED13.
int valor2; // Esto es una variable entera
int valor3; // Esto es una variable entera
// En el setup establecemos los parámetros iniciales.
void setup() {
pinMode(pin2, INPUT); // El pin2 será entrada. Pulsador.
pinMode(pin3, INPUT); // El pin3 será entrada. Pulsador.
pinMode(pin12, OUTPUT); // El pin12 será salida. LED12.
pinMode(pin13, OUTPUT); // El pin13 será salida. LED13.
Serial.begin(9600); // Para ver información en el Seria Monitor.
}
void loop() {
valor2 = digitalRead(pin2); // Lee el valor del pin2 y se lo asigna a valor2. (Puede ser 0 o 1)
if (valor2 == HIGH) {
digitalWrite(pin12, HIGH); // Si valor2 es ALTO, pone el pin12 en ALTO
Serial.println("Pulsado 2");
}
if (valor2 == LOW) {
digitalWrite(pin12, LOW); // Si valor2 es BAJO, pone el pin12 en BAJO
Serial.println("No Pulsado 2");
}
////////////////////////////////////////////////////
el_dos();
}
|
dos.ino |
void el_dos() {
valor3 = digitalRead(pin3); // Lee el valor del pin3 y se lo asigna a valor3. (Puede ser 0 o 1)
if (valor3 == HIGH) {
digitalWrite(pin13, HIGH); // Si valor3 es ALTO, pone el pin13 en ALTO
Serial.println("Pulsado 3");
}
if (valor3 == LOW) {
digitalWrite(pin13, LOW); // Si valor3 es BAJO, pone el pin13 en BAJO
Serial.println("No Pulsado 3");
}
}
|
_______________________
- Comentarios.
- Entre los dos archivos solo hay un setup y un loop (no puede haber setup y loop en los dos archivos a la vez).
- Los valores iniciales están puestos en el archivo uno.ino
- El archivo dos.ino contiene una función llamada el_dos()
- En esta función se realiza lo que ocurre cuando se ejecuta.
- El archivo uno.ino llama a la función el_dos();
- La función se establece mediante:
void el_dos () {
-------------
-------------
-------------
-------------
}
- Guardado de los archivos.
- Los dos archivos deben estar en la misma carpeta (si están en distintas carpetas no funcionará).
- Cuando los dos archivos están en la misma carpeta en el IDE de Arduino veremos a los archivos mediante pestañas:
- Compilado de los archivos.
- Solo tendremos pulsar el icono de compilar y cargar en el Arduino solo una vez, ya que cuando compilamos, el IDE toma los archivos que están en su carpeta los une y los compila.
- De esta manera podemos poner distintas partes del código en varios archivos y simplificar el archivo principal.
________________________________
|