Yahoo refuse tous les emails du site. Si vous avez une adresse chez un autre prestataire, c'est le moment de l'utiliser
En cas de soucis, n'hésitez pas à aller faire un tour sur la page de contact en bas de page.
Topic "commande servo moteur"
Flux RSS des posts récents dans ce topic ( Flux Atom)
Hello, Je souhaiterais construire un personnage automate.j 'aimerais piloter déjà 1 servo moteur seleument le jour et qu'il s'arrète la nuit.je pensais utiliser une photoresistance avec ma arduino Mega. Avez vous une solution, merci,
Derniére modification le
#298 |
Bonjour,
Le probléme c'est le contrôle du servo ou la détection du jour / nuit ?
Pour la détection jour / nuit, une simple photorésistance est effectivement la solution la plus simple.
J'ai écris un article à ce sujet
#300 |
ce qui me pose problème c'est l 'écriture du code pour le contrôle du servo en mode jour et l 'arret du servo en mode nuit à travers la photorésistence.
#303 |
L'animation en elle même est elle déjà codée ? Il faut d'abord avoir une version qui tourne h24 pour ensuite pouvoir la limiter à un allumage de jour.
#304 |
Bonjour,
oui, l'animation a déjà un code qui est l'exemple de la bibliothèque dans "servo sweep" tous simplement. Débutant dans le code je souhaiterais l 'améliorer en intégrant une photorésistance pour permettre à mon animation de fonctionner que le jour.
Voici le code de la bibliothèque:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | #include <Servo.h>
Servo myservo; // create servo object to control a servo
// twelve servo objects can be created on most boards
int pos = 0; // variable to store the servo position
void setup()
{
myservo.attach(9); // attaches the servo on pin 9 to the servo object
}
void loop()
{
for(pos = 0; pos <= 180; pos += 1) // goes from 0 degrees to 180 degrees
{ // in steps of 1 degree
myservo.write(pos); // tell servo to go to position in variable 'pos'
delay(15); // waits 15ms for the servo to reach the position
}
for(pos = 180; pos>=0; pos-=1) // goes from 180 degrees to 0 degrees
{
myservo.write(pos); // tell servo to go to position in variable 'pos'
delay(15); // waits 15ms for the servo to reach the position
}
}
|
Edit Skywodd: Ajout des balises code
Derniére modification le
#305 |
Il te suffit dans ce cas d'ajouter un test autours de l'animation :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | #include <Servo.h>
const byte BROCHE_LDR = A0;
const byte BROCHE_SERVO = 9;
const int VALEUR_SEUIL = 512;
Servo myservo;
void setup() {
myservo.attach(BROCHE_SERVO);
}
void loop() {
if (analogRead(BROCHE_LDR) >= VALEUR_SEUIL) {
// Seulement si la lumière est allumée
int pos = 0;
for(pos = 0; pos <= 180; pos += 1) {
myservo.write(pos);
delay(15);
}
for(pos = 180; pos>=0; pos-=1) {
myservo.write(pos);
delay(15);
}
}
}
[/icode]
|
#306 |
bonsoir, ca paraît tellement simple une fois écrit!!! j' ai testé c'est nickel. MERCI POUR LE COUP DE POUSSE, je vais pouvoir passer à l'execution.
#309 |
N.B. Si tu le souhaites, tu peux rendre le réglage du seuil modifiable en câblant un potentiomètre sur une broche analogique et en éditant le if : if (analogRead(BROCHE_LDR) >= analogRead(BROCHE_SEUIL)) { ... }
par exemple.
Si tu as d'autres questions n'hésite pas