36kHz avec Arduino ?

Bonjours à tous !
Je voudrais utiliser une led infrarouge et un récepteur type TSOP1736 pour un projet, mais le récepteur ne détecte que les infrarouges à 36kHz. Seulement, avec Arduino les delayMicroseconds ne sont pas assez précis pour cela. Comment donc pourrait on faire pour avoir des "delayNanosconds" ? :-?
Merci

Bonsoir,

Bon, je vais peut être m'enméler les pinceaux dans les unités mais on va vérifier ensemble...

Donc 36kHz (sauf erreur c'est un cycle toutes les 27,78 uS. Normalement ça passe si tu prends en compte le temps d'exécution du changement de valeur du port où est branché ta LED IR.

Il ne faut donc pas faire quelque chose comme :

digitalWrite (brocheLED, LOW);
delayMicroseconds(14);
digitalWrite (brocheLED, HIGH);
delayMicroseconds(14);
...

étant donné que digitalWrite prends environ (de tête) 10uS.

Il faut plutôt écrire quelque chose comme :

digitalWrite (brocheLED, LOW);
delayMicroseconds(4);
digitalWrite (brocheLED, HIGH);
delayMicroseconds(4);
...

Quant au 36kHz strict c'est plutôt environ, la sélection est centrée sur 36kHz mais t'as une marge.
Sans oscillo tu peux y aller à tatons mais avec un oscillo c'est plus pratique de régler ce genre de pb.

Je viens de vérifier j'avais bien posté sur ce sujet auparavant : http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1152957061

C'est une porteuse à 40kHz dans mon projet.

Il serait bien à l'avenir d'effectuer une recherche avant de poser une question ! Non ?