/home/totofweb/homepage
Christophe Le Lann's Homepage v0.8
 

Carte de commande de 2 servomoteurs optocouplée

Date d'initialisation : Février 2005
Etat actuel : Terminé

Sommaire

Photo du projet

Sous-projets

Titre Date Etat
Librairie en C de génération de signal PWM pour servomoteurs Mai 2005 Terminé

Haut de page

Description générale

Caractéristiques techniques :

Son grand atout est d'utiliser des optocoupleurs pour séparer totalement l'alimentation logique de l'alimentation puissance. De cette manière, le pic est totalement protégé contre les remontées de parasites.

Le schéma est fait sous Eagle (soft windows/linux gratuit en version de démo limitée à des cartes de 100x80mm). Pour un montage aussi simple, il n'est pas utile de faire un circuit imprimé, un simple montage sur plaquette veroboard à pastilles suffira amplement.

Passons maintenant à la partie programmation. Pour plus d'informations sur la commande d'un servo, référez-vous à l'excellent site des fribotte. J'utilise le compilateur CCS, que je recommande pour sa simplicité d'utilisation, même si le compilateur développé par Microchip (C18) semble en passe de devenir la référence, je trouve CCS plus simple à l'utilisation (fonctions output() et input(), pas besoin de gérer les tris).

Pour générer le signal en PWM demandé par le servo, nous allons utiliser les interruptions du pic. J'ai choisi de générer une interruption toutes les 50µs, je peux donc contrôler le servo par pas de 0.9°, ce qui est une précision suffisante. Pour plus de précision, on poura utiliser des interruptions de 25µs ou 10µs, ce qui nécessite d'adapter légèrement le code.

Pour générer une interruption toutes les 50µs, il faut se référer à la datasheet du pic en question. Dans notre exemple, nous allons utiliser un pic 16F877A à 20MHz.

Le prescaler est une variable qui compte le nombre d'instructions effectuées. Chaque instruction du pic nécessite 4 tops d'horloge, le prescaler s'incrémentera donc toutes les 2µs (1/(2000000/4)). La datasheet nous informe que son timer 0 est un timer 8bits, c'est à dire qu'il sera appelé quand le prescaler atteindra 255. Le timer0 sera donc appelé toutes les 512µs (256/(2000000/4)). Nous souhaitons qu'il le fasse toutes les 50µs, nous allons donc initialiser directement le prescaler sur la valeur 204, comme ça il se passera 50 instructions (donc 50µs) avant l'appel du timer 0. A chaque appel de timer 0, on remet le prescaler sur 204 et il recontera encore 50 instructions, le tour est joué.

Haut de page

Photos


Cliquez pour voir la photo en grand
global.jpg
Vue globale de la carte.

Haut de page

Schéma et Circuit Imprimé


Cliquez pour voir la photo en grand
schema.png
Schéma du circuit (version Eagle téléchargeable).
Cliquez pour voir la photo en grand
schema.sch
Schéma sous Eagle.

Haut de page

Commentaires des visiteurs

Laisser un commentaire

Par Eric le 08/08/2007

Salut Christophe,

Je me pose une question quant à la sécurité du montage que tu utilises ici. La plupart des connecteurs standards de servos étant assez peu détrompée, il n'est pas rare de brancher ce connecteur à l'envers. Or dans cette position, le photo-transistor du coupleur va directement relier le + et la masse de l'alimentation du servo dès qu'il devient passant. Tu n'es jamais tombé sur ce problème ?

En fait, je me le pose, car le montage en projet ne m'est pas destiné mais va être manipulé par des jeunes, et doit donc être autant que possible à l'épreuve des fausses manips.

Merci d'avance pour toute réaction.

Cordialement

Eric
(aka RicE sur le forum PS ;-)

Haut de page

Par Totofweb le 09/08/2007

Rice> Je n'avais effectivement pas conçu ce montage avec comme critère principal la sécurité d'utilisation.
Je pense que tu peux essayer de remanier un peu les signaux aux côtés du phototransistors : relier l'émetteur directement à la masse, et relier le collecteur d'une part au +5V par l'intermédiaire d'une résistance de 1k, et d'autre part à l'entrée de commande du servomoteur.
Ainsi, même en cas d'inversion du connecteur du servomoteur, la résistance de 1k empêchera de court-circuiter la masse avec le +5V.

Haut de page

Laisser un commentaire


Pseudo
Mail (facultatif)
Votre message
erreur de génération du cryptogramme visuel. Veuillez recopier le cryptogramme visuel :

Haut de page