Sensore ultrasuoni vs 5 microservo sono sulla giusta strada?

Salve a tutti ragazzi, sono nuovo, sto cercando di imparare quindi scusate per termini non precisi o errori vari.
Ho un progetto in mente e ciò che mi interessa fare è collegare un sensore di prossimità a 5 servo.
Ciò che farà arduino è semplicemente ruotare i servo in senso orario (solo per un tot di gradi) quando la distanza è pari o superiore ad una cifra e l'azione opposta per una distanza diversa.

Secondo quanto ho capito, quindi correggetemi se sbaglio, il sensore sarà posizionato in analogRead e i 5 servo in 5 digitalPin, cercherò di estrarre il valore della distanza e assegnare un tempo di azione e velocità ai servo. Sono sulla giusta strada? Aspetto che mi arrivi tutto per fare delle prove.
Grazie mille a tutti.
Saluti

no, di solito i sensori ping hanno un'uscita digitale, in base alla durata del segnale alto/basso hai la distanza. Invce per alimentare i 5 servi è probabile che arduino non ce la faccia specialmente quando i servi muovono un carico (consumo di corrente troppo alto), devi trovare una fonte di alimentazione esterna

ci sono anche sensori ultrasuoni con uscita analogica.
Ciao Uwe

Perfetto quindi utilizzerò una lettura digitale. Una domanda forse stupida: mi sono arrivati i 5 servo, e sto facendo delle prove elementari, ma è normale che siano sempre in tensione anche quando stanno fermi?

chiariamo, io ho scritto

di solito i sensori ping hanno un'uscita digitale

di solito non vuol dire SEMPRE. se ci dici i modelli di sensori e servo allora possiamo dirti se usare un'analog o una digital, e quanta corrente devi essere in grado di fornire ai servo

OK ecco il modello del sensore HC-SR04
e queste le specifiche:
Operating voltage: 5V
Operating current: <2mA
Sensor angle: 15 degrees
Range: 2cm - 450cm
Resolution: 0.3cm
Output a 10us HIGH signal to Trigger input to start the detection
Measure the length of pulse received on Echo output to determine distance
Distance is pulse length * speed of sound (340M / S)) / 2

ed i servo sono Micro RC SG90 9G

Andrewa80:
Perfetto quindi utilizzerò una lettura digitale. Una domanda forse stupida: mi sono arrivati i 5 servo, e sto facendo delle prove elementari, ma è normale che siano sempre in tensione anche quando stanno fermi?

Si

beh x l'ultrasuoni se sai l'inglese direi che non serve aggiungere altro, hai pure la formula bella che scritta. :smiley:

occio con i servo, non ci vuole molto con quelle bestione a far andare in protezione termica il 7805 dell'arduino

Si per il sensore è abbastanza semplice, non riesco a capire i servo, è la prima volta che ne vedo 1. Sto utilizzando un alimentatore esterno da 5,5V a 2A per evitare problemi ad arduino, ho caricato uno di quegli esempi presenti già che alternano il movimento di 180°, ma quando girano di 180 tremano un po e si surriscaldano parecchio. E' normale quindi?

assicurati di aver collegato GND dell'arduino al GND dell'alimentatore, per avere un riferimento dello 0V comune.

la libreria Servo usa dei valori molo ampi perchè ogni servo ha il suo range; purtroppo il range è talmente ampio che alcuni servo raggiungono la finecrosa, e tentando di andare oltre si sforzano, si scaldano e a lungo andare si rompono.

quando fai attach() puoi specificare il valore minimo e massimo dell'impulso che li controlla; prova ad usare 1000 come minimo e 1800 come massimo, che sono dei valori comuni, e poi li vari piano piano finchè non trovi quelli giusti per te.

per trovare i valori giusti piuttosto che attach puoi usare la writeMicrosecond(), che in pratica bypassa i valori min e max e ti permette di impostare il valore di impulso che dici te. (uhmm spe, forse non bypassa min e max, ma se usi min e max di default sappiamo già che sono valori troppo grandi)

eccellente ho trovato il range giusto inserito nell' attach(pin,500,3000);
Grazie mille, posso proseguire con i miei studi.
Confido nel vostro aiuto più avanti!