Salve a tutti, sono nuovo del forum ed ho un problema con arduino YUN.
Ho realizzato uno sketch che dovrebbe fare le seguenti operazioni:
- acquisire l'informazione di un tasto premuto
- registrare su SD data, ora e tipo di tasto premuto
- ogni ora trasferire una copia del file di dati verso un hard disk di rete
il tutto funziona alla perfezione se il sistema rimane alimentato ma, se tolgo l'alimentazione e poi la rimetto, (tramite connettore micro USB), il riavvio è molto lento (anche un paio di minuti) ed ho l'impressione che ci sia problemi in corrispondenza alla riga con 'bridge.begin' ...
cosa ho sbagliato ?
allego il listato:
#include <Bridge.h>
#include <FileIO.h>
#include <Wire.h>
#include "RTClib.h"
#include <Process.h>
RTC_DS1307 rtc;
String testo;
String riferimento = "1";
void setup () {
pinMode(4,INPUT);
pinMode(5,INPUT);
pinMode(6,INPUT);
pinMode(7,OUTPUT);
pinMode(13,OUTPUT);
digitalWrite(7,HIGH);
digitalWrite(13,HIGH);
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
Bridge.begin();
digitalWrite(13,LOW);
FileSystem.begin();
Wire.begin();
rtc.begin();
//rtc.adjust(DateTime(F(DATE), F(TIME)));
digitalWrite(7,LOW);
}
void loop () {
if (digitalRead(4) == HIGH) {
digitalWrite(7,HIGH);
while(digitalRead(4) == HIGH) {
delay(100);
}
DateTime now = rtc.now();
File datafile = FileSystem.open("/mnt/sda1/datalog.txt", FILE_APPEND);
testo = String(now.day())+ "/"+ String(now.month())+"/"+String(now.year());
testo = testo + " " + String(now.hour())+ ":"+ String(now.minute())+":"+String(now.second());
datafile.print(testo);
datafile.println(" ROSSO");
datafile.close();
if (riferimento != String(now.hour())) {
riferimento = String(now.hour());
Process p;
p.begin("/mnt/sda1/test.py");
p.run();
}
digitalWrite(7,LOW);
}
if (digitalRead(5) == HIGH) {
digitalWrite(7,HIGH);
while(digitalRead(5) == HIGH) {
delay(100);
}
DateTime now = rtc.now();
File datafile = FileSystem.open("/mnt/sda1/datalog.txt", FILE_APPEND);
testo = String(now.day())+ "/"+ String(now.month())+"/"+String(now.year());
testo = testo + " " + String(now.hour())+ ":"+ String(now.minute())+":"+String(now.second());
datafile.print(testo);
datafile.println(" GIALLO");
datafile.close();
if (riferimento != String(now.hour())) {
riferimento = String(now.hour());
Process p;
p.begin("/mnt/sda1/test.py");
p.run();
}
digitalWrite(7,LOW);
}
if (digitalRead(6) == HIGH) {
digitalWrite(7,HIGH);
while(digitalRead(6) == HIGH) {
delay(100);
}
DateTime now = rtc.now();
File datafile = FileSystem.open("/mnt/sda1/datalog.txt", FILE_APPEND);
testo = String(now.day())+ "/"+ String(now.month())+"/"+String(now.year());
testo = testo + " " + String(now.hour())+ ":"+ String(now.minute())+":"+String(now.second());
datafile.print(testo);
datafile.println(" VERDE");
datafile.close();
if (riferimento != String(now.hour())) {
riferimento = String(now.hour());
Process p;
p.begin("/mnt/sda1/test.py");
p.run();
}
digitalWrite(7,LOW);
}
}