|     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:


.

App inventor 2 en español
Cómo programar los teléfonos móviles con Android.
Bluetooth, Arduino y App inventor 2 - Juan Antonio Villalpando

-- Tutorial de iniciación de App Inventor 2 en español --

Volver al índice del tutorial

___________________________

- App inventor, Bluetooth, Arduino. Envía y recibe. Dos LEDs.

- Envíamos una orden de encender o apagar dos LEDs de Arduino y Arduino nos devuelve el estado de los LEDs.

- Esta aplicación es interesante porque podemos observar en qué estado se encuentran los LEDs de Arduino.

____________________________
- Forma de conectarlo.

- Observa que el RXD del módulo va al terminal 1-TX del Arduino y el TXD del módulo va al 0-RX del Arduino.

_______________________
- Código del Arduino.

- En este código no es necesaria la librería <SoftwareSerial> ya que está conectado a los terminales 0 y 1.

- Lo más complicado de este código es la línea byte estado_LED6 = digitalRead(LED6) << 1;

- Esto hace un desplazamiento de un bit a la izquierda.

- LED5: 0000000
- LED6: 0000001 al desplazarlo obtenemos LED6: 0000010

- La suma total sería: 0000010

envia_recibe_arduino_2Leds.ino
 
// Juan Antonio Villalpando
// juana1991@yahoo.com
// kio4.com

#define LED5 5
#define LED6 6

int tiempo = millis();
void setup()
{
  Serial.begin(9600);
  pinMode(LED5, OUTPUT);
  pinMode(LED6, OUTPUT);
}

void loop() {
  
  if(Serial.available())
  {
    int dato = Serial.read();
    if(dato == 1){digitalWrite(LED5, HIGH);}
    if(dato == 2){digitalWrite(LED5, LOW);}
    if(dato == 3){digitalWrite(LED6, HIGH);}
    if(dato == 4){digitalWrite(LED6, LOW);}

    consultar_LEDs();
  }
}

void consultar_LEDs(){
    byte estado_LED5 = digitalRead(LED5);  // Estado del LED5.
    byte estado_LED6 = digitalRead(LED6) << 1;  // Estado del LED6 y desplazamiento.
    
    byte total = estado_LED5 + estado_LED6;
    Serial.print(total); 
 }

 

___________________________________________________________
9H2.- Envíamos dos valores a Arduino y recibimos respuestas de los LEDs.

p9H2_envia_recibe.aia

- En esta aplicación, desde Android disponemos de dos Botones para encender o apagar dos LEDs de Arduino.

- Además Arduino nos envía el estado de los LEDs.

- Fíjate que esto es importante, la imagen de encendido o apagado de los LEDs no cambia directamente desde el código de App inventor, sino que cambia cuando el Arduino le envíe al Android una orden del estado de sus LEDs, que pueden estar encendidos o apagados.

- Es decir, cada vez que enviamos una orden de encendido o apagado, se recibe información del estado de los LEDs.

_________________
- Diseño.

- El Intervalo del Reloj lo ponemos a 20 milisegundos.

_________________
- Bloques.

_________________
-
Comentarios.

- Fíjate, en los tutoriales anteriores envié un texto, en este caso Envío 1 Byte.

- Para encender o apagar los diodos, enviamos los números 1, 2, 3 o 4.

- Recibimos:

110000 cuando los dos están apagados.
110001 cuando solo el LED5 está encendido.
110011 cuando los dos están encendidos.
110010 cuando solo el LED6 está encendido.

- Mediante segmento de texto, vamos analizando los bits 5 y 6 de esta información.

- El Botón "Consultar LEDs", aquí no tiene mucho sentido ya que cada vez que cambia un LED se recibe su estado, este Botón lo veremos en el siguiente ejemplo:

__________________________________
__________________________________
__________________________________

___________________________________________________________
9H3.- Mediante pulsadores en Arduino encendemos/apagamos LED. App Inventor consulta sus estados.

p9H2_envia_recibe.aia

- Vamos a conectar dos pulsadores en el Arduino.

- La aplicacion de App Inventor es la misma que la del ejemplo anterior.

- Al pulsar el botón "Consultar LEDs", obtendremos el estado de los LEDs.

____________________________
- Forma de conectarlo.

_______________________
- Código del Arduino.

- Ahora podremos encender/apagar los LEDs desde desde los pulsadores.

envia_recibe_arduino_2Leds.ino
 
// Juan Antonio Villalpando
// juana1991@yahoo.com
// kio4.com

#define LED5 5
#define LED6 6
#define pulsador8  8
#define pulsador9  9
int valor8, valor9;

int tiempo = millis();
void setup()
{
  Serial.begin(9600);
  pinMode(LED5, OUTPUT);
  pinMode(LED6, OUTPUT);
  pinMode(pulsador8, INPUT);
  pinMode(pulsador9, INPUT);
}

void loop() {
  valor8 = digitalRead(pulsador8);
  valor9 = digitalRead(pulsador9);

  if (valor8 == HIGH) { 
    digitalWrite(LED5, HIGH);
  } else {
    digitalWrite(LED5, LOW);
  }
  
  if (valor9 == HIGH) { 
    digitalWrite(LED6, HIGH);
  } else {
    digitalWrite(LED6, LOW);
  } 
  
  if(Serial.available())
  {
    int dato = Serial.read();
    //if(dato == 1){digitalWrite(LED5, HIGH);}
    //if(dato == 2){digitalWrite(LED5, LOW);}
    //if(dato == 3){digitalWrite(LED6, HIGH);}
    //if(dato == 4){digitalWrite(LED6, LOW);}

    consultar_LEDs();
  }
}

void consultar_LEDs(){
    byte estado_LED5 = digitalRead(LED5);  // Estado del LED5.
    byte estado_LED6 = digitalRead(LED6) << 1;  // Estado del LED6 y desplazamiento.
    
    byte total = estado_LED5 + estado_LED6;
    Serial.print(total); 
 }

_________________
-
Comentarios.

- Ahora podremos encender/apagar los LEDs desde desde los pulsadores, pero no podemos encenderlos/apagarlos desde los botones de la aplicación, ya que si desde la aplicación encendemos un botón y luego el código del Arduino establece que el botón está en LOW, se produce un conflicto.

- Por eso en el código del Arduino he anulado las líneas de los datos 1, 2, 3 y 4.

- Ahora podemos pulsar un pulsador del Arduino y al mismo tiempo pulsar el botón "Consultar LEDs" del progama de App Inventor, nos mostrará en la pantalla del móvil mediante las imágenes de los diodos, si están encendido o apagados. La información llegará por Bluetooth.

- La aplicación de App Inventor envía el número 5, en realidad podría enviar cualquier otro número.

__________________________________

- 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