progetto allarme con bluetooth

Ciao a tutti. Ho appena finito di scrivere questo programma che ho diciamo assemblato dai vari esempi che avevo fatto. Lo scopo è semplice comandare l’allarme con il modulo bluetooth. Quando l’allarme è operativo e arriva un segnale high da uno dei due sensori arduino va in stato di allarme e per uscire dallo stato di allarme bisogna digitare un pin al tastierino. Vi allego il mio sketch se qualcuno riesce ad aiutarmi gli sarei molto grato. (Ho già ricercato su google e non ho trovato nulla di simile con l’impiego del modulo hc-05 per il bluetooth)

[code]
#include <SoftwareSerial.h>
#include <Keypad.h>
#include <LiquidCrystal.h>
SoftwareSerial BTserial(2, 3); // RX | TX
// Connect the HC-05 TX to Arduino pin 2 RX.
// Connect the HC-05 RX to Arduino pin 3 TX through a voltage divider.
// configuro keypad
const byte ROWS = 4; //quattro righe
const byte COLS = 3; //tre colonne
char keyInsert[6];
// Queste variabili servono come verifica del corretto inserimento del codice
int i = 0;
int j = 0;
int s = 0;
int x = 0;
// Codice segreto
char code[7] = "112233";
char keys[ROWS][COLS] = {
  {'1', '2', '3'},
  {'4', '5', '6'},
  {'7', '8', '9'},
  {'*', '0', '#'}
};
byte rowPins[ROWS] = {7, 8, 9, 10}; //i Pin a cui sono connesse le righe del KeyPad
byte colPins[COLS] = {4, 5, 6}; // i Pin a cui sono connesse le colonne del KeyPad
//configuro lcd
LiquidCrystal lcd(43, 45, 47, 49, 51, 53);
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
char c = ' ';
int led_Green = 13;
int pir_signal  = 39; // pin al quale ho collegato il sensore1
int switch_signal = 41; //pin al quale ho collegato sensore2
int led_Red   = 4; // pin al quale ho collegato il led Rosso
int Buzzer = 37; //pin al quale ho collegato il buzzer
int Signal1 = 0;
int Signal2 = 0;
int Stato = 0;
int Val = 0;

void setup()
{
  delay(3000);
  Serial.begin(9600);
  Serial.println("Arduino is ready");
  // HC-05 default serial speed for commincation mode is 9600
  BTserial.begin(9600);
  pinMode(led_Green, OUTPUT);
  pinMode(led_Red, OUTPUT);
  pinMode(Buzzer, OUTPUT);
  lcd.begin(16, 2);
  lcd.print("Allarme Arduino");
  digitalWrite(led_Red, LOW);
}

void loop()
{
  //leggo le risposte dai sensori pir e tastierino
  Signal1 = digitalRead(pir_signal);
  Signal2 = digitalRead(switch_signal);
  char key = keypad.getKey();
  // Keep reading from HC-05 and send to Arduino Serial Monitor
  if (BTserial.available()) {
    c = BTserial.read();
    Serial.write(c);
    if (c == '1') Stato = 1;
    if (c == '0')  Stato = 0;
    lcd.setCursor(0, 1);
  }
  if (Stato == 0) {
    lcd.print("  **ON**  ");
    if (Signal1 || Signal2) {
      Stato = 3;
    }
    else {
      digitalWrite(led_Red, LOW);
      noTone (Buzzer);
    }
  }
  if (Stato == 1) {
    lcd.print(" **OFF** ");
  }
  if (Stato == 3) {
    lcd.setCursor(0, 1);
    lcd.print("*ALLARME*");
    digitalWrite(led_Red, HIGH);
    digitalWrite(led_Green, LOW);
    delay(500);
    digitalWrite(led_Red, LOW);
    digitalWrite(led_Green, HIGH);
    tone(Buzzer, 1000);
    if (i == 0) {
      Serial.println("Insert PIN to verify...");
      i++;
    }
    if (key != NO_KEY && j < 6) {
      Serial.print("*");
      //Serial.println(key);
      keyInsert[j] = key;
      j++;
    }
    if (key == '*') {
      Serial.println();
      Serial.println("Verifyng the code...");
      delay(1000);
      for (s = 0; s < 6; s++) {
        if (keyInsert[s] == code[s]) {
          x++;
        }
      }
      if (x == 6) {
        Serial.println("The code is correct");
        Stato = 1;
        //TODO possibili ulteriori implementazioni
      } else {
        Serial.println("The code is incorrect, please retry");
        delay(2000);
        x = 0;
        i = 0;
        j = 0;
      }
    }
    if (key == '#') {
      x = 0;
      i = 0;
      j = 0;
    }
  }
  // Keep reading from Arduino Serial Monitor and send to HC-05
  if (Serial.available())
  {
    c =  Serial.read();
    BTserial.write(c);
  }
  delay(100);
}

[/code]

si, ok, ma aiutare a fare cosa ?

Brunello: si, ok, ma aiutare a fare cosa ?

Il programma mi sembra avere qualche problema. lcd non viene inizializzato correttamente e anche tramite il bluetooth non viene acceso l'allarme.

Non vedo errori nello sketch Non è che hai collegato male LCD e BT ?

pesumo che usi un Arduino MEGA. Perché usi la software serial e non una delle 3 serialei hardware liberi? Ciao Uwe