rotar servo con 2 pulsadores

HOla gente, hace rato que vengo lidiando con esto y no consigo nada satisfactorio.
como bien dice el titulo, mi idea es posicionar un servo con dos pulsadores, uno para cada lado de la rotacion, y que gire mientras tengo presionado cada pulsador +1 grado.
Lo maximo que consegui chequeando sketches aca y alla es que si presiono uno de los botones, se apagan todas las luces del arduino y no hace nada, y recien cuando lo suelto, rota algo asi como 30 grados y queda ahi... y si preisono el otro pulsador, me gira para el mismo lado que el anterior, comportandose de la misma manera.
la conexion real esta bien hecha, lo chequee muchas veces
Podrian darme una mano y decirme que estoy haciendo mal? (con piedad por favor que estoy aprendiendo)

Muchas gracias a todos

El codigo es el siguiente:

#include <Servo.h>

Servo servoBase;

int PinServoBase = 2; // el pin del servoBase es el dos
int posServoBase = 90;    // define la posicion de los servos
int pulsadorR = 9;   // Define pines para los botones
int pulsadorL = 8;   // Define pines para los botones

void setup() {
 servoBase.attach(PinServoBase); // pin de señal servo
 pinMode(pulsadorL, INPUT); // pines de botones
 pinMode(pulsadorR, INPUT); // pines de botones

}

void loop() {

 if (pulsadorL == HIGH && digitalRead(pulsadorR) == LOW)
 {
   posServoBase++;
   servoBase.write(posServoBase);
   restriccion();
 }
 else if (digitalRead(pulsadorL) == LOW && digitalRead(pulsadorR) == HIGH) //Presionamos el pulsador2 para que vaya a la derecha
 {
   posServoBase--;
   servoBase.write(posServoBase);
   restriccion();
 }
}


void restriccion()
{
 if (posServoBase < 1)
 {
   posServoBase = 0;
 }
 if (posServoBase > 179)
 {
   posServoBase = 180;
 }
}

tal vez sea esto

if (pulsadorL == HIGH && digitalRead(pulsadorR) == LOW)

cambia a esto

if (digitalRead(pulsadorL) == HIGH && digitalRead(pulsadorR) == LOW)

surbyte:
tal vez sea esto

if (pulsadorL == HIGH && digitalRead(pulsadorR) == LOW)

cambia a esto

if (digitalRead(pulsadorL) == HIGH && digitalRead(pulsadorR) == LOW)

Surbyte gracias por tu comentario... mira como ya no sabia que inventar, le saco el digitalRead, pensando que podria llegar a ser uno de los temas, pero no.... de cualquiera de las dos formas lo hace igual

has puesto resistencias pulldown en los pulsadores? Has compartido el gnd del servo con el del arduino ?(si lo alimentas con fuente externa)
edito porque acabo de descargar el esquema,que por cierto,deberias haber subido a alguna pagina y poner el enlace....segun el esquema usas el mismo voltaje para alimentar placa ,pulsadores y servo,por lo que supongo que usas 5v y cuando se alimenta por vin la placa ,recomiendan usar 7v por la perdida que ocasiona el regulador (ojo ,solo la alimentacion de la placa ,no le vayas a meter 7v a los pulsadores....) .Esto puede ocasionar inconsistencia en el funcionamiento del arduino.

HOla Jose! si, le puse pull down y estoy sacando la alimentacion de los servos directamente del arduino, compartiendo el GND

batarazon:
HOla Jose! si, le puse pull down y estoy sacando la alimentacion de los servos directamente del arduino, compartiendo el GND

pues ten cuidado con eso ,la corriente que entrega la placa por el pin 5v es limitada ,dependiendo del tipo de servo que uses (y mas si el servo tiene carga... ) .Para descartar cosas ,puedes hacer un nuevo sketch a modo de depuracion ,quitando la parte del servo y solo funcionando con los botones e imprimiendo por el serial monitor la posicion del servo a ver que pasa.una vez que sepas que eso va bien ,ya sabes que el problema es el servo .

buena idea jose! Los servos son los microservos sg90, los azules. Voy a probar esto que me decis a ver que tal me va y paso a contar.
A vos te parece que el codigo esta bien? no hay ningun problema por ahi?

batarazon:
buena idea jose! Los servos son los microservos sg90, los azules. Voy a probar esto que me decis a ver que tal me va y paso a contar.
A vos te parece que el codigo esta bien? no hay ningun problema por ahi?

Corrigiendo lo que te puso surbyte ,creo que si ,unicamente modificaria la restriccion de valores ,ya que como lo tienes ,cuando el valor es menor que uno lo pones a 0 ,pero si le sigues dando al boton la variable vale -1 (o 181 por arriba) hasta que vuelves a restriccion() y no se como puede afectar eso a la posicion del servo(no lo he probado).

genial jose! gracias por tu tiempo! lo probare y te contare. Gracias mil!

eso de arduino se apaga y no hace nada no es buena señal. Es señal de cortocircuito.
resistencias en los pulsadores ayudaran.
También seria recomendable en la condición que si el servo ya esta en la posición 0 o 180 no modifique la variable ni se mueva.

Gracias litronik! si, lo de que se apagan las luces del arduino cuando presiono el boton me suena feito... ojo que tienen resistencias de 1k, para cubrir los 40 miliamper calculoq ue sobra verdad? o si o si deberia ponberle de 10K?
Lo del a restriccion no estoy del todo seguro que este bien, a como bien vos decis... creo que deberia rever eso

batarazon:
Gracias litronik! si, lo de que se apagan las luces del arduino cuando presiono el boton me suena feito... ojo que tienen resistencias de 1k, para cubrir los 40 miliamper calculoq ue sobra verdad? o si o si deberia ponberle de 10K?
Lo del a restriccion no estoy del todo seguro que este bien, a como bien vos decis... creo que deberia rever eso

la resistencia pulldown se suele poner de 10kOhm: https://www.arduino.cc/en/Tutorial/Button

jose:
la resistencia pulldown se suele poner de 10kOhm: https://www.arduino.cc/en/Tutorial/Button

MIra vos.. sisi lo tenia pero vi por ahi que decianq ue tampoco era necesario que sea de ese valor... lo voy a cambiar.. hoy lo pruebo y les cuento, si puedo grabo un videito :
Gracias av os tambien jose

@batarazon, creo haberte enviado un mensaje privado pero visto que no has corregido nada te lo digo nuevamente por si me confundí.
Post 1 (inicial) etitalo y usa tags para el código porque no respeta las Normas del foro.
Ve a More (abajo a la derecha), luego Modify, y ya puedes editar. Selecciona todo el código y click en </> arriaba del primer emoticon.
Vamos que es fácil y cambia como se ve tu codigo

Como comentario te diré que 40 mA es para un pin actuando como salida. Tu lo usas como entrada. Es algo diferente.
Cuando no sepas, buscas en google: arduino pulldown y veras ejemplos x todos lados con esquemas.

Ah mira! no ahbia notado tu mensaje... estoy en el trabajo, pero ni bien lelgo a casa lo cambio!
Entendi perfecto loq ue me comentas de los 40mA. Gracias!

Jose.. a tu respuesta de como alimente el arduino no es igual a como esta en el esquema. EN la placa de verdad conecte todo por usb, o sea.. los servos estan directos a los +5 y GND del arduino NANO 3.0