Ciao a tutti, vorrei risolvere un problema su come inviare i dati sulla seriale. Ho visto alcuni tutorial e letto qualche articolo, ma non ho trovato nulla che mi vada bene. Vorrei fare in modo che quando invio un dato sul monitor serial mi rimanga tipo per 4 o 5 secondi e poi scompare.
Allego tutto il codice
// GESTIONE ILLUMINAZIONE PIANO SUPERIORE
#define rele1 2 // relè 1 pin digitale 2
#define rele2 3 // relè 2 pin digitale 3
#define rele3 4 // relè 3 pin digitale 4
#define rele4 5 // relè 4 pin digitale 5
#define rele5 6 // relè 5 pin digitale 6
#define rele6 7 // relè 6 pin digitale 7
int pulsante8 = 8;
int pulsante9 = 9;
int pulsante10 = 10;
int pulsante11 = 11;
int pulsante12 = 12;
int pulsante13 = 14;
boolean statoPulsante8 = false; // si userà valPulsante per conservare lo stato del pin di input pulsante
boolean statoPulsante9 = false; // si userà valPulsante per conservare lo stato del pin di input pulsante
boolean statoPulsante10 = false; // si userà valPulsante per conservare lo stato del pin di input pulsante
boolean statoPulsante11 = false; // si userà valPulsante per conservare lo stato del pin di input pulsante
boolean statoPulsante12 = false; // si userà valPulsante per conservare lo stato del pin di input pulsante
boolean statoPulsante13 = false; // si userà valPulsante per conservare lo stato del pin di input pulsante
String readString;
void setup() {
Serial.begin(9600);
// IMPOSTA I VARI PIN IN OUTPUT
pinMode(rele1, OUTPUT);
pinMode(rele2, OUTPUT);
pinMode(rele3, OUTPUT);
pinMode(rele4, OUTPUT);
pinMode(rele5, OUTPUT);
pinMode(rele6, OUTPUT);
digitalWrite(rele1, HIGH);
digitalWrite(rele2, HIGH);
digitalWrite(rele3, HIGH);
digitalWrite(rele4, HIGH);
digitalWrite(rele5, HIGH);
digitalWrite(rele6, HIGH);
pinMode(pulsante8, INPUT);
pinMode(pulsante9, INPUT);
pinMode(pulsante10, INPUT);
pinMode(pulsante11, INPUT);
pinMode(pulsante12, INPUT);
pinMode(pulsante13, INPUT);
}
void loop() {
int valPulsante8 = digitalRead(pulsante8);
int valPulsante9 = digitalRead(pulsante9);
int valPulsante10 = digitalRead(pulsante10);
int valPulsante11 = digitalRead(pulsante11);
int valPulsante12 = digitalRead(pulsante12);
int valPulsante13 = digitalRead(pulsante13);
// Verifica se la luce Scale è ON o OFF e aggiorna lo stato del pulsante sul tablet in ON o OFF
if (valPulsante8 == LOW)
{
if (statoPulsante8 == false)
{
for (int A = 0; A < 4; A++){
delay(600);
Serial.println("5");// OFF Scale
}
statoPulsante8 = true;
}
}
if (valPulsante8 == HIGH)
{
if (statoPulsante8 == true)
{
for (int A = 0; A < 4; A++){
delay(600);
Serial.println("6");// OFF Scale
}
statoPulsante8 = false;
}
}
// Verifica se la luce Disimpegno è ON o OFF e aggiorna lo stato del pulsante sul tablet in ON o OFF
if (valPulsante9 == LOW)
{
if (statoPulsante9 == false)
{
for (int A = 0; A < 4; A++){
delay(600);
Serial.println("7");// OFF Disimpegno
}
statoPulsante9 = true;
}
}
if (valPulsante9 == HIGH)
{
if (statoPulsante9 == true)
{
for (int A = 0; A < 4; A++){
delay(600);
Serial.println("8");// OFF Disimpegno
}
statoPulsante9 = false;
}
}
// Verifica se la luce Camera D. è ON o OFF e aggiorna lo stato del pulsante sul tablet in ON o OFF
if (valPulsante10 == LOW)
{
if (statoPulsante10 == false)
{
for (int A = 0; A < 4; A++){
delay(600);
Serial.println("9");// OFF Camera D.
}
statoPulsante10 = true;
}
}
if (valPulsante10 == HIGH)
{
if (statoPulsante10 == true)
{
for (int A = 0; A < 4; A++){
delay(600);
Serial.println("10");// OFF Camera D.
}
statoPulsante10 = false;
}
}
// Verifica se la luce Camera S./G. è ON o OFF e aggiorna lo stato del pulsante sul tablet in ON o OFF
if (valPulsante11 == LOW)
{
if (statoPulsante11 == false)
{
for (int A = 0; A < 4; A++){
delay(600);
Serial.println("11");// OFF Camera S./G.
}
statoPulsante11 = true;
}
}
if (valPulsante11 == HIGH)
{
if (statoPulsante11 == true)
{
for (int A = 0; A < 4; A++){
delay(600);
Serial.println("12");// OFF Camera S./G.
}
statoPulsante11 = false;
}
}
// Verifica se la luce Bagno Su è ON o OFF e aggiorna lo stato del pulsante sul tablet in ON o OFF
if (valPulsante12 == LOW)
{
if (statoPulsante12 == false)
{
for (int A = 0; A < 4; A++){
delay(600);
Serial.println("13");// OFF Bagno Su
}
statoPulsante12 = true;
}
}
if (valPulsante12 == HIGH)
{
if (statoPulsante12 == true)
{
for (int A = 0; A < 4; A++){
delay(600);
Serial.println("14");// OFF Bagno Su
}
statoPulsante12 = false;
}
}
// Verifica se la luce Camera C. è ON o OFF e aggiorna lo stato del pulsante sul tablet in ON o OFF
if (valPulsante13 == LOW)
{
if (statoPulsante13 == false)
{
for (int A = 0; A < 4; A++){
delay(600);
Serial.println("15");// OFF Camera C.
}
statoPulsante13 = true;
}
}
if (valPulsante13 == HIGH)
{
if (statoPulsante13 == true)
{
for (int A = 0; A < 4; A++){
delay(600);
Serial.println("16");// OOF Camera C.
}
statoPulsante13 = false;
}
}
while (Serial.available()) {
delay(3);
char c = Serial.read();
readString += c;
}
// Controlla Se è stato inviato il dato dal tablet per attivare il relè corrispondente "Scale"
if (readString.length() >0) {
Serial.println(readString);
if (readString == "ON/OFFScale")
{
digitalWrite(rele1, LOW);
delay(200);//400
digitalWrite(rele1, HIGH);
}
if (readString == "ON/OFFDisimpegnoSu")
{
digitalWrite(rele2, LOW);
delay(200);//400
digitalWrite(rele2, HIGH);
}
if (readString == "ON/OFFCamDav")
{
digitalWrite(rele3, LOW);
delay(200);//400
digitalWrite(rele3, HIGH);
}
if (readString == "ON/OFFCamSG")
{
digitalWrite(rele4, LOW);
delay(200);//400
digitalWrite(rele4, HIGH);
}
if (readString == "ON/OFFBagnoSu")
{
digitalWrite(rele5, LOW);
delay(200);//400
digitalWrite(rele5, HIGH);
}
if (readString == "ON/OFFCamCar")
{
digitalWrite(rele6, LOW);
delay(200);//400
digitalWrite(rele6, HIGH);
}
readString="";
}
}
per il momento ho risolto cosi, creando un ciclo FOR per fare in modo che mi scriva 4 volte il dato
// Verifica se la luce Scale è ON o OFF e aggiorna lo stato del pulsante sul tablet in ON o OFF
if (valPulsante8 == LOW)
{
if (statoPulsante8 == false)
{
for (int A = 0; A < 4; A++){
delay(600);
Serial.println("5");// OFF Scale
}
statoPulsante8 = true;
}
}
if (valPulsante8 == HIGH)
{
if (statoPulsante8 == true)
{
for (int A = 0; A < 4; A++){
delay(600);
Serial.println("6");// OFF Scale
}
statoPulsante8 = false;
}
}
vorrei eliminare questa funzione e fare in modo che il dato viene scritto per un tot di tempo e poi scompare.
Grazie mille.