Problema con robot car evita ostacoli

Sto costruendo un classico robot a quattro ruote in grado di evitare gli ostacoli. Come hardware ho un arduino uno, un motor shield L298N, un sensore sonico HC-SR04 e per alimentare il tutto ho 4 pile AA collegate allo shield e una da 9V per arduino.
Ho preparato lo sketch e non mi sembra malaccio.
Avviando il tutto però lo shield inizia ad emettere un rumore abbastanza acuto, come quello di un buzzer, e il robot fa praticamente quello che vuole.
Ho ricontrollato i collegamenti ed ho notato il rumore si sente quando connetto uno dei due pin enable.
Sarei infinitamente grato a chiunque mi aiutasse a trovare una soluzione.

car_beta.ino (1.14 KB)

Il gnd è in comune ?
Riesci a provare con 6 pile AA ad Arduino invece della 9V ? La 9V eroga pochissima corrente (ampere) mi pare circa 350mA.

Il gnd non è in comune, le pile sono collegate separatamente alle schede. Ho provato con diversi tipi di alimentazione, anche tramite PC e battery pack, ma il problema persiste. Ho notato, usando uno sketch differente per il debug, che il valore della distanza letta dal sensore sonico cala drasticamente nel momento in cui alimento il motor shield (da 209 a circa 32). Però i circuiti di alimentazione tra le due schede non sono in comune, gli unici collegamenti sono attraverso 4 pin per i motori più 2 pin per gli enable.

Credo sia meglio se ci posti uno schemino dei tuoi collegamenti..

Questo, a parte il numero dei pin, è lo schema del mio circuito.

Quanto meno ti manca il GND in comune, collega il GND del modulo (la vite centrale) con GND di Arduino e facci sapere.
Comunque quel modulo ha anche un regolatore 5V on board, puoi alimentare Arduino dall'uscita +5V della board (su Vin).

  1. come ti è stato detto, metti i GND in comune, per il perché, leggi QUI

  2. Con riferimento al suggerimento di docdoc, SE quello shield ha veramente il regolatore e produce 5V, effettivamente potresti usare detti 5V per alimentare Arduno (risparmiandoti la batteriola collegata ad esso), ma il pin a cui lo devi connettere NON è il Vin (che va sul regolatore e che accetta tensioni da 7V in su), ma il pin +5V.

Guglielmo

gpb01:
2. Con riferimento al suggerimento di docdoc, SE quello shield ha veramente il regolatore e produce 5V, effettivamente potresti usare detti 5V per alimentare Arduno (risparmiandoti la batteriola collegata ad esso),

Si, certo, se è quello della figura è lo stesso che ho anche io da un paio di anni, ed usato per un braccio robotico (ed io con lo stesso alimentatore 12V ci alimento un MEGA).
Per intenderci, QUESTO.

ma il pin a cui lo devi connettere NON è il Vin (che va sul regolatore e che accetta tensioni da 7V in su), ma il pin +5V.

Si, vero, errore mio.

Ho fatto come mi avete detto ed il rumore non si sente più, ho modificato lo sketch per testare la macchina ed ho notato che una sorta di diminuzione della distanza si verifica lo stesso. L'unico problema degno di nota questa volta è il fatto che quando premo l'interruttore dell'alimentazione della motor shield e viene rilevato un ostacolo, il sensore sonico va in tilt.
Vi allego il nuovo sketch.

car_beta.ino (1.14 KB)

TheManiacPizza:
Ho fatto come mi avete detto ed il rumore non si sente più

Bene! :slight_smile:

L'unico problema degno di nota questa volta è il fatto che quando premo l'interruttore dell'alimentazione della motor shield e viene rilevato un ostacolo, il sensore sonico va in tilt.

Io lo dico sempre: BUTTA GLI SR04 io ne ho provati svariati e praticamente TUTTI si "bloccano" fino a che non li resetti togliendo alimentazione.

Per questo motivo avevo creato una piccola libreria che se impostata per gestire un SR04, riconoscendo quel tipo di situazione provava a recuperarla, e ci riusciva quasi sempre: puoi provarla se vuoi, ma resta il fatto che SR04 non sono affidabili. La trovi QUI.

Ma prendi gli SRF05, come QUESTO, costano centesimi in più ma almeno funzionano.

Grazie a tutti per i consigli, ho fatto come avete detto. Non avendo però a portata di mano un SRF05 ho optato per la sostituzione dell'SR04 con un modulo bluetooth e adesso va che è una meraviglia.