Salve a tutto il forum,
mi rivolgo a voi perche sono davvero disperato.
Ho realizzato uno sketch con cui ( utilizzando la libreria “php serial”) riesco a comunicare con arduino e a farmi stampare ciò che ho inviato ad arduino nel serial monitor.
Ora L’incomprensibile:
Se ad inizio sketch inserisco “#include <Servo.h>” nel monitor seriale iniziano ad arrivare dati strani ed i miei messaggi non vengono più correttamente recapitati ad arduino (perche nel monitor seriale vengono stampati solo valori random e non i miei messaggi)
Ragazzi ho trovato il problema:
La libreria Servo va in conflitto con la libreria OneWire.h (la uso per dei sensori di temperatura) l'ho scoperto dopo 12 ore di smadonnamenti.
I conflitti fra le libreria sono una cosa a cui non avevo mai pensato. Ho risolto con la libreria PWMServo fonte: Servo Arduino Library, connecting RC Servo Motors to Teensy
Hai ragione, mi dispiace. la prossima volta cercherò di essere più preciso. E' che non credevo che le librerie potessero andare in conflitto quindi non ci stavo neanche pensando. Sono da poco entrato in questo mondo
Ciao!
Certe librerie usano dei Timer. L'Arduino UNO ne ha 3 di cui uno a 16 Bit e gli altri 2 a 8 Bit. Se due librerie ne usano la stessa non funzionano contemporaneamente.
Ciao Uwe
Ps: ho controllato la buond rate: l'ho impostata a 19200 baud sia nello sketch di arduino che nel file php con cui invio i miei messaggi ad arduino tramite seriale. Quindi non penso sia quello il problema
La OneWire usa gli interrupt di cambio di stato e vedo anche che durante il suo funzionamento attiva/disattiva gli interrupt globali, la PWMservo usa invece il timer 1. Capita che se la prima disattiva gli interrupt, la seconda si blocca ed ovviamente si perdono le temporizzazioni per il pilotaggio dei motori.