buonasera, sono Davide ho iniziato da poco ad utilizzare Arduino, non sono pratico di schede elettronico ma è una passione scoperta qualche mese fa, ho un problema riguardo la programmazione della scheda elettronica, utilizzo una scheda Arduino Yun rev2 acquistata 10 giorni fa, quando invio il mio programma sia tramite wi-fi, sia con cavo seriale, la scheda non effettua completamente il setup e si ferma a metà dopo "Console.println("one");"
qualcuno riesce a darmi due dritte?
intanto grazie mille!!
qui sotto allego il programma:
#include <HX711.h>
#include <Bridge.h>
#include <YunClient.h>
#include <YunServer.h>
YunServer server;
HX711 cellaAnterioreSinistra;
HX711 cellaAnterioreDestra;
HX711 cellaPosterioreSinistra;
HX711 cellaPosterioreDestra;
float pesoCellaAnterioreSinistra;
float pesoCellaAnterioreDestra;
float pesoCellaPosterioreSinistra;
float pesoCellaPosterioreDestra;
int cellaAntSin;
int cellaAntDes;
int cellaPosSin;
int cellaPosDes;
int impostatoBox1;
int impostatoBox2;
int impostatoBox3;
int impostatoBox4;
void setup() {
Bridge.begin();
server.listenOnLocalhost();
server.begin();
pinMode(11,OUTPUT);
pinMode(12,OUTPUT); //sirena segnalazione
Console.begin();
Console.println("arduino yun pronto");
cellaAnterioreSinistra.begin(2,3);
cellaAnterioreDestra.begin(4,5);
cellaPosterioreSinistra.begin(6,7);
cellaPosterioreDestra.begin(8,9);
Console.println("celle inizializzate");
cellaAnterioreSinistra.set_scale();
Console.println("one");
cellaAnterioreSinistra.tare();
Console.println("due");
cellaAnterioreDestra.set_scale();
cellaAnterioreDestra.tare();
cellaPosterioreSinistra.set_scale();
cellaPosterioreSinistra.tare();
cellaPosterioreDestra.set_scale();
cellaPosterioreDestra.tare();
Serial.println("celle tarate");
digitalWrite(11,HIGH);
}
void loop() {
YunClient client = server.accept();
if(client) {
String command = client.readStringUntil('/');
command.trim();
Serial.println(command);
int imposta = command.toInt();
//LETTURA PESO CELLE DI CARICO
if(command == "letturacella1"){
client.print(pesoCellaAnterioreSinistra);
}
if(command == "letturacella2"){
client.print(pesoCellaAnterioreDestra);
}
if(command == "letturacella3"){
client.print(pesoCellaPosterioreSinistra);
}
if(command == "letturacella4"){
client.print(pesoCellaPosterioreDestra);
}
//TARATURA CELLE
if(command == "taracella1"){
//cellaAnterioreSinistra.tare();
client.print("TARA CELLA");
digitalWrite(11,HIGH);
delay(1000);
digitalWrite(11,LOW);
}
if(command == "taracella2"){
//cellaAnterioreDestra.tare();
client.print("TARA CELLA");
digitalWrite(11,HIGH);
delay(1000);
digitalWrite(11,LOW);
}
if(command == "taracella3"){
// cellaPosterioreSinistra.tare();
client.print("TARA CELLA");
digitalWrite(11,HIGH);
delay(1000);
digitalWrite(11,LOW);
}
if(command == "taracella4"){
//cellaPosterioreDestra.tare();
client.print("TARA CELLA");
digitalWrite(11,HIGH);
delay(1000);
digitalWrite(11,LOW);
}
//IMPOSTAZIONE SOGLIE
if(command == "impostazione"){
int valore = client.parseInt();
switch(valore){
case 1:
if(client.read() == '/'){
impostatoBox1 = client.parseInt();
Console.println(impostatoBox1);
client.print("ok");
Console.println("box1-ok!");
break;
}
case 2:
if(client.read() == '/'){
impostatoBox2 = client.parseInt();
Console.println(impostatoBox2);
client.print("ok");
Console.println("box2-ok!");
break;
}
case 3:
if(client.read() == '/'){
impostatoBox3 = client.parseInt();
Console.println(impostatoBox3);
client.print("ok");
Console.println("box3-ok!");
break;
}
case 4:
if(client.read() == '/'){
impostatoBox4 = client.parseInt();
Console.println(impostatoBox4);
client.print("ok");
Console.println("box4-ok!");
break;
}
}
}
//SEGNALAZIONE SOGLIA IMPOSTATA
if((impostatoBox1 == cellaAntSin )||(impostatoBox2 == cellaAntDes )||(impostatoBox3 == cellaPosSin )||(impostatoBox4 == cellaPosDes)){
digitalWrite(12,HIGH);
delay(2000);
digitalWrite(12,LOW);
}
client.stop();
}
// CELLE DI CARICO
cellaAnterioreSinistra.set_scale(-8.51);
pesoCellaAnterioreSinistra = cellaAnterioreSinistra.get_units(10) / 1000;
cellaAntSin = round(pesoCellaAnterioreSinistra);
if(pesoCellaAnterioreSinistra < 0){
pesoCellaAnterioreSinistra = 0.0f;
}
cellaAnterioreDestra.set_scale(-8.51);
pesoCellaAnterioreDestra = cellaAnterioreDestra.get_units(10) / 1000;
cellaAntDes = round(pesoCellaAnterioreDestra);
if(pesoCellaAnterioreDestra < 0){
pesoCellaAnterioreDestra = 0.0f;
}
cellaPosterioreSinistra.set_scale(-8.51);
pesoCellaPosterioreSinistra = cellaPosterioreSinistra.get_units(10) / 1000;
cellaPosSin = round(pesoCellaPosterioreSinistra);
if(pesoCellaPosterioreSinistra < 0){
pesoCellaPosterioreSinistra = 0.0f;
}
cellaPosterioreDestra.set_scale(-8.51);
pesoCellaPosterioreDestra = cellaPosterioreDestra.get_units(10) / 1000;
cellaPosDes = round(pesoCellaPosterioreDestra);
if(pesoCellaPosterioreDestra < 0){
pesoCellaPosterioreDestra = 0.0f;
}
delay(50);
}