buon giorno a tutti chiedo il vostro aiuto nell unire 2 sketch funzionanti singolarmente ma al contrario quando provo ad unirli.
questi sono i due codice
#include <SoftwareSerial.h>
#include <Wire.h>
#include <RTClib.h>
#include <LiquidCrystal_I2C.h>
/*********************************************************************/
#define BT_TX_PIN 1
#define BT_RX_PIN 0
/*********************************************************************/
SoftwareSerial mySerial(BT_TX_PIN, BT_RX_PIN);
RTC_DS1307 RTC;
LiquidCrystal_I2C lcd(0x27,16,2);
/*********************************************************************/
char lettera; //inizializzo carattere
char buffer[16];
String voice;
byte rele1=6;
byte rele2=7;
byte rele3=8;
byte rele4=9;
byte rele5=13;
byte rele6=12;
byte rele7=11;
byte rele8=10;
int previousSec = 0;
int stato;
uint8_t SPENTO[8] = {0x0E, 0x11, 0x11, 0x11, 0x0A, 0x0E, 0x0E, 0x04,};
uint8_t ACCESO[8] = {0x0E, 0x1F, 0x1F, 0x1F, 0x0E, 0x0E, 0x0E, 0x04,};
void accenditutto() {
digitalWrite (rele1, LOW);
digitalWrite (rele2, LOW);
digitalWrite (rele3, LOW);
digitalWrite (rele4, LOW);
}
void spegnitutto() {
digitalWrite (rele1, HIGH);
digitalWrite (rele2, HIGH);
digitalWrite (rele3, HIGH);
digitalWrite (rele4, HIGH);
}
void accendilampada() {
digitalWrite (rele1, LOW);
Serial.println("relay 1 off");
viewSocket( 1,false );
}
void spegnilampada() {
digitalWrite (rele1, HIGH);
Serial.println("relay 1 on");
viewSocket( 1,true );
}
void accendiflipper() {
digitalWrite (rele2, LOW);
Serial.println("relay 2 off");
viewSocket( 2,false );
}
void spegniflipper() {
digitalWrite (rele2, HIGH);
Serial.println("relay 2 on");
viewSocket( 2,true );
}
void accenditv() {
digitalWrite (rele3, LOW);
Serial.println("relay 3 off");
viewSocket( 3,false );
}
void spegnitv() {
digitalWrite (rele3, HIGH);
Serial.println("relay 3 on");
viewSocket( 3,true );
}
/*********************************************************************/
void setup() {
lcd.backlight();
Serial.begin(9600);
mySerial.begin(9600);
Wire.begin();
RTC.begin();
lcd.init();
pinMode(rele1, OUTPUT);
pinMode(rele2, OUTPUT);
pinMode(rele3, OUTPUT);
pinMode(rele4, OUTPUT);
pinMode(rele5, OUTPUT);
pinMode(rele6, OUTPUT);
pinMode(rele7, OUTPUT);
pinMode(rele8, OUTPUT);
digitalWrite(rele1, HIGH);
digitalWrite(rele2, HIGH);
digitalWrite(rele3, HIGH);
digitalWrite(rele4, HIGH);
digitalWrite(rele5, HIGH);
digitalWrite(rele6, HIGH);
digitalWrite(rele7, HIGH);
digitalWrite(rele8, HIGH);
if (! RTC.isrunning()) {
Serial.println("RTC is NOT running!");
RTC.adjust(DateTime(__DATE__, __TIME__));
}
lcd.createChar(0, SPENTO);
lcd.createChar(1, ACCESO);
lcd.setCursor (0, 0);
lcd.print("Ciabatta BT v.2");
delay(2000);
lcd.clear();
lcd.setCursor (12, 0);
lcd.write(0);
lcd.write(0);
lcd.write(0);
lcd.write(0);
}
/*********************************************************************/
void loop() {
while(Serial.available()) {
delay(10);
char c=Serial.read();
if(c=='#')
{break; }
voice += c;
}
if (voice.length() > 0) {
Serial.println(voice);
if (voice == "*accendi tutto")
{accenditutto() ; }
else if (voice == "*spegni tutto")
{spegnitutto() ; }
else if (voice == "*accendi lampada")
{accendilampada() ; }
else if (voice == "*spegni lampada")
{spegnilampada() ; }
else if (voice == "*accendi flipper")
{accendiflipper() ; }
else if (voice == "*spegni flipper")
{spegniflipper() ; }
else if (voice == "*accendi tv")
{accenditv() ; }
else if (voice == "*spegni tv")
{spegnitv() ; }
voice="";
}
DateTime now = RTC.now();
if(now.second() != previousSec) {
lcd.setCursor( 0,0 );
sprintf(buffer, "%02d:%02d:%02d", now.hour(), now.minute(), now.second());
lcd.print( buffer );
previousSec = now.second();
}
if(mySerial.available()) { // se il serial buffer contiene almeno un carattere
lettera = mySerial.read(); // leggi il buffer
switch (lettera) {
case 'A':
digitalWrite(rele1, LOW); // eccita il relay1
Serial.println("relay 1 on");
viewSocket( 1,true );
delay(1000);
digitalWrite(rele1, HIGH); // diseccita il relay1
Serial.println("relay 1 off");
viewSocket( 1,false );
delay(1000);
break;
case 'S':
digitalWrite(rele1, HIGH); // diseccita il relay1
Serial.println("relay 1 off");
viewSocket( 1,false );
break;
case 'Q':
digitalWrite(rele2, LOW); // eccita il relay2
Serial.println("relay 2 on");
viewSocket( 2,true );
break;
case 'W':
digitalWrite(rele2, HIGH); // diseccita il relay2
Serial.println("relay 2 off");
viewSocket( 2,false );
break;
case 'E':
digitalWrite(rele3, LOW); // eccita il relay3
Serial.println("relay 3 on");
viewSocket( 3,true );
break;
case 'R':
digitalWrite(rele3, HIGH); // diseccita il relay3
Serial.println("relay 3 off");
viewSocket( 3,false );
break;
case 'T':
digitalWrite(rele4, LOW); // eccita il relay4
Serial.println("relay 4 on");
viewSocket( 4,true );
break;
case 'Y':
digitalWrite(rele4, HIGH); // diseccita il relay4
Serial.println("relay 4 off");
viewSocket( 4,false );
break;
case 'U':
digitalWrite(rele5, LOW); // eccita il relay5
Serial.println("relay 5 on");
viewSocket( 5,true );
break;
case 'I':
digitalWrite(rele5, HIGH); // diseccita il relay5
Serial.println("relay 5 off");
viewSocket( 5,false );
break;
case 'O':
digitalWrite(rele6, LOW); // eccita il relay6
Serial.println("relay 6 on");
viewSocket( 6,true );
break;
case 'P':
digitalWrite(rele6, HIGH); // diseccita il relay6
Serial.println("relay 6 off");
viewSocket( 6,false );
break;
case 'D':
digitalWrite(rele7, LOW); // eccita il relay7
Serial.println("relay 7 on");
viewSocket( 7,true );
break;
case 'F':
digitalWrite(rele7, HIGH); // diseccita il relay7
Serial.println("relay 7 off");
viewSocket( 7,false );
break;
case 'G':
digitalWrite(rele8, LOW); // eccita il relay8
Serial.println("relay 8 on");
viewSocket( 8,true );
break;
case 'H':
digitalWrite(rele8, HIGH); // diseccita il relay8
Serial.println("relay 8 off");
viewSocket( 8,false );
break;
}
}
}
void viewSocket(byte num, boolean status) {
lcd.setCursor( ( 11+num ),0 );
if ( status ) {
lcd.write(1);
lcd.setCursor ( 0,1 );
lcd.print("Acceso rele ");
} else {
lcd.write(0);
lcd.setCursor ( 0,1 );
lcd.print("Spento rele ");
}
lcd.setCursor ( 12,1 );
lcd.print(num);
}