Problema con uno sketch Arduino Uno

Buongiorno a tutti!
So da subito che il mio problema sarà facilmente risolvibile da chi ha esperienza nella programmazione arduino, ma io non riesco a far funziobare un robot evita_ostacoli a ultrasuoni composto da:
-3 sensori a ultrasuoni HC-SR04(quello DX è decentrato di 9 cm);
-2 motori convenzionali(quelli con fili positivo e quello negativo, niente GND)
-Scheda Arduino UNO
-batteria da 9 volt collegata a GND e Vin
-breadboard
-molti cavi di connessione
Il codice che ho adoperato è questo:

int trigDX = 11;  
int echoDX = 12;  
int trigSX = 10;
int echoSX = 9;
int trigAX = 8;
int echoAX = 7;
int motoreSX = 13;
int motoreDX = 6;
int terra = 5;

void setup() {  
pinMode( terra, OUTPUT);
pinMode( motoreSX, OUTPUT );
pinMode( motoreDX, OUTPUT );
pinMode( trigDX, OUTPUT );  
pinMode( echoDX, INPUT );
pinMode( trigSX, OUTPUT );  
pinMode( echoSX, INPUT );
pinMode( trigAX, OUTPUT );  
pinMode( echoAX, INPUT );
}  
void loop() {  
digitalWrite( terra, HIGH );
digitalWrite( motoreSX, HIGH );
digitalWrite( motoreDX, HIGH );
digitalWrite( trigDX, LOW );   
digitalWrite( trigDX, HIGH );  
pinMode( trigSX, LOW );  
pinMode( trigSX, HIGH );
pinMode( trigAX, LOW );  
pinMode( trigAX, HIGH );
delayMicroseconds( 10 );  
digitalWrite( trigDX, LOW ); 
digitalWrite( trigSX, LOW );
digitalWrite( trigAX, LOW );
long durationDX = pulseIn( echoDX, HIGH );
long durationSX = pulseIn( echoSX, HIGH );
long durationAX = pulseIn( echoAX, HIGH );
long rDX = 0.034 * durationDX / 2;
long rSX = 0.034 * durationSX / 2;
long rAX = 0.034 * durationAX / 2;    
if ( rDX < 14 ) {
digitalWrite( motoreSX, LOW );
delayMicroseconds( 500 );
digitalWrite( motoreSX, HIGH );
}
if ( rSX < 5 ) {
digitalWrite( motoreDX, LOW);
delayMicroseconds( 500 );
digitalWrite( motoreDX, HIGH);
}
if ( rAX < 7 ) {
 if ( rSX < rDX ) {
 digitalWrite( motoreSX, LOW);
 delayMicroseconds ( 700 );
 digitalWrite(motoreSX, HIGH);
}
 else {
digitalWrite( motoreDX, LOW );
delayMicroseconds ( 700 );
digitalWrite( motoreDX, HIGH );
 }
}
delay( 1500 );  
}

se volete avere chiaro il funzionamento dei sensori andate qui: Sensore a ultrasuoni HC SR04 e Arduino | Tauon Barcadero
Ah, è vero, il problema: non parte nulla!!!!
misteriosamente i motori non partono (e sospetto nemmeno i sensori!).
grazie in anticipo a chi vorrà aiutarmi !
ALBERTO01

