Problema con 2 DC Motor con H-Brdige e un Servo Motore

Ciao a tutti,
Ho collegato al mio arduino due servo motori con un H-Bridge, e un Servo Motore, questo è un esempio di codice:

#include <NewPing.h>
#include <HalfBridge.h>
#include <Servo.h>

const int SERVOPIN = 5;

#define FAST 200
#define SLOW 100
#define STOP 0

Motor motors[2] = { Motor(11, 12, 13), Motor(6, 7, 8) };
Servo myServo;

void setup()
{
  Serial.begin(115200);
  motors[0].init();
  motors[1].init();

  myServo.attach(SERVOPIN);
}

void loop()
{ 

motors[0].setSpeed(SLOW);
motors[1].setSpeed(SLOW);
}

il mio problema è che quando parte e i motori iniziano a girare si muove anche il servo motore anche se l’ho solo inizializzato nel setup e basta, come è possibile che il servo motore si muova anche se tolgo myServo.attach(SERVOPIN); dal setup?

grazie

Se hai un servo BISOGNA mandargli SEMPRE l'impulso di rifermento almeno 40-50 volte al secondo altrimenti il servo gira completamente a sinistra , se togli Attach togli l'impulso.......ma ora rileggendo forse non ho capito la domanda..

icio:
Se hai un servo BISOGNA mandargli SEMPRE l'impulso di rifermento almeno 40-50 volte al secondo altrimenti il servo gira completamente a sinistra , se togli Attach togli l'impulso.......ma ora rileggendo forse non ho capito la domanda..

Il problema è che io ho solo collegato il servo e inizializzato in setup, e usando solo i motori dell'H-Bridge, il servo motore si muove anche lui di conseguenza...come faccio a non far muovere il servo motore quando i DC Motor sono in funzione?

La libreria Servo adopera dei timer per funzionare.

E' probabile che lo stesso timer sia utilizzato anche dalla libreria HalfBridge.

cyberhs:
La libreria Servo adopera dei timer per funzionare.

E' probabile che lo stesso timer sia utilizzato anche dalla libreria HalfBridge.

Grazie per la risposta, come si può fare per risolvere il problema?

Nessuno mi può aiutare?

Piero:
Nessuno mi può aiutare?

Leggere il reference della libreria servo troppa fatica ?

The Servo library supports up to 12 motors on most Arduino boards and 48 on the Arduino Mega.
On boards other than the Mega, use of the library disables analogWrite() (PWM) functionality on 
pins 9 and 10, whether or not there is a Servo on those pins. On the Mega, up to 12 servos can
be used without interfering with PWM functionality; use of 12 to 23 motors will disable PWM
on pins 11 and 12.

astrobeed:
Leggere il reference della libreria servo troppa fatica ?

The Servo library supports up to 12 motors on most Arduino boards and 48 on the Arduino Mega.

On boards other than the Mega, use of the library disables analogWrite() (PWM) functionality on
pins 9 and 10, whether or not there is a Servo on those pins. On the Mega, up to 12 servos can
be used without interfering with PWM functionality; use of 12 to 23 motors will disable PWM
on pins 11 and 12.

grazie mille per la risposta, ma non mi è comunque molto chiaro :slightly_frowning_face: , cè scritto che non si possono usare il pin 9 e 10? o che devo usare il pin 9 e 10? io ho una scheda arduino normale...

astrobeed:
Leggere il reference della libreria servo troppa fatica ?

The Servo library supports up to 12 motors on most Arduino boards and 48 on the Arduino Mega.

On boards other than the Mega, use of the library disables analogWrite() (PWM) functionality on
pins 9 and 10, whether or not there is a Servo on those pins. On the Mega, up to 12 servos can
be used without interfering with PWM functionality; use of 12 to 23 motors will disable PWM
on pins 11 and 12.

incollare la documentazione e basta senza dare spiegazione non mi sembra tanto utile, io no uso ne il pin 9 ne il pin 10, quindi non so cosa possa servirmi quello che è scritto li…

penso e dico penso che potrebbe essere un problema di alimentazione
io ho avuto lo stesso problema dovuto alle batterie scariche .

ma ovviamente ci sono persone piu esperte di me
non guardare solo la parte del codice ma anche hardware

con le batterie scariche sotto ampere specifici il servo impazzisce andando a destra e sinistra

non credo sia un problema di alimentazione, perché l'arduino è attaccato via usb...il servo motore si muoveva nello stesso verso dei dc motor...

Provo a spiegare meglio la mia domanda sperando che qualcuno possa aiutarmi, i due DC Motor sono collegati tramite H-Bridge e alimentati a parte, il Servo Motore invece è alimentato direttamente all'arduino, che per ora è collegato via USB quindi non ha problemi di batterie scariche, come si può vedere dal codice che ho scritto nel mio primo post, il servo motore è solo inizializzato nel metodo setup, e anche se rimuovo la linea di inizilizzazione dal setup cioè questa: myServo.attach(SERVOPIN); il problema si presenta comunque, l'unico modo per non avere il problema è scollegare il PIN in questo caso il 5 dalla scheda arduino. Il problema è questo, in pratica il servo motore si muove con il movimento dei motori, se i motori stanno fermi lui sta fermo, altrimenti si muove di conseguenza, qualcuno può aiutarmi?