jeudi 29 mai 2014

Allumer un néon avec une alimentation de 5 volt

Dans cet article j'explique comment utiliser la surtension générée dans une inductance lorsqu'on coupe subitement le courant qui y circule pour allumer une ampoule néon. Pour faire exception ce projet n'utilise pas de microcontrôleur mais une minuterie 555.

L'ampoule que j'ai utilisée est une A1B. D'après les spécifications du fabriquant elle consomme 300µA lorsqu'elle est en conduction.

circuit

Le transistor 2N5551 est un transistor haute tension capable de supporter une tension de 160 volt à son collecteur lorsqu'il n'y a pas de courant dans la base (Vceo). Pour l'inductance L1 j'ai utiliser une récupéré dans le circuit de démarrage d'un fluo-compact défectueux. J'ignore la valeur de cette inductance mais il est certainement supérieur à 1mH. Cette valeur n'est pas critique mais si elle est trop petite il n'y aura pas suffisamment d'énergie dans le champ magnétique pour allumer le néon. Vous pouvez tester le circuit avec différentes valeurs. Utilisez au moins 1mH.

R3 est utiliser pour limiter le courant et C3 amorti les fluctuations de tensions sur la borne supérieur de L1. R3 et C3 forment ensemble ce qu'on appelle un filtre passe-bas empêchant les fluctuations rapides dans le circuit L1-Q1 de passer dans l'alimentation.

La minuterie 555 est configurée en oscillateur astable avec une fréquence de sortie d'environ 12,5Khz et un rapport cyclique de 50%. La sortie du 555 alimente la base de Q1 à travers R2. Lorsque Q1 conduit le courant passe dans l'inductance L1 qui emmagasine cette énergie dans un champ magnétique. Puisque la sortie du 555 est une onde carrée, à la fin de la phase haute du cycle le transistor Q1 cesse de conduire subitement. Cette coupure brusque du courant traversant L1 a pour effet un effondrement rapide du champ magnétique ce qui génère une surtension oscillante au bornes de L1. Le cycle d'oscillation commence par la phase positive, donc sitôt que la tension sur le collecteur de Q1 dépasse la tension sur le condensateur C4 la diode D2 entre en conduction ce qui permet à l'énergie de L1 de se dissiper dans C4. Lorsque la tension au collecteur de Q1 redescend sous le niveau de C4, D2 cesse de conduire. Mais il y a encore de l'énergie dans L1 donc l'oscillation se poursuit dans le négatif. La diode D1, appelée diode d'amortissement, empêche cette énergie de passer à travers le transistor car lorsque le collecteur de Q1 deviens négatif la jonction base-collecteur devient conductrice mais D1 empêche cette énergie de passer à travers la jonction base-collecteur en la dirigeant vers le v- de l'alimentation.

Voici le voltage au collecteur de Q1. La sonde de l'oscilloscope est en mode 10x donc le voltage de crête est de 56 volts. La tension continue sur C4 est de 55,5 volts environ. Le néon entre en conduction à environ 50 volts.

oscillateur à relaxation

Au départ j'ai ajusté l'alimentation à 5 volts, pour ensuite la réduire progressivement. Vers 2,5 volts le néon commence à clignoter et si je continue à diminuer la fréquence du clignotement ralenti et finalement il s'éteint complètement.

Lorsque l'inductance n'a plus suffisamment d'énergie pour garder C4 à un niveau de tension suffisant pour garder le néon en conduction il s'éteint. Mais lorsqu'il est éteint il n'y a plus de courant qui y circule donc le condensateur C4 se recharge. Lorsqu'il atteint un niveau suffisant pour faire entrer le néon en conduction, ce dernier décharge C4. Le voltage auquel le néon s'éteint est plus faible que celui auquel il s'allume donc il reste allumer un certain temps avant de s'éteindre à nouveau. C'est ce qu'on appelle un oscillateur à relaxation. Il en résulte une onde triangulaire à la jonction D2-C4. Plus la tension de la l'alimentation est basse plus il faut de temps pour recharger C4 donc la fréquence diminue.

oscillation amortie

J'ai remplacé L1 par une petite inductance de 47µH et j'ai débranché D2 pour visualiser à l'oscilloscope le signal au collecteur de Q1. Voici ce que ça donne.

Le tracé en bleu est le signal à la sortie du 555. Lorsque le signal à la base de Q1 tombe à zéro on voit très bien l'oscillation amortie au collecteur. La tension de crête à crête du premier cycle de l'oscillation est d'environ 13 volts. J'ai modifié l'échelle de temps pour montrer le détail de l'oscillation amortie.

