Servomoteur et grove ?


bonjour,

j'ai un souci et je desespere. je trouve pas d'info sur le net.
j'ai modifié une couveuse (arduino) pour mettre en place le retournement automatique des oeufs.
j'ai acheté 2 servo moteur mg946r towardpro.

mon matériel :
arduino uno
shield grove pour eviter les soudures
sonde de temperature et humidité grove
lcd grove
rct grove pour l heure.
2 x towardpro mg946r

tout fonctionne le seul problème c'est que mes servomoteur marche tout seul de temps en temps.
il vibre, bouge d'un mm et revienne en position.
j'ai tester les angles pour ne pas travailler en dehors "http://eskimon.fr/287-arduino-602-un-moteur-qui-de-la-tete-le-servo-moteur"

mon alimentation externe fait 5v par 1a

enfin bref, j'ai fait tout les tests possibles.. je sais pas quoi faire ?

quelqu'un une idée ?

mon code est super simple pour l'intant juste une initialisation des moteurs :


#include <wire.h>
#include "ds1307.h"
#include <seeedoled.h>
#include "dht.h"
#include <servo.h>

servo myservo;
servo myservo2;     

int pos = 0;
int pos2 = 0;
int readpos = 0;
int readpos2 =0;


// grove temp
#define dhtpin a0     
#define dhttype dht22 
dht dht(dhtpin, dhttype);
// grove rtc clock
ds1307 clock;


void setup()
{
  // servo
  myservo.attach(2);
  myservo2.attach(3);
  moveservoinit();



  // grove temperature
  serial.begin(9600);
  serial.println("dhtxx test!");
  dht.begin();

  // grove heure rtc clock

  clock.begin();
  //   clock.fillbyymd(2015,4,4);//jan 19,2013
  //   clock.fillbyhms(17,10,30);//15:28 30"
  //   clock.filldayofweek(sat);//saturday
  //   clock.settime();//write time rtc chip

  wire.begin();
  seeedoled.init();  //initialze seeed oled display
  ddrb|=0x21;       
  portb |= 0x21;

  seeedoled.cleardisplay();         
  seeedoled.setnormaldisplay();   
  seeedoled.setpagemode();           
  seeedoled.settextxy(0,0);         
  seeedoled.putstring("  couveuse");


}

void loop()
{
         printtime();
        printtemperature();
}

void printtime()
{
  clock.gettime();
  seeedoled.settextxy(1,0);          //set cursor xth page, yth column 
  seeedoled.putnumber(clock.hour); //print string
  seeedoled.putstring(":"); //print string
  seeedoled.putnumber(clock.minute); //print string
  seeedoled.putstring(":"); //print string     
  seeedoled.putnumber(clock.second); //prin string

}
void printtemperature()
{
  float h = dht.readhumidity();
  float t = dht.readtemperature();
  seeedoled.settextxy(2,0);          //set cursor xth page, yth column 
  seeedoled.putstring("t /"); //print string
  seeedoled.putnumber(t); //print string
  seeedoled.putstring(" *c");
  seeedoled.putstring(" h /"); //print string
  seeedoled.putnumber(h); //print string
  seeedoled.putstring("%");

}

void moveservoinit()
{
  myservo.write(30);     
  delay(3000);
  myservo2.write(160);
  delay(3000);                   

}

j ' aussi remarqué que ma carte "uno" redémarre toute les 10 minutes depuis que j ai connecté les moteurs sans raisons.

bonjour,
peut etre un conflit entre les bibliothéque sur les horloge !

il faut tester ton programme partie par partie


Arduino Forum > International > Français (Moderators: jfs, Snootlab) > Servomoteur et grove ?


arduino

Comments