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.
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
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
Post a Comment