Bonjour,
je souhaite piloter un servo moteur via RF
Je pars de l'excellent tuto de Skyduino
Jusque là pas de problème, avec une led ça marche j'ai la liaison RF
Je passe à la partie servo. Dans un premier temps je fais un test de base du servo moteur sur l'émetteur.
Et c'est la que je vois qu'il y a conflit (impossible de compiler)
En cherchant il semblerait que ce soit une histoire de timer, qui serait le même pour les 2 et donc pas compatible
Il semblerait qu'avec la librairie MegaServo on contourne le problème, mais je n'y arrive pas.
Est ce que cela vous dit quelque chose?
Bien à vous
je joins ci dessous le code avec ServoMega
#include <VirtualWire.h> // inclusion de la librairie VirtualWire
#include <MegaServo.h>
int Servos ;
const int buttonPin = 3;
int buttonState = 0;
const int ledPin = 13;
const char *msg = "v41"; // Tableau qui contient notre message
const char *msg2 = "v42";
void setup() // Fonction setup()
{
pinMode(buttonPin, INPUT);
pinMode(ledPin, OUTPUT);
Servos.attach(5);
Serial.begin(9600); // Initialisation du port série pour avoir un retour sur le serial monitor
Serial.println("Tuto VirtualWire"); // Petit message de bienvenue
vw_setup(2000); // initialisation de la librairie VirtualWire à 2000 bauds (note: je n'utilise pas la broche PTT)
}
void loop() // Fonction loop()
{
buttonState = digitalRead(buttonPin);
Serial.print("TX ... "); // On signale le début de l'envoi
if (buttonState == HIGH) {
digitalWrite(ledPin, HIGH);
Servos.write(178);
vw_send((uint8_t *)msg, strlen(msg)); // On envoi le message
vw_wait_tx(); // On attend la fin de l'envoi
Serial.println("Done !"); // On signal la fin de l'envoi
delay(100); // Et on attend 1s pour pas flooder
}
if (buttonState == LOW) {
digitalWrite(ledPin, LOW);
Servos.write(0);
vw_send((uint8_t *)msg2, strlen(msg2)); // On envoi le message
vw_wait_tx(); // On attend la fin de l'envoi
Serial.println("Done !"); // On signal la fin de l'envoi
delay(100); // Et on attend 1s pour pas flooder
}
}
[code]
[/code]