Problema novato leonardo + bluetooth =(

Hola,

Te envio algo a ver si te sirve ya que yo tambien tuve muchos problemas cuando empece con bluetooth por mi desconocimiento.

Lo siguiente es un codigo para encender un led RGB que esta conectado a los pins 13 (R), 12, (G) y 11 (B).

Mi placa es duemilanove, no se si esto te afectara al codigo o a los pins.

A traves de un movil con bluetooth (yo uso la APP bluetooth term) encendemos y apagamos las luces con las teclas R (rojo), A (azul) y V (verde), las apagamos con las teclas T,S y B que son las que estan inmediatamente a la derecha de las primeras.

Los problemas que yo tuve:

Pretendia usar los pins 0 y 1 para enviar y recibir del modulo bluetooth al mismo tiempo que tenia el USB conectado (parerece ser que no se puede, que al estar el USB coenctado tiene prioridad esa comunicacion serial).Por eso se incluye la libreria software serial para crear dos salidas para Tx y Rx adicionales, en mi caso pins 2 y 3 en donde conecto los datos del bluetooth.

Luego hay que verificar que el modulo sincronice, en mi caso cuando esta sincronizado el led que incorpora deja de parpadear.

Tambien es importante la velocidad a la que este configurado.

Si sigues teniendo problemas con las luces te aconsejo que hagas lo siguiente. Deja un poco las luces de lado y haz un codigo para poder comunicarte entre el movil y el monitor del programo arduino. Una vez que verifiques que la comunicacion es buena, es decir que los que escribes en el telefono lo ves en el monitor y visceversa, pasate a las luces. De lo contrario no sabras si el problema esta en la comunicacion o en otro lado. Al menos es lo que hice yo.

Espero que te sirva.

#include <SoftwareSerial.h>

SoftwareSerial sw(2,3);


void setup () {
Serial.begin(9600);
sw.begin(9600);
pinMode(13,OUTPUT);
pinMode(12,OUTPUT);
pinMode(11,OUTPUT);


}

void loop() {
if (sw.available()>0) {
char c=sw.read();
Serial.print(c);
  if (c=='r') {
    digitalWrite (13,HIGH);
  }
  if (c=='t') {
    digitalWrite (13,LOW);
  }
  if (c=='v') {
    digitalWrite (12,HIGH);
  }
  if (c=='b') {
    digitalWrite (12,LOW);
  }
    if (c=='a') {
    digitalWrite (11,HIGH);
  }
  if (c=='s') {
    digitalWrite (11,LOW);
  }
}
if (Serial.available()>0) {
char c=Serial.read();
sw.print(c);

}
}