Étape 4: Assembler éléments
Le circuit final avec la batterie est indiqué dans l’une des images. Ne débranchez la série tout de suite il y a quelques choses à faire en premier. Copiez et collez cette adresse et utiliser pour envoyer comme avant. Il s’agit du programme final.
http://www.byvac.com/mBlib/FLB/Tutorial/PIC32MX1_Family/46_IRServo/IRServo_c.bas
La fonction main()
Cela semble compliqué, mais ce n’est pas. Type principal et voir comment cela fonctionne, il peut ne pas fonctionner du tout selon ce que votre IR est décodage permet donc jeter un oeil à la fonction main(). Pour sortir de la fonction, vous devrez réinitialiser.
Lignes 67 à 74 : Ces initialiser l’IR et servo comme avant. J’ai deux constantes dans la partie supérieure du fichier que j’ai trouvé les valeurs maximales et minimales du servo. La ligne = ((SERVOMAX-SERVOMIN)/2) + SERVOMIN plases le servo à une position intermédiaire au début vers le haut.
Ligne 75 : Cette fois que nous bouclera jamais aucun raccourci, c’est une bonne idée sur un stand seul demande que l’utilisation de la comkey ? (2) méthode peut arrêter la boucle si une valeur fausse est reçue dans le buffer de clé pour une raison quelconque. Cependant, au cours des essais c’est probablement une bonne idée de laisser l’EEG - en.
Ligne 78 : J’ai une LED attachée à la borne 4 et donc c’est juste pour un peu d’information supplémentaire.
Ligne 79 : Le mot IR reçu est en deux parties, les 8 derniers bits est le code associé à la clé et les bits 11 à 8 contenir la valeur de la bascule, donc cette ligne devient juste la valeur de clé (dans irkey) sans l’activer/désactiver.
Ligne 81 : Comme dit précédemment le cabillot appartient à l’octet haut du mot 16 bits, effectivement cette ligne est également obtenir le début et les bits de l’adresse aussi bien, mais ça ne fait vraiment rien dans la présente demande, que nous avons juste besoin de voir si la bascule est différente de la dernière fois. Le cardan sera le même si l’utilisateur a maintenu un doigt sur la touche de la télécommande, mais sera différent si l’utilisateur lâche la clé et appuie à nouveau sur elle. Cette fonction nous permet d’augmenter la vitesse du servo en ajoutant 1 à la variable de vitesse s’il n’y a aucun changement dans la bascule. S’il y a eu un changement dans la bascule ensuite vitesse est réinitialisée à 0 (ligne 82).
Lignes de 85 à 90 : Il s’agit de la mèche qui détecte les touches sont utilisées, dans ce cas, nous recherchons 2 clés selon ce tableau :
Valeur de la clé
+ V 10 (+ volume)
+ 20 P (canal +)
-V 11 (-volume)
-P 21 (-canal)
Ces valeurs ont été trouvées au cours de la phase de développement, les autres touches bien sûr pourraient être choisis. Les touches plus ajouter 1 pour accélérer et les - touches un à emporter.
Lignes de 92 à 96 : Traiter avec la touche de volume et ajouter la vitesse à la valeur PWM de servo, une vérification est faite à 95 et 96, que le servo de valeurs n’ont pas été dépassées, cela donne juste un contrôle serré gentil.
Lorsque vous êtes satisfait avec le logiciel type flsave("") et il sauvera les fonctions actuelles dans la ram à clignoter. Parce que la fonction est appelée main() que fonctionnera également à la remise à zéro.
Retour à développer
Il peut ou peut n’ont pas traversé l’esprit qu’on la fonction main() est sauvegardé pour flash et ce commence sur reset - Comment dois-je faire d’autres projets avec cette IC - ou pire encore, si vous avez un projet de travail qui a été enregistré dans main() est il coincé là-bas pour toujours ? Eh bien non, bien sûr il doit y avoir une sortir.
Recap
Cela a été une démonstration de commande de servo moteurs via IR C’est vraiment une démonstration de IR et servo. L’IR ne doit pas être connecté à un servo mais pourrait être un relais par exemple et le servo ne doit pas être contrôlée par l’IR, cela pourrait avoir un ensemble fixe de mouvements appliqués. Ou il peut être contrôlé via le PC, ou un clavier peut-être d’ouvrir une porte verrouillée.