Posizione servo

Salve a tutti è da poco che mi diletto con arduino e ne sto rimanendo veramente a bocca aperta anche perche con il vostro aiuto anche i neo sperimentatori diventato scienziati. Sto facendo un progetto dove un servo deve ruotare di 60* e poi fermarsi a quella posizione il tutto quando io ho un segnale in ingresso. Al momento che tolgo il segnale il servo deve ritornare alla posizione 0. Premetto che ho fatto lo skecht e a velocita normale riesco ma nel momento che inserisco la funzione for il servo non si ferma mai con il contatto inserito... Grazie a tutti quelli che mi daranno un contributo prezioso..

Ti invitiamo a presentarti (dicci quali conoscenze hai di elettronica e di programmazione) qui: Presentazioni e a leggere il regolamento se non lo hai già fatto: Regolamento Qui una serie di link utili, non inerenti al tuo problema: - qui una serie di schede by xxxPighi per i collegamenti elettronici vari: ABC - Arduino Basic Connections - qui le pinout delle varie schede by xxxPighi: Pinout - qui una serie di link [u]generali[/u] utili: Link Utili

Allega lo sketch, altrimenti solo dalle tue parole non capiamo.

Salve a tutti mi scuso se non mi sono presentato ma nel nervosismo di non riuscire a risolvere ho tralasciato questo passaggio, mi chiamo gianluca ed ho la passione per l’elettronica mi diletto a creare circuiti stampati. da un pò di tempo sto giocando con arduino ed ho gia fatto qualche progetto anche un pò impegnativo. Premetto che non conosco il linguaggio C quindi quelle cose che ho imparato perche le ho studiate da internet,
il mio problema è che devo far ruotare un servo di 60° al momento che attivo un contatto e fino qui ci sono riuscito però mi sono accorto che il servo si muove troppo velocemente e allora ho usato la funzione FOR però da quel momento quando attivo il contatto il servo fa continuamente 0 - 60°. qui allego lo skecht

gminga78:
Salve a tutti è da poco che mi diletto con arduino e ne sto rimanendo veramente a bocca aperta anche perche con il vostro aiuto anche i neo sperimentatori diventato scienziati. Sto facendo un progetto dove un servo deve ruotare di 60* e poi fermarsi a quella posizione il tutto quando io ho un segnale in ingresso. Al momento che tolgo il segnale il servo deve ritornare alla posizione 0. Premetto che ho fatto lo skecht e a velocita normale riesco ma nel momento che inserisco la funzione for il servo non si ferma mai con il contatto inserito… Grazie a tutti quelli che mi daranno un contributo prezioso…

#include <Servo.h>
//dichiaro e creo le variabili per i servo
Servo servo1;
//dichiaro e creo la variabile per l'ingresso
int ingresso = 13;
int ingressoval = 0;
int pos = 0;

void setup() {
 //imposto il pin 13 come ingresso
 pinMode(ingresso, INPUT);
 //imposto le uscite per i servo
 servo1.attach(9);
 //imposto la posizione iniziale dei servo
 servo1.write(0);

}

void loop() {
 //prelevo il valore dell'ingresso al pin 13
 ingressoval = digitalRead(ingresso);

 // imposto la velocità del servo
 for (pos = 0; pos < 60; pos += 1)
 {
   //controllo se il pin 13 ha un valore di ingresso basso quindi spento (0)
   if (ingressoval == LOW) {
     servo1.write(pos);
     delay(50);
   }
   //controllo se il pin 13 ha un valore di ingresso alto quindi acceso (1)
   if (ingressoval == HIGH) {
     servo1.write(0);
   }
 }
}

Se ho capito bene, vuoi che fintantoché NON premi il pulsante, il servo si muova fino a raggiungere un massimo di 60° (poi si ferma). Quando premi il pulsante, il servo deve tornare alla posizione 0°.

Se è così, prova a sostituire la funzione loop() con questa (che non posso provare al momento):

void loop() {
  //prelevo il valore dell'ingresso al pin 13
  ingressoval = digitalRead(ingresso);

  //controllo se il pin 13 ha un valore di ingresso basso quindi spento (0)
  if (ingressoval == LOW && pos<=60) {
      servo1.write(pos++);
      delay(50);
  }
  //controllo se il pin 13 ha un valore di ingresso alto quindi acceso (1)
  else if (ingressoval == HIGH) {
      pos=0;
      servo1.write(pos);
  }

}

P.S.
Il codice allegalo con il TAG code

GRAZIE A TUTTI HO RISOLTO CON LO SKETCH DI SUPERGIOX