|     Inicio    |   |         |  |   FOROS      |  |      |      
   Elastix - VoIP B4A (Basic4Android) App inventor 2 PHP - MySQL
  Estación meteorológica B4J (Basic4Java) ADB Shell - Android Arduino
  AutoIt (Programación) Visual Basic Script (VBS) FireBase (BD autoactualizable) NodeMCU como Arduino
  Teleco - Emisora de A.M. Visual Basic Cosas de Windows Webs interesantes
T Búsqueda en este sitio:


.

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.

________________________________

 

- Mi correo:
juana1991@yahoo.com
- KIO4.COM - Política de cookies. Textos e imágenes propiedad del autor:
© Juan A. Villalpando
No se permite la copia de información ni imágenes.
Usamos cookies propias y de terceros que entre otras cosas recogen datos sobre sus hábitos de navegación y realizan análisis de uso de nuestro sitio.
Si continúa navegando consideramos que acepta su uso. Acepto    Más información