Salve sto costruendo un modellino di braccio robotico mosso da 5 servomotori, controllato da 2 joystick analogici e due pulsanti.
i due pulsanti dovrebbero rispettivamente aprire e chiudere la pinza ma i risultati non sono quelli sperati. questo è il codice:
#include <Servo.h>
Servo rota;
Servo spalla;
Servo gomito;
Servo polso;
Servo mano;
int posrota = 90;
int posspalla = 40;
int posgomito = 60;
int pospolso = 90;
int posmano = 90;
int sxver = 0;
int sxori = 0;
int dxver = 0;
int dxori = 0;
int apri = 0;
int chiudi = 0;
void setup()
{
rota.attach(3);
spalla.attach(5);
gomito.attach(6);
polso.attach(9);
mano.attach(10);
}
void loop()
{
sxver = analogRead(0);
sxori = analogRead(1);
dxver = analogRead(2);
dxori = analogRead(3);
apri = digitalRead(7);
chiudi = digitalRead(8);
if ((sxver>800)&&(posspalla<180)) posspalla++;
if ((sxori>800)&&(posrota<180)) posrota++;
if ((dxver>800)&&(posgomito<120)) posgomito++;
if ((dxori>800)&&(pospolso<180)) pospolso++;
if ((sxver<200)&&(posspalla>50)) posspalla--;
if ((sxori<200)&&(posrota>0)) posrota--;
if ((dxver<200)&&(posgomito>0)) posgomito--;
if ((dxori<200)&&(pospolso>0)) pospolso--;
if ((apri==1)&&(posmano<150)) posmano++;
if ((chiudi==1)&&(posmano>0)) posmano--;
rota.write(posrota);
spalla.write(posspalla);
gomito.write(posgomito);
polso.write(pospolso);
mano.write(posmano);
delay(15);
}
il servo che da problemi è "mano", controllato con i joystick funziona correttamente ma con i pulsanti (controllato il corretto funzionamento con multimetro), si muove di poco ad ogni rilascio del pulsante anzichè muoversi finchè rimane premuto..
qualcuno mi sa aiutare?