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

___________________________

9D3.- App inventor, Bluetooth, Arduino. Envía una secuencia a LED. (II)

- Este ejemplo está basado en el anterior

- En el Arduino tenemos 3 LED situado en los terminales 11, 12 y 13.

- Disponemos de un archivo: rutina.csv en donde se encuentra tres valores de 1 y 0 y un Tiempo.

1-1-1-2*
0-1-1-2*
0-0-1-2*
0-0-0-2*
1-1-1-2*
1-1-0-2*
1-0-0-2*
0-0-0-2*

- El asterisco indica fin de la fila.

- Cuando comencemos la aplicación, App Inventor tomará ese archivo y pasará sus valores a una lista.

- Enviará la primera fila por Bluetooth al Arduino:

(1-1-1-2*)

- El código de Arduino separará los dos valores:

valor11 = 1
valor12 = 1
valor13 = 1
Tiempo = 2

- En este caso se encenderán los tres LED (1 - 1 - 1) durante 2 segundos.

- Continuamente irá comprobando si se ha cumplido esos 2 segundos.

- En caso que se cumplan se enviará a App Inventor la palabra "siguiente"

- App Inventor cuando reciba esa palabra o cualquier otra, simplemente que reciba algo...

- Enviará la segunda fila

(0-1-1-2*)

____________________________
- Forma de conectarlo.

_______________________
- Código del Arduino.

secuencia_led_2.ino

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

char caracter;
String palabra;
int LED11 = 11;
int LED12 = 12;
int LED13 = 13;
int valor11;
int valor12;
int valor13;

int Tiempo = 1000000;
unsigned long currentMillis;
unsigned long previousMillis = currentMillis; 
  
int k1;
int k2;
int k3;
int k4;

void setup() { 
  Serial.begin(9600);
  pinMode(LED11, OUTPUT); 
  pinMode(LED12, OUTPUT); 
  pinMode(LED13, OUTPUT); 
}

void loop() { 
  if(Serial.available()) {
  caracter = Serial.read();
  palabra = palabra + caracter;

  if(caracter == '*') {
      palabra = palabra.substring(0, palabra.length() - 1); // Quita último caracter *     
      k1 = palabra.indexOf('-');
      valor11 = palabra.substring(0, k1).toInt();
      k2 = palabra.indexOf('-', k1+1);
      valor12 = palabra.substring(k1+1, k2).toInt();
      k3 = palabra.indexOf('-', k2+1);
      valor13 = palabra.substring(k2+1, k3).toInt();
      k4 = palabra.indexOf('-', k3+1);
      Tiempo = 1000 * palabra.substring(k3+1, k4).toInt();
      palabra = "";
      digitalWrite(LED11, valor11);
      digitalWrite(LED12, valor12);
      digitalWrite(LED13, valor13); 
  }

    previousMillis = currentMillis;
} // =>Fin del available
      tiempo();
} // =>Fin del loop

void tiempo() {
  currentMillis = millis();
  if (currentMillis >= (previousMillis + Tiempo)) {
    previousMillis = currentMillis;
    Serial.print("siguiente\n");
  }
  }

- Para el tiempo, en vez de utilizar delay (ya que dejaría parado el código hasta que terminara esa instrucción), utilizo lo currentMillis y el código va analizando en cada bucle del loop si se ha rebasado el tiempo.

___________________________________________________________
9D2.-
App inventor, Bluetooth, Arduino. Envía una secuencia a LED.

p9D2_secuencia_led.aia

- La aplicación es casi igual que la del ejemplo anterior, solo debes subir un nuevo archivo rutina.csv con este contenido:

rutina.csv

1-1-1-2*
0-1-1-2*
0-0-1-2*
0-0-0-2*
1-1-1-2*
1-1-0-2*
1-0-0-2*
0-0-0-2*

_________________
- Diseño.

- Reloj con un Intervalo de 100.

- ClienteBluetooth con ByteDelimitador = 10

- Cambia el archivo rutina.csv

_________________
- Bloques.

_________________
-
Comentarios.

- De las filas obtenemos (0-1-1-2*), quitamos el paréntesis y enviamos 0-1-1-2*

- Fíjate que podemos encender un LED mediante:

digitalWrite(LED11, HIGH);

- Y también así:

digitalWrite(LED11, 1);

- Y apagar así:

digitalWrite(LED11, 0);

__________________________________

- 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