Arduino et les récepteurs RC, PWM

salut a tous,

je viens de commander ma première véritable arduino et je souhaiter pouvoir la mettre sur un avion rc de compétition pour des vols avec des leds,

et pour les séquences préprogrammés ,je voulais les démarrer grâce au récepteur mais je ne connais pas le code pour que la Arduino lise le signal PWM .

j'ai trouvé plein de script sur le net mais il ne sont pas tous pareil ,j'ai réussi a trouvé pour envoyé (analogwrite) du PWM mais pas pour le recevoir (analogread)

et il vaut mieux passer par les voies Analog ou par les voies Digital ?

merci de bien vouloir m'aider.

Deux options :

  • travailler en analogique en lissant le PWM avec un circuit RC et en se servant d'analogRead().
  • travailler en digital en utilisant la fonction pulseIn() ou les interruptions

quel est le mieux ?

et pouvez vous me donner des exemples ,explications ,s'il vous plait .

un exemple avec un interrupteur sur le transmetteur RC ,à 100% demarre un void ,et a 0% un autre void .

Petite précision si c'est pas clair, quand je disais RC c'était la contraction de Resistance-Condensateur :

void setup() {

}

void loop(){

if(analogRead(A0)>=400) Fonction1();
else Fonction2();

}

Fonction1(){

}

Fonction2{

}

non je parle de RC c'est la contraction de Radio-commander

ce code est t-il quand même bon pour le Rc(radio-commande) ou c'est le RC(resistance-condensateur) ?

Oui normalement après faut tester !

ok ,le test sera fait ,

normalement il n'y a aucun risque de griller le récepteur ou la Arduino ? bien sur dans le cas des tests de programmation et non de mauvaise manipulation

juste pour savoir et pouvoir reproduire avec d'autres valeurs :

if(analogRead(A0)>=400) Fonction1();

quesque veut dire 400 ?c'est la valeur pour 100% ?

mais comme on peut voir sur l'image, la valeur pour 100% est 255, est ce que ce n'est pas la même valeur dans l'analog write et dans l'analog read ?

et merci a vous de votre aide

analog >> 1023

digital >> 250

donc 400/1023 soit 39.1 %

J'ai l'impression qu'il faut reprendre les bases : ce que je te propose c'est de lisser le PWM qui est une technique qui permet de générer une tension variable. Mais en réalité ce n'en ai pas vraiment une puisque ce sont des créneaux alternatifs. Le circuit RC permet ici "d'absorber" ces créneaux, pour stabiliser le signal, comme dans une alimentation par transformateur par exemple.

Donc à la sortie du RC l'arduino doit recevoir une tension variable suivant ce que sort ton récepteur donc suivant la commande de la télécommande. J'ai pris 400 pour le seuil mais c'était arbitraire (ni trop bas ni trop haut) mais c'est parce qu'il faudra adapter à tes choix. Après pour la partie en amont de l'arduino je ne suis pas maitre en la matière, c'est à toi de voir.

donc tu a prit 400 au hasard ?

donc pour 100% je doit prendre 1023 ou 255 ? si je veux le prendre en analog et non digital

analogRead(pin) renvoi un nombre compris entre 0 et 1023 correspond à la mesure de tension sur pin
analogWrite(pin,consigne) génére un signal PWM où consigne doit être compris en 0 et 255

Ici (si j'ai bien tout compris, tu veux exploiter un signal PWM en provenance du récepteur, donc aucun rapport avec analogWrite().

J'ai pris 400 au hasard oui, enfin pas tout à fait quand même non plus : c'est entre les deux extrêmes, ça évite les faux positifs ou les faux négatifs.

non aucun rapport avec l'analogwrite() ,donc pour 100% je dois utiliser la valeur 1023 et pour 0% je dois utiliser la valeur 0

Normalement oui

ok ,je vais commencer a me mettre au code alors

j'ai regarder si le logiciel arduino accepté le code mais il ne l'accepte pas ,je croyer que c'était le "else" mais non

ton avis s'il te plait ?

oups il manque un "void" évidemment :

void Fonction1 () {
...
}

ah ben oui ,j'y avais pas pensée ,merci là c'est tout de suite plus claire

bonsoir,
je fais aussi du modélisme et j'ai l'intention de faire un montage qui pourrais enregistrer des information en vole
donc ton projet m’intéresse, pourrais tu, faire savoir si ton code fonctionne
merci d'avance

je n'ai pas encore reçu ma carte ,Hobbyking ont été très lent pour ce colis

mais je voulez tester avec une KK 2.0 que j'ai reussi a en faire une arduino mais aucune sortie Analog