A parte il fatto che con una batteria a 9V ( di ridotta capacita' ) non vai molto lontano... dubito che ce la faccia ad erogare la corrente necessaria per tutto quello che hai menzionato..

Prima di vedere cosa fa' lo sketch, mi togli una curiosita' ...
Come li hai collegati i motori ad arduino ?

positivo a GND
negativo lo vedi nel codice
grazie!

alberto01:
positivo a GND
negativo lo vedi nel codice
grazie!

puff!! :drooling_face: (nel senso che è scoppiato il pin di Arduino)
Tutorial --> http://glgprograms.altervista.org/index.php?p=micro/arduino-8

Comunque, procedi con ordine.
Stacca tutto e prova componente per componente con gli sketch di prova che trovi nei vari tuttorial.
Così sarai sicuro di cosa funziona e cosa no.
Poi ti consiglio di fare un po' di debug tramite il serial monitor verificando lo stato del programma nei punti critici, come la stampa dei valore dei sensori, ecc.

puff!! smiley-fat (nel senso che è scoppiato il pin di Arduino)

E' il caso che codesti motorini li scolleghi e al loro posto mettici dei LED ( con una resistenza in serie ), cosi' intanto vedi se lo sketch funziona ( e se le porte sono ancora "vive" )

Non puoi collegare direttamente i motori sui pin di arduino, neanche se sono dei motorini da bambole.
hai mica dei dati su quei motori ?

a PaoloP
Ti è scoppiato il pin????
ora comunque controllo i dati e lo sketch!

Ah, dimenticavo!
nel codice trovate "terra" perche per fare il progetto ho occupato tutti i 3 PIN GND, ma se utilizzavo il 3 la scheda non si "accendeva"(non riuscivo a caricare il programma e non si alimentava neanche!)

ho torvato i dati del motore: OPITEC - Fabbisogno per attività creative, manualità, pittura e decorazioni non sono sicuro che sia questo, cmq, vai nella sezione
in cui è e trovi tutti i motori(non cambiano di tanto!)
A paoloP: oddio, io non ce li ho tutti quei componenti! inoltre per me è scritto come se fosse in arabo! :drooling_face: :drooling_face: :frowning: :frowning: :frowning:

Se hai collegato direttamente il motorino con i pin di Arduino, visto che l'assorbimento del modello inferiore è di 70mA probabilmente hai bruciato il pin di Arduino che può erogare massimo 40mA.

Puoi verificarlo facilmente caricando su Arduino lo sketch del blink, modificando il numero del pin con quello a cui era collegato il motore e vedere se lampeggia collegandoci un led con in serie una resistenza da 470 ohm.
Schemi di collegamento --> http://arduino.cc/forum/index.php/topic,146152.0.html

Se non dovesse funzionare ed hai la versione di Arduino con il Chip estraibile puoi sostituire il chip con uno nuovo.
Se comunque dovesse funzionare, ti consiglio di acquistare una scheda per il controllo dei motori come questa --> http://arduino.cc/en/Main/ArduinoMotorShieldR3
a cui puoi collegare anche i sensori, oppure se non vuoi comprare la scheda, prendi il singolo integrato per pilotare i motori: L293D (max 600mA) --> http://glgprograms.altervista.org/index.php?p=micro/arduino-8

Ho controllato tutti i PIN, non ce ne sono di bruciati o rotti...
cmq, potrebbe non essere quello il modello, guarda nella sezione motori e motoriduttori del sito...

Comunque, quella scheda fa "da scudo" all scheda Arduino dall'assorbimento di superiore alla norma del motore?? :~ :fearful:
o deve essere programmata anche quella??? :astonished: :astonished:
mi puoi trovare un esempio o un tutorial????? :wink:
GRAZIE ANCORA!

--> http://www.instructables.com/id/Arduino-Motor-Shield-Tutorial/?ALLSTEPS

Si, serve per poter collegare motori Dc o 1 motore stepper.
Non deve essere programmata, ma si programma Arduino per agire sui motori.

ho notato che sotto ha quelle cose di connessione, come-si-chiamano????, quelle spinette di ferro, ma ce le ha integrate ho devo mettercele io??Perchè ho visto che occupano tutti i pin della scheda, ed io devo collegarci i sensori!
Cmq, grz(tt abbrvt!)

La scheda dovrebbe avere gli strip femmina lunghi già montati.
E' normale che occupino tutti i pin, anzi è preferibile; infatti sono "passanti".
Vuol dire che è possibile collegare i jumper ai pin della seconda scheda che è collegata ai pin sottostanti.
In questo modo puoi collegare più schede sovrapposte e tutte potranno accedere ai pin dell'Arduino.

ahhh, grazie! Ho capito!
credo che per un po' non avrò bisogno di aituo, oggi ordino la scheda e se ho bisogno di aiuto lo scrivo in un nuovo topic
grazie!!!