Bonjour à tous,
Pour un projet j'ai besoin de faire varier la vitesse d'un moteur DC grâce à une télécommande adaptée à Arduino. Le moteur fonctionne bien avec arduino grâce à un transistor TIP122, et la télécommande également (elle permet d'allumer et étindre le moteur).
J'ai donc essayé d'intégrer une vitesse intermédiaire mais elle ne fonctionne pas...
Voici le programme :
Code:
#include <IRremote.h>
#define RECV_PIN 3
IRrecv irrecv(RECV_PIN);
decode_results results;
const int LED = 13;
void setup()
{
irrecv.enableIRIn();
Serial.begin(9600);
}
void loop(){
if (irrecv.decode(&results))
{
if (results.value==0xFFE01F) {
Serial.println(results.value ,HEX);
analogWrite(LED,0);
}
else if (results.value==0xFF30CF) {
Serial.println(results.value ,HEX);
analogWrite(LED,140);
}
else if (results.value==0xFFA857) {
Serial.println(results.value ,HEX);
analogWrite(LED , 255);
}
irrecv.resume();
}
}
Avez vous une solution pour m'aider ?
Merci d'avance !
Merci pour vos réponses
Donc je vous précise que les informations envoyées par la télécommande sont bien reconnues par la carte et les codes sont envoyés en hexa dans le port série.
Mais le problème sur lequel je mets le doigt c'est que même en utilisant "analogWrite" avec une valeur, le moteur se comporte comme si je mettais un simple "digitalWrite(HIGH ou LOW)" : les valeurs allant de 0 à 127 sont équivalentes à un LOW, le moteur ne tourne pas et celles de 128 à 255 sont comme un HIGH, le moteur tourne à fond.