Il Servo non si muove!..

Ciao ragazzi,
allora, ho attaccato un servo alla mia MEGA 2560, penso di aver fatto tutto come si deve ma il servo non si muove e la spia gialla dell'Arduino rimane fissa!

Ecco i passi :

  1. installato il software Arduino, scelta la scheda giusta e settata la COM6 (che ho letto durante l'installazione dei drivers)
  2. collegamento come da immagine allegata (utilizzando 4 batterie AA esattamente come nell'immagine)
  3. il cavo nero parte dalle batterie, si divide a T andando sia nella prima GND dell'Arduino (quella piu' vicina a 5V) sia nel servo
  4. il cavo rosso parte dalle batterie e va al servo
  5. il cavo giallo va dal servo alla porta 4 della MEGA2560
  6. i pin che ho usato per essere inseriti nell'Arduino li ho saldati con i cavi usando semplice stagno da saldatore.
  7. ho usato il seguente codice:
#include "Servo.h"

Servo myservo;
int pos = 0;

void setup() {
  // put your setup code here, to run once:
  myservo.attach(4);
}

void loop() {
  // put your main code here, to run repeatedly:
  for(pos = 20; pos < 160; pos += 1)
  {
    myservo.write(pos);
    delay(15);
  }
  for(pos = 160; pos>=20; pos-=1)
  {
    myservo.write(pos);
    delay(15);
  }
}

Ho qualche dubbio su "#include "Servo.h" perche' nel sito dove ho ricopiato questo codice, c'era solo #include ma notando che dava errore in compilazione, ho provato ad utilizzare "#include "Servo.h" e la compilazione e' stata eseguita senza errori.
Quando poi avvio lo sketch, luce gialla fissa e il servo immobile..
Da quel che ho capito questo codice dovrebbe far andare avanti e indietro il servo dalla posizione 20 alla 160 ma zero.. servo fermo....

Aiuto! :roll_eyes:

Primo : Perché hai aperto un altro thread quando stavi parlando di questa cosa già QUI ? Non hai letto il regolamento ? Non hai visto che il crossposting è vietato ?

Secondo : Comunque studiati la classe Servo e il metodo Servo.attach() ... perché ... o non hai chiaro a che serve o il tuo schema è sbagliato. ]:smiley:

Guglielmo

Tradotto.... disegni il pin 7 ma parli di pin 4 (e fai attach al 4) :smiley:

Ah scusa gpb01, volevo fare un po d'ordine aprendo un nuovo thread.. invece ho fatto il danno :blush:
Dimmi se devo continuare qui o la :slight_smile:

Provata la porta 9! con il seguente codice :

#include <Servo.h> 

Servo myservo;
int pos = 50;

void setup() 
{
  // put your setup code here, to run once:
  myservo.attach(9);
}

void loop() 
{
  myservo.write(pos);
}

Ma niente :\ il servo sta fermo... mmmm

e se nella loop() fai così?

void loop() 
{
  myservo.write(50);
  delay(1000);
  myservo.write(100);
  delay(1000);
}

nid69ita:
e se nella loop() fai così?

void loop() 

{
  myservo.write(50);
  delay(1000);
  myservo.write(100);
  delay(1000);
}

Sii funziona!!! :smiley: GRANDEEE!
Ma qual'era il problema???

Boh, forse il servo era già in posizione 50 ?!?
Oppure mandarli di continuo (la loop viene eseguita sempre) lo mandava in tilt ?
Oppure... mi è andata di culo fortuna :grin:

haha non credo che c'entri la fortuna!
Grazie ragazzi ad entrambi! E ora continuiamo a fare qualche test ]:slight_smile: