Go Down

Topic: Movimento Servo (Read 231 times) previous topic - next topic

ATCM1965

Buongiorno

come da profano ho cambiato progetto
mi sto dedicando al movimento di due servi comandi,mi servirebbe
capire come farli muovere con l'orario solare,uno si deve muovere verticale e l'altro
orizzontale,il tempo in cui si devono muovere e dalle 08,00 del mattino alle 19,30
poi tornare in posizione zero per poi ricominciare,io ho iniziati con questo
#include <Servo.h>

Servo myservo; 

int potpin = 0; 
int val;    //

void setup() {
  myservo.attach(2); 
}

void loop() {
  val = analogRead(potpin);           
  val = map(val, 0, 1023, 0, 600);     
  myservo.write(val);                 
  delay(1500);                           


val = analogRead(potpin);           
  val = map(val, 0, 1023, 0, 450);     
  myservo.write(val);                 
  delay(2000);                 

 
 val = analogRead(potpin);           
  val = map(val, 0, 1023, 0, -600);     
  myservo.write(val);                 
  delay(1500);                           
}


il movimento lo fa ma e troppo veloce, e devo inserire il secondo servo
se qualcuno mi puo dare una mano.
grazie

gpb01

#1
Apr 21, 2019, 08:11 am Last Edit: Apr 21, 2019, 08:12 am by gpb01
>ATCM1965:   ti ricordo che in conformità al 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).

In pratica, tutto il tuo codice dovrà trovarsi racchiuso tra due tag: [code] _il _tuo_ codice_ [/code] così da non venire interpretato e non dare adito alla formazione di caratteri indesiderati o cattiva formattazione del testo. Grazie.

Guglielmo

P.S.: Dato che l'argomento è diverso, ho sepratao questo tuo post dal thread dove l'avevi messo. Cortesemente, per ogni argomento, un thread differente.
Search is Your friend ... or I am Your enemy !

daysleeper

Code: [Select]
val = map(val, 0, 1023, 0, -600);    
  myservo.write(val);                  


Dalla reference: il servo.write accetta valori tra 0 e 180, tu gli dai in ingresso cose che non può interpretare correttamente.

Non mi è chiaro cosa vuoi fare. Fai letture multiple ogni tot secondi di un potenziometro e mappi il risultato su intervalli differenti, perchè? A che serve il potenziometro che leggi? Dovrebbe simulare un orario? Come hai pensato di fare per far capire al sistema che sono le 8:00 per iniziare i movimenti?
Se è stupido ma funziona allora non è stupido.

Go Up