El modulo bluetooth el el HC 05 o 06?, con 4 pines solo veo el 06, es indiferente?, seria la conexión igual?, para mandar datos como seria? con la APP inventor?. Gracias.
Si, cualquiera de los dos modelos puede ser. La diferencia es que el 05 sólo trabaja como esclavo y el 06 como esclavo y maestro. En nuestro caso es indiferente. La conexión es igual:
vcc: a 5v
Gnd: a gnd
Rx: al Tx de arduino
Tx: al Rx de arduino
Para mandar datos es lo mismo que si utilizamos la comunicación serie por cable. Te envío por email un ejemplo sencillo para appinventor, tendrás que cargar el archivo en https://appinventor.mit.edu/
Hola Jorge, te mando el resultado, pero creo el dato de la r, para borrar no seria necesario, pues cualquier dato que no fuera a,b,c apagaria todos los datos, no seria asi?.
Gracias
Si enviamos un dato que no está contemplado en ninguna condición no sucederá nada, se quedarán los leds en el estado actual de ese momento, por lo que si queremos apagar los leds si que haría falta la instrucción “r”.
Hola Jorge, respecto al ejercicio anterior, podría modificarse la respuesta de manera que “a,b y c”, fueran números, ej 2,3,4, y “r” la combinación de estos, 234, encendiera los tres leds, ponendo el digitalWrite como true. Y ya afinando podrían generarse estos aleatorios del uno al 10?, como se podría y como pondríamos el numero combinación?. Gracias y si es mucho jaleo dejalo.
Se puede utilizar cualquiera de los catacteres contenidos en la tabla ASCII, que podemos decir que es el abecedario del lenguaje informático, por lo que si, podemos utilizar los números.
Lo que no podemos hacer es enviar una cadena por el puerto serie, ya que se interpretaría el último caracter (a la placa le llegan en orden de uno en uno), es decir, si enviamos “234” obtendremos por un lado que no es de tipo char, si no de tipo string (cadena de caracteres), y por otro el último dato en procesarse sería el 4. Esto responde tu siguiente pregunta.
Para generar el aleatorio podemos hacerlo así como ejemplo, lo único es que no necesitaríamos el puerto serie:
void loop() {
//Genera un numero aleatorio entre 1 y 10
int randomNumber = random(1,10);
8 Comentarios
El modulo bluetooth el el HC 05 o 06?, con 4 pines solo veo el 06, es indiferente?, seria la conexión igual?, para mandar datos como seria? con la APP inventor?. Gracias.
Hola Rafa,
Si, cualquiera de los dos modelos puede ser. La diferencia es que el 05 sólo trabaja como esclavo y el 06 como esclavo y maestro. En nuestro caso es indiferente. La conexión es igual:
vcc: a 5v
Gnd: a gnd
Rx: al Tx de arduino
Tx: al Rx de arduino
Para mandar datos es lo mismo que si utilizamos la comunicación serie por cable. Te envío por email un ejemplo sencillo para appinventor, tendrás que cargar el archivo en https://appinventor.mit.edu/
Un saludo
const int led1 = 2;
const int led2 = 4;
const int led3 = 5;
void setup() {
// put your setup code here, to run once:
pinMode (led1, OUTPUT);
pinMode (led2, OUTPUT);
pinMode (led3, OUTPUT);
Serial.begin (9600);
}
void loop() {
// put your main code here, to run repeatedly:
if (Serial.available()){
char dato = Serial.read();
if (dato == ‘a’){
digitalWrite (led1, true);}
else{
digitalWrite (led1, false);
}if (dato == ‘b’){
digitalWrite (led2, true);}
else{
digitalWrite (led2, false);
}if (dato == ‘c’){
digitalWrite (led3, true);}
else{
digitalWrite (led3, false);
}if (dato == ‘r’){
digitalWrite (led1, false);
digitalWrite (led2, false);
digitalWrite (led3, false); }
}
}
Hola Jorge, te mando el resultado, pero creo el dato de la r, para borrar no seria necesario, pues cualquier dato que no fuera a,b,c apagaria todos los datos, no seria asi?.
Gracias
Hola Rafa,
Si enviamos un dato que no está contemplado en ninguna condición no sucederá nada, se quedarán los leds en el estado actual de ese momento, por lo que si queremos apagar los leds si que haría falta la instrucción “r”.
Un saludo
Hola Jorge, respecto al ejercicio anterior, podría modificarse la respuesta de manera que “a,b y c”, fueran números, ej 2,3,4, y “r” la combinación de estos, 234, encendiera los tres leds, ponendo el digitalWrite como true. Y ya afinando podrían generarse estos aleatorios del uno al 10?, como se podría y como pondríamos el numero combinación?. Gracias y si es mucho jaleo dejalo.
Hola Rafa,
Se puede utilizar cualquiera de los catacteres contenidos en la tabla ASCII, que podemos decir que es el abecedario del lenguaje informático, por lo que si, podemos utilizar los números.
Lo que no podemos hacer es enviar una cadena por el puerto serie, ya que se interpretaría el último caracter (a la placa le llegan en orden de uno en uno), es decir, si enviamos “234” obtendremos por un lado que no es de tipo char, si no de tipo string (cadena de caracteres), y por otro el último dato en procesarse sería el 4. Esto responde tu siguiente pregunta.
Para generar el aleatorio podemos hacerlo así como ejemplo, lo único es que no necesitaríamos el puerto serie:
void loop() {
//Genera un numero aleatorio entre 1 y 10
int randomNumber = random(1,10);
if(randomNumber == 1){
digitalWrite(led1, true);
}
}
Un saludo
Perdón de nuevo, sabiendo los dígitos, al mandar la combinación de 3 cifras, 234, me dice demasiado largo el carácter
Mando el ejercicio corregido, tenias razón, sobraba la condición else y así con la siguiente orden no se borraba el anterior. gracias