Controllo di un servo con un sensore a ultrasuoni

Buongiorno a tutti! Premetto che sono una 'novellina' sia della programmazione che dell'elettronica; Sto cercando di realizzare un carillon con un sensore a ultrasuoni, la ballerina è mossa da un servo che ho modificato affinché non si fermi a centottanta gradi; la mia intenzione è quella di attivare il servo quando il sensore rileva un ostacolo a meno di dieci centimetri; lo skech funziona correttamente fino a questo punto; quello che vorrei fare ora è stoppare il servo al secondo 'tocco';
ho cercato e sperimentato varie soluzioni, tra le quali l'uso di un contatore; ma pare che il sensore non continui la lettura dopo aver rilevato il primo passaggio a meno di 10cm.
Spero che possiate aiutarmi, copio il codice che vale sempre più di mille parole! Grazie!

#include<Servo.h>
const int triggerPort = 9;
const int echoPort = 10;
Servo myservo;
int pos=0;
int contatore=0;

void setup() {

pinMode(triggerPort, OUTPUT);
pinMode(echoPort, INPUT);
 myservo.attach(7);
Serial.begin(9600);
Serial.print( "Sensore Ultrasuoni: ");
}

void loop() {

digitalWrite( triggerPort, LOW );
digitalWrite( triggerPort, HIGH );
delayMicroseconds( 10 );
digitalWrite( triggerPort, LOW );

long durata = pulseIn( echoPort, HIGH );

long distanza = 0.034 * durata / 2;
Serial.println(distanza);



if(distanza <=10) {
 contatore=contatore+1;
   float resto= contatore/2;
while (resto !=0) {
 for (pos = 0; pos <= 360;pos += 1) 
 { 
   myservo.write(pos);              
   delay(5000);                       
} 
for (pos = 360; pos >= 0;pos -= 1) 
 { 
   myservo.write(pos);              
   delay(5000);                       
   } }  
} 
      
delay(2000);
}

Buongiorno e benvenuta sul forum,
essendo il tuo primo post, nel rispetto del regolamento, ti chiedo cortesemente di presentarti QUI (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con MOLTA attenzione il su citato REGOLAMENTO ... Grazie.

Guglielmo

P.S.: Qui una serie di link utili, NON necessariamente inerenti alla tua domanda:
- serie di schede by xxxPighi per i collegamenti elettronici vari: ABC - Arduino Basic Connections
- pinout delle varie schede by xxxPighi: Pinout
- link generali utili: Link Utili

.... dopo di che, fatto quanto sopra, sempre in conformità al suddetto regolamento, punto 7, devi editare il tuo post (quindi NON scrivendo un nuovo post, ma utilizzando il bottone More -> Modify che si trova in basso a destra del tuo post) e racchiudere il codice all'interno dei tag CODE (... sono quelli che in edit inserisce il bottone con icona fatta così: </>, tutto a sinistra).

Grazie :slight_smile:

Guglielmo

Grazie e scusatemi!

Maria7:
Grazie e scusatemi!

... nessun problema, ma ... fai quanto ti ho detto al post #2 :wink:

Guglielmo