Gestire la velocità del servo comando.

Salve a tutti sono nuovo del forum e nuovo al mondo di arduino, ho deciso di postarmi per due motivo uno per salutarvi due per farvi una domanda su un codice.

Sto realizzando un progettino con arduino dove fa muovere un servocomando da 0° a 180° e viceversa ogni volta che riceve un impulso da un sensore magnetico. Il progettino e il codice va alla grande ma una cosa che non sono riuscito a realizzare ancora e la velocità del servo che mi serve cambiare in base alla direzione.
Spero di essermi spiegato bene se qualcuno vorrebbe aiutarmi ne sarei grado.
Vi posto anche il codice cosi mi potete dare una dritta.
grazie mille.

Codice

#include <Servo.h>

int SensoreMag = 7;            //pin del sensore
int PinServo = 8;              //pin del servo
int ContaMagnete = 0;                     
int StatoMagnete = 0;                              
int StatoMagnetePrecedente = 0;                    
Servo mioservo; 
int minposiz = 0;              //Posizione min del servo
int maxposiz = 180;            //Posizione max del servo


void setup() {  
  pinMode(SensoreMag, INPUT);                           
  mioservo.attach(8);  
  }  
  
void loop() {  
  
  StatoMagnete = digitalRead(SensoreMag);              
  
  if (StatoMagnete != StatoMagnetePrecedente) {   
    if (StatoMagnete == HIGH) {                    
      
      ContaMagnete++;  
      if (ContaMagnete == 1) {                  
         mioservo.write(minposiz); 
         delay(15);
   }  
      if (ContaMagnete == 2) { 
          mioservo.write(maxposiz);
          delay(15);
   }   
     
  }   
}  
    
  StatoMagnetePrecedente = StatoMagnete;  
    if (ContaMagnete > 2) {  

    ContaMagnete = 0;  
    StatoMagnete = 0;  
    StatoMagnetePrecedente = 0;  
  }  
}

Grazie… :slight_smile:

Il codice deve essere racchiuso tra i tag code, altrimenti alcune parti vengono interpretate come faccine: http://forum.arduino.cc/index.php?topic=149082.0 Paragrafo 7, spiega come fare.

Lo modificato...scusate non lo faro piu.... :D

Possibile che nessuno sappia darmi una risposta, neanche a dirmi se e una cosa possibile oppure no...non credo che e una cosa che lo pensata solo io...

salve.... :sleeping:

jonnyy: ... ma una cosa che non sono riuscito a realizzare ancora e la velocità del servo che mi serve cambiare in base alla direzione. ...

Un "servo" è un oggetto che in base ad un "segnale" assume una "posizione" ... non è previsto da nessuna parte che questo "segnale" porti anche come informazione la velocità con cui si deve raggiungere la "posizione" quindi la risposta è NO, non puoi variare la velocità del servo.

Puoi però fare un'altra cosa, raggiungere la posizione finale in piccoli step, temporalmente distanziati, così da dare l'idea di muoversi più lentamente ;)

Guglielmo

Grazie gpb01 avevo pensato la stessa cosa vario il tempo del ciclo degli step e cosi rallento la velocità di esecuzione.

Grazie sei stato gentile.