Han solucionado el problema del compañero MODE pero no el mio...
Mi problema está así:
Yo envío pulsos con unos botones que he programado en mi interfaz de C#, justamente cuando envío una letra "a" esta envía al servo por puerto serial el pulso y se mueve tal como lo he programado...
#include <Servo.h>
Servo nazza;
Servo galaxia;
int nazzaPos = 90;
int galaxiaPos = 90;
void setup() {
Serial.begin (9600);
nazza.attach(10);
galaxia.attach(9);
nazza.write(nazzaPos); // Colocamos el servomotor a 90° para tomarlo de 0-90 por izquierda, y 90-180 por derecha.
galaxia.write(galaxiaPos);
}
void loop () {
if (Serial.available () > 0) {
int jul = Serial.read();
int san = Serial.read();
if (jul == 'a'){ // asignamos una variable "a" para mover posiciones a derecha
nazzaPos -= 20;
nazza.write(nazzaPos);
}
if(san == 'w'){ // asignamos una variable "w" para mover posiciones abajo
galaxiaPos -= 20;
galaxia.write(galaxiaPos);
}
if (jul == 'b'){ // asignamos una variable "b" para mover posiciones a izquierda.
nazzaPos += 20;
nazza.write(nazzaPos);
}
if (san == 's'){ // asignamos una variable "s" para mover posiciones arriba
galaxiaPos +=20;
galaxia.write(galaxiaPos);
}
if (jul == 'z'){ // ciclo For de recorrido izquierda derecha.
for(nazzaPos = 0; nazzaPos < 180; nazzaPos += 20) // movemos de posición el servomotor de 0 grados a 180°
{ // en pasos de 20 grados
nazza.write(nazzaPos); // hacemos que el servo vaya a la posición "pos"
delay(15); // espera 15 milisegundos al servo para reiterar su posición
}
for(nazzaPos = 180; nazzaPos>=1; nazzaPos-=20) // movemos el motor de
{
nazza.write(nazzaPos); // tell servo to go to position in variable 'pos'
delay(15); // waits 15ms for the servo to reach the position
}
}
if (san == 'x'){
for(galaxiaPos = 0; galaxiaPos < 180; galaxiaPos += 20) // movemos de posición el servomotor de 0 grados a 180°
{ // en pasos de 20 grados
galaxia.write(galaxiaPos); // hacemos que el servo vaya a la posición "pos"
delay(15); // espera 15 milisegundos al servo para reiterar su posición
}
for(galaxiaPos = 180; galaxiaPos>=1; galaxiaPos-=20) // movemos el motor de
{
galaxia.write(galaxiaPos); // tell servo to go to position in variable 'pos'
delay(15); // waits 15ms for the servo to reach the position
}
}
if (jul== 'h'){
nazza.write(nazzaPos);
}
}
delay (15);
}
El problema que tengo, es que necesito que cuando mi servo esté en cualquier posición, primero se regrese a 90° en la parte central del servomotor, luego que gire de derecha a izquierda y regrese a los 90° originales.. tanto para mi servo NAZZA como para mi servo GALAXIA..