La période est d'environ 440nSec. La formule pour calculer la fréquence d'oscillation d'un circuit accordé est:
F=1/sqrt(2*PI*L*C). Donc pour connaître la valeur de C on a:
C=1/(4*PI^2*L*F^2)
C=1/(4*3,1415^2*47e-6*(1/440e-9)^2
C=1/4*9,8696*47e-6*5,2e12=104pF
104pF serait la capacitance parasite qui fait osciller L1.

Conclusion

Les inductances comme les condensateurs sont des accumulateurs d'énergie. Alors que les condensateurs accumulent l'énergie dans un champ électrique, les inductances l'accumulent dans un champ magnétique. Cependant alors que le champ électrique peut persister dans un condensateur, le champ magnétique lui n'est pas persistant, il s'effondre lorsque l'alimentation est coupée. Mais cette énergie doit se dissiper quelque part. S'il n'y pas de circuit pour la dissiper la tension monte rapidement aux bornes de l'inductance. En théorie cette tension pourrait devenir infinie. En pratique elle est limitée par la capacitance parasite qui existe à l'intérieur de toute inductance. L'inductance forme avec cette capacitance parasite un circuit accordé qui se met à osciller jusqu'à ce que toute l'énergie soit dissipée dans la résistance du bobinage. La tension maximale est atteinte lorsque toute l'énergie du champ magnétique a été transférée dans la capacitance parasite. Dans le circuit ci-haut l'oscillation est amortie très rapidement (1 demi-cycle) car elle est dissipée dans C4 et à travers D1.

samedi 24 mai 2014

faire moins avec plus

Habituellement dans un soucis d'économie j'essaie d'en faire le plus possible avec le moins possible mais dans cette article je fais moins avec plus :-). En fait je montre comment générer un voltage négatif à partir d'un voltage positif.

Schématique

fonctionnement

Ce circuit utilise 2 périphériques du PIC10F322 soit le PWM1 (Pulse Widh Modulation) et le CWG (Complementary Wave Generator). Le PWM1 est configuré pour générer une onde carré à une fréquence de 62Khz et celle-ci alimente le CWG. La Sortie A du CWG est sur RA0 et la sortie B sur RA1. Le voltage à ces 2 sorties est le suivant:

Le tracé jaune est la sortie RA0 et le bleu la sortie RA1.

Donc lorsque RA0 est à 5 volts le condensateur C4 se charge à travers la diode D3. Lorsque RA0 tombe à zéro volt et que RA1 monte à 5 volts on obtient que le côté positif de C4 se retrouve à zéro volt. Puisque C4 est chargé son électrode négative se retrouve à -5 volts par rapport à Vss. La diode D2 entre en conduction et C4 se décharge dans C3. Mais puisque l'électrode positive de C3 est à +5 volts. La différence de tension entre ses 2 électrodes approche 10 volts. Donc lorsque RA0 va remonter à +5 volts et que RA1 va descendre à 0 volt. L’électrode négative de C3 sera à près de -10 volt par rapport à Vss. La diode D1 va alors entrer en conduction et C3 va libérer sa charge dans C1 et C2. Résultat on obtient un voltage négatif au point de test TP3.

Cependant le courant de la charge est limité par le courant de sortie des broches du MCU. En pratique j'obtiens pour un courant de charge de 6ma un voltage de -5,5 volts à TP3 avec une tension résiduelle à la fréquence du PWM de 15mV. Mais c'est suffisant pour alimenter un convertisseur de niveau RS-232.


Signal résiduel du CWG au point TP3 pour une de charge 6ma

Les diodes sont de type Schottkey plutôt qu'à jonction silicium, c'est plus efficace pour ce montage. Il y a moins de perte de voltage dans les diodes.

Si on a besoin d'une tension mieux filtrée et régularisé on peut utilisé un petit LDO à la sortie.

Il existe des composants disponible sur le marché pour effectuer spécifiquement ce type d'inversion de tension. Par exemple le TC7660 de Microchip.

Code source

Le code source comprend 2 fichiers, pic10f322_m.inc qui contient des macros et plus2minus.asm qui contient le programme principal.

mercredi 7 mai 2014

complément à 2

Dans cet article j'explique ce qu'est le complément à 2 (Two's complement) et pourquoi il est utilisé pour représenter les entiers en binaire.

Lorsque nous représentons les nombres en visuel, pour représenter les nombres négatifs nous les précédons simplement du symbole'-' comme dans -35. Mais comment sont-il représentés en mémoire d'ordinateur, c'est à dire en binaire, puisque tout n'est qu'une suite de zéro et un?

Puisqu'un nombre ne peut-être que soit positif, soit négatif un seul bit peut servir à indiquer son signe. On pourrait simplement par exemple réserver le bit le plus significatif pour cette fonction. Supposons des nombres de 8 bits et réservons le bit 7 pour le signe. On aurait alors que 5 serait représenté par 00000101 et -5 par 10000101. Avec 8 bits on pourrait donc représenter tous les entiers entre -127 et 127.

Pour faire les opérations arithmétiques on mettrait simplement de côté le bit de signe et l'opération serait effectuée sur les 7 autres bits. Supposons qu'on voudrait additionner 5 et -9 on s'y prendrais comment? En fait il faudrait soustraire 9-5 et changer le signe du résultat pour obtenir -4. Mais comment concevoir un soustracteur d'entiers avec des portes logique?

C'est ici que le complément à 2 interviens en simplifiant grandement le problème. Pour obtenir ce complément on procède comme suit.

  1. Inverser chaque bit du nombre binaire.
  2. Ajouter 1 au nombre résultant
  3. Le bit de débordement est rejeté
exemple: le complément à 2 de 5 (00000101) est 11111010+1 = 11111011

Le complément à 2 a des propriétés intéressantes par exemple si on recommence l'opération on obtient le nombre original:
11111011 -> 00000100+1= 00000101. Tout entier obtenu par complément à 2 est donc considéré comme l'inverse de ce nombre en signe et tout nombre dont le bit le plus fort est 1 est considéré comme la représentation négative de l'entier. Donc pour les entiers de 8 bits les nombre 00000000 à 01111111 (0 à 127) sont considérés comme entiers positifs. Si on fait le complément à 2 de ces 128 entiers ont obtient 00000000 à 10000001 (0 à -127).

Il y a 2 cas particuliers 0 et -128 en effet si on fait le complément à 2 de 0 on obtient 0 lui-même et celui de -128 11111111 abouti à lui-même aussi. Donc l'étendue (domaine) des entiers binaire en complément à 2 pour 8 bits est de -128 à 127. Ainsi avec le système des compléments à 2 les entiers ont toujours un représentant de plus du côté négatif.

Poursuivons notre exploration de ce système pour en percevoir toutes les propriétés intéressantes. Fabriquer un additionneur de nombre binaires avec des portes logiques est simple mais fabriquer un soustracteur serait beaucoup plus complexe. Et les 2 circuits seraient complexes s'il fallait tenir compte du signe des nombres. En effet comme on la vue plus haut additionner un nombre positif et un nombre négatif revient en fait à soustraire en conservant le signe du nombre de plus grande magnitude.

Heureusement la représentation en complément à 2 nous évite ces complications. le fait est que si on veut soustraire un nombre d'un autre il suffit d'additionner son complément à 2. Je veux soustraire 5 de 9. Je produit simplement avec la fonction NOT le complément à 1 de 5 et je lui additionne 1 pour obtenir 11111011 j'additionne ça à 9, 00001001 et j'obtiens 00000100 avec un bit de débordement à 1.

 9 00001001
+
-5 11111011 (en fait le complément à 2 de 5)



   00000100 C=1

Et si on additionne un entier positif avec un entier négatif on obtient le bon résultat sans avoir à se soucier des signes. Prenons par exemple -3 + 7 = 4

-3 11111101
+
 7 00000111



   00000100 C=1

Dans ces 2 exemples C est le bit de débordement (carry bit).

Donc dans les faits les ordinateurs n'effectuent que des additions. Et un bit C à 1 indique que l'addition a débordée lorqu'on additionne 2 nombres positif. Un bit C à zéro lors d'une soustraction indique qu'il y a eu emprunt c'est à dire que le nombre soustrait était plus grand que l'autre. Dans le deuxième exemple on a additionner -3 à 7 et le bit de débordement est à 1 parce que la magnitude de -3 est plus petite que la magnitude de 7. C'est conforme à ce qu'on aurait obtenu si on avait voulu soustraire 3 de 7. si on avait additionner -9 + 5 on aurait obtenu:

-9 11110111
+
 5 00000101



   11111100 C=0

Ici le bit C est à zéro conformément au fait que si on soustrait 9 de 5 on doit faire un emprunt. Ce qui n'était pas le cas dans le premier exemple ou c'était 5 qui était soustrait de 9.

Voilà comment le complément à 2 permet de faire des additions et soustractions sur des nombres signés en utilisant simplement un additionneur.

Notez que ce système de complément à la base numérique est valide dans toutes les bases. Vous pouvez le vérifier sur papier avec la base décimale. Dans ce cas il s'agit évidement de trouver le complément à 10. Supposons que nous travaillions avec des nombres de 2 chiffres (0 à 99). Les nombres de 0 à 49 sont considérés comme positifs et les nombres de 50 à 99 comme négatifs. Pour obtenir le complément à 10 on procède comme suis:

  1. soustraire de 9 chaque digit.
  2. additionner 1 au résultat.
  3. jeter le débordement à 100 s'il y lieu.
exemple: 32 donne 9-3=6 et 9-2=7 et donc 67+1 = 68. Essayons 48 - 32 -> 48 + 68 = 116. On jette le digit de débordement on obtient bien 16.