Buongiorno, sto provando a compilare uno sketch sul pc del mio amico Bill, e mi da un warning che sui miei due pc non da.
Consigli?
La finestra degli errori è la seguente
C:\Users\Giovanni Porte\Desktop\easybrew download7\OnOff_spin_rock22\OnOff_spin_rock22.ino:36:14: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
char* Risp = ""; // risposta di Arduino
^~
C:\Users\Giovanni Porte\Desktop\easybrew download7\OnOff_spin_rock22\OnOff_spin_rock22.ino: In function 'void loop()':
C:\Users\Giovanni Porte\Desktop\easybrew download7\OnOff_spin_rock22\OnOff_spin_rock22.ino:75:40: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
if (digitalRead(PinLed)==ON) Risp="Attivo;";
^~~~~~~~~
C:\Users\Giovanni Porte\Desktop\easybrew download7\OnOff_spin_rock22\OnOff_spin_rock22.ino:77:11: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
Risp="Disattivo;";
^~~~~~~~~~~~
Lo sketch usa 9734 byte (30%) dello spazio disponibile per i programmi. Il massimo è 32256 byte.
Le variabili globali usano 337 byte (16%) di memoria dinamica, lasciando altri 1711 byte liberi per le variabili locali. Il massimo è 2048 byte.
Lo sketch è il seguente
////////////////////////////////////////////
//SKETCH PER SCHEDE RELAY CON ATTIVO ALTO //
////////////////////////////////////////////
// Il bus dati del ds18b20 è collegato al digital pin 10
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 10
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
// Variabili di Step
float temp1=0.0;
float temp2=0.0;
String temp12;
String sep = ";";
char buf[20];
char buf1[20];
// Costanti per melodia di avviso
#define NOTE_B3 247
#define NOTE_C3 131
#define NOTE_G3 196
#define NOTE_C4 262
#define NOTE_D4 294
#define NOTE_E4 330
#define NOTE_F4 349
#define NOTE_G4 392
#define NOTE_A4 440
#define NOTE_B4 494
#define OFF LOW //spento
#define ON HIGH // acceso
#define PinLed 13 //pin da comandare
char* Risp = ""; // risposta di Arduino
byte data; // carattere ricevuto
void setup() {
// sensors.begin(); // Inizializzazione sensori
// initialize the digital pin's as an output.
pinMode(11, OUTPUT); // Relay 1 Mash
pinMode(6, OUTPUT); // Relay 2 Sparge
pinMode(7, OUTPUT); // Relay 3 Pompa
pinMode(8, OUTPUT); // Relay 4 Motore
pinMode(5, OUTPUT); // Relay 5 Boiler
pinMode(2, OUTPUT); // Relay 6 Relay addizionale1
pinMode(3, OUTPUT); // Relay 7 Relay addizionale2
pinMode(9, OUTPUT); // Relay 8 Relay addizionale3
pinMode(PinLed,OUTPUT);
Serial.begin(9600);
digitalWrite(11, LOW); // set the Relay 1 off
digitalWrite(6, LOW); // set the Relay 2 off
digitalWrite(7, LOW); // set the Relay 3 off
digitalWrite(8, LOW); // set the Relay 4 off
digitalWrite(5, LOW); // set the Relay 5 off
digitalWrite(2, LOW); // set the Relay 6 off
digitalWrite(3, LOW); // set the Relay 7 off
digitalWrite(9, LOW); // set the Relay 8 off
}
// Funzione di reset via software
//void(* Riavvia)(void) = 0;
void loop() {
if(Serial.available()>0) //se arriva un byte dal pc
{
// Risp="?;";
data = Serial.read(); // leggo dalla seriale
if (data=='?'){
if (digitalRead(PinLed)==ON) Risp="Attivo;";
else
Risp="Disattivo;";
}
// Relay 1 Controllo temperatura di mash [
if (data=='y') { // accendi il relay
if (digitalRead(11)==OFF) {
digitalWrite(11, ON); // set the Relay on
tone(4, NOTE_G3, 250);
delay(100);
tone(4, NOTE_A4, 250);
delay(100);
tone(4, NOTE_G3, 250);
delay(100);
tone(4, NOTE_A4, 250);
//Risp="Attivo;";
}
}
if (data=='x'){ // spegni il relay
if (digitalRead(11)==ON) {
digitalWrite(11, OFF); // set the Relay Off
//Risp="Disattivo;";
}
}
// Relay 1 Controllo temperatura di mash ]
// Relay 2 Controllo temperatura di sparge [
if (data=='s'){ // accendi il relay
if (digitalRead(6)==OFF) {
digitalWrite(6, ON); // set the Relay on
tone(4, NOTE_C3, 250);
delay(100);
tone(4, NOTE_C4, 250);
delay(100);
tone(4, NOTE_C3, 250);
delay(100);
tone(4, NOTE_C4, 250);
//Risp="Attivo;";
}
}
if (data=='k'){ // spegni il relay
if (digitalRead(6)==ON) {
digitalWrite(6, OFF); // set the Relay Off
tone(4, NOTE_C4, 250);
delay(100);
tone(4, NOTE_C3, 250);
delay(100);
tone(4, NOTE_C4, 250);
delay(100);
tone(4, NOTE_C3, 250);
//Risp="Disattivo;";
}
}
// Relay 2 Controllo temperatura di sparge ]
// Relay 3 Controllo pompa [
if (data=='p'){ // accendi il relay
if (digitalRead(7)==OFF) {
digitalWrite(7, ON); // set the Relay on
tone(4, NOTE_C3, 250);
delay(100);
tone(4, NOTE_C4, 250);
delay(100);
tone(4, NOTE_C3, 250);
delay(100);
tone(4, NOTE_C4, 250);
//Risp="Attivo;";
}
}
if (data=='o'){ // spegni il relay
if (digitalRead(7)==ON) {
digitalWrite(7, OFF); // set the Relay Off
//Risp="Disattivo;";
}
}
// Relay 3 Controllo pompa ]
// Relay 4 Controllo motore [
if (data=='m'){ // accendi il relay
if (digitalRead(8)==OFF) {
digitalWrite(8, ON); // set the Relay on
tone(4, NOTE_C3, 250);
delay(100);
tone(4, NOTE_C4, 250);
delay(100);
tone(4, NOTE_C3, 250);
delay(100);
tone(4, NOTE_C4, 250);
//Risp="Attivo;";
}
}
if (data=='n'){ // spegni il relay
if (digitalRead(8)==ON) {
digitalWrite(8, OFF); // set the Relay Off
//Risp="Disattivo;";
}
}
// Relay 4 Controllo motore ]
// Relay 5 Controllo Boil [
if (data=='b'){ // accendi il relay
if (digitalRead(5)==OFF) {
digitalWrite(5, ON); // set the Relay on
tone(4, NOTE_G3, 250);
delay(100);
tone(4, NOTE_A4, 250);
delay(100);
tone(4, NOTE_G3, 250);
delay(100);
tone(4, NOTE_A4, 250);
//Risp="Attivo;";
}
}
if (data=='v'){ // spegni il relay
if (digitalRead(5)==ON) {
digitalWrite(5, OFF); // set the Relay Off
//Risp="Disattivo;";
}
}
// Relay 5 Controllo Boil ]
// Relay 6 Controllo Relay aggiuntivo1 [
if (data=='w'){ // accendi il relay
if (digitalRead(2)==OFF) {
digitalWrite(2, ON); // set the Relay on
//Risp="Attivo;";
}
}
if (data=='q'){ // spegni il relay
if (digitalRead(2)==ON) {
digitalWrite(2, OFF); // set the Relay Off
//Risp="Disattivo;";
}
}
// Relay 6 Controllo Relay aggiuntivo1 ]
// Relay 7 Controllo Relay aggiuntivo2 [
if (data=='r'){ // accendi il relay
if (digitalRead(3)==OFF) {
digitalWrite(3, ON); // set the Relay on
//Risp="Attivo;";
}
}
if (data=='e'){ // spegni il relay
if (digitalRead(3)==ON) {
digitalWrite(3, OFF); // set the Relay Off
//Risp="Disattivo;";
}
}
// Relay 7 Controllo Relay aggiuntivo2 ]
// Relay 8 Controllo Relay aggiuntivo2 [
if (data=='f'){ // accendi il relay
if (digitalRead(9)==OFF) {
digitalWrite(9, ON); // set the Relay on
//Risp="Attivo;";
}
}
if (data=='d'){ // spegni il relay
if (digitalRead(9)==ON) {
digitalWrite(9, OFF); // set the Relay Off
//Risp="Disattivo;";
}
}
// Relay 8 Controllo Relay aggiuntivo2 ]
if (data=='1'){
sensors.requestTemperatures(); // Recupero valori di temperature dai sensori
temp1=sensors.getTempCByIndex(0); /* Assegnazione temperatura sensore1 temp. sparge */
// if (temp1 == -127.00) {
// temp1 = 0.00; }
// Quando è presente un solo sensore assegno la stessa temperatura sia al mash che allo sparge [
// if (temp1 == -127.00) {
// temp1 = temp2; }
// else if (temp2 == -127.00) {
// temp2 = temp1; }
// Quando è presente un solo sensore assegno la stessa temperatura sia al mash che allo sparge ]
dtostrf(temp1, 4, 2, buf1); /* Conversione temperatura1 da float a String */
temp12 = buf1 + sep;
temp12.toCharArray(Risp, 8);
Serial.write(Risp); // restituiamo la risposta
}
if (data=='2'){
sensors.requestTemperatures(); // Recupero valori di temperature dai sensori
temp2=sensors.getTempCByIndex(1); /* Assegnazione temperatura sensore2 temp. mash */
// if (temp2 == -127.00) {
// temp2 = 0.00; }
// Quando è presente un solo sensore assegno la stessa temperatura sia al mash che allo sparge [
if (temp1 == -127.00) {
temp1 = temp2; }
else if (temp2 == -127.00) {
temp2 = temp1; }
// Quando è presente un solo sensore assegno la stessa temperatura sia al mash che allo sparge ]
dtostrf(temp2, 4, 2, buf); /* Conversione temperatura2 da float a String */
temp12 = buf + sep;
temp12.toCharArray(Risp, 8);
Serial.write(Risp); // restituiamo la risposta
}
//Serial.write(Risp); // restituiamo la risposta
} // if serial.available
} // loop