Nouvelles:

Le Forum est maintenant chiffré (préambule https). Bien sûr, des liens externes insérés dans les sujets vont demeurer inchangés. Mais la composition des pages du Forum est désormais sécurisée. Si des problèmes d'affichage surviennent, veillez à vider votre cache pour ce site.

Menu principal

Traceur de courbe de transistors du (tres) pauvre.

Démarré par bubblecat, Avril 09, 2016, 09:57:03 AM

« précédent - suivant »

Janpolanton

J'ai utilisé les librairies numpy, matplotlib et drawnow.

La librairie drawnow est plutôt réticente à  installer et il a fallu que je régresse en version pour qu'elle consente à  fonctionner.

Électro-Bidouilleur

PyChart n'est pas récent, mais il fonctionne toujours bien. Je m'en sert pour générer des courbes en PDF. Plus simple que la suite que vous utilisez. Nécessite Ghostscipt, qui s'installe séparément.

Janpolanton

Je ne connais pas encore pyChart et j'ai commencé python hier, avant je ne m'en étais jamais servi.

Par contre, avec les librairies que j'utilise, le code se résume à  quelques lignes. (Oui, je sais, il n'est pas renseigné, mais il est tellement simple...) :-[


import serial
import numpy
import matplotlib.pyplot as plt
from drawnow import *

Vce0= []
Ic0= []

arduinoData = serial.Serial ('com3', 115200)
plt.ion()
cnt=0

def makeFig():
   

    plt.title('TRACEUR DE COURBE TRANSISTORS')
   
    plt.xlabel('VCE Volt')
    plt.plot(Vce0, Ic0)
    plt.grid(True)
    plt.ylabel('Ic mA')
   

while True:
    while (arduinoData.inWaiting() ==0):
        pass
    arduinoString = arduinoData.readline()
    dataArray = arduinoString.split(',')
    VCE = float(dataArray[1])
    IC = float(dataArray[0])
    Vce0.append(VCE)
    Ic0.append(IC)
   
    drawnow(makeFig)
    plt.pause(.000001)
    cnt=cnt+1
    if(cnt>1023):
        Vce0.pop(0)
        Ib0.pop(0)
       
 
 
   
   
   
   
   
   
   

Électro-Bidouilleur

En effet, c'est simple. Et c'est souvent le cas avec Python. Bravo de vous être initié au serpent!

Janpolanton

Bonjour,

Dernière mouture du testeur version NPN. L'alimentation passe d'une alimentation symétrique à  une alimentation simple et modif transistor sortie rampe.
Il me reste à  faire la version PNP et surtout de voir pour une inversion simple PNP / NPN

Janpolanton

Bonjour à  tous,
Avancement de mon étude théorique du schéma.
J'ai un peu (beaucoup) galéré pour trouver un solution d'inverseur NPN / PNP. Après mûre réflexion, il suffisait d'alimenter les bascules JK avec une alimentation symétrique +/- et d'aiguiller les signaux avec des diodes.
Par contre, il m'a fallu bidouiller les directives spice de mes modèles car les circuits logiques n'acceptaient pas une tension négative  :mrgreen:

J'ai gardé mes rampes générées avec 2 CDA R2R (une rampe positive et une négative)
La sortie se fait à  travers un AOP qui attaque un push-pull complémentaire.
Ci-dessous une capture d'écran des rampes générées avec 3 valeurs de résistance pour 21 valeurs de courants de base.

Et plus tard, la suite pour la rampe VCE... ;)


Électro-Bidouilleur

Ouin, on tombe dans le "spécial" avec des portes logiques avec alimentation différentielle! Y'a rien de trop beau pour faire fonctionner un circuit! Amusez-vous bien...  :D

Janpolanton

Et oui,  il faut savoir sortir des sentiers battus... :)
J'ai attaqué la rampe VCE sur le même principe mais comme j'utilise un CD4040 (compteur 12 bit), mon PC rame à  mort quand je lance la simulation.
Je vais me limiter à  8 bit pour la mise au point sous LTspice, simplement pour valider le principe et je gagnerai du temps.
Dommage qu'il n'existe pas à  ma connaissance un compteur binaire 8-bits série 40xx ou 45xx.

Janpolanton

Bonjour à  tous,
J'ai abandonné l'idée ci-dessus avec les diodes et je suis revenu à  mon idée de départ.
Une idée lumineuse m'a été suggérée sur un autre forum : l'utilisation de cmos de la famille CD405x " CMOS Single 8-Channel Analog Multiplexer/Demultiplexer With Logic-Level Conversion ".

Je me suis donc intéressé à  la chose mais comme je n'ai trouvé aucun modèle sous LTspice j'ai utilisé de simples DPDT commandés en tension. Ce n'est pas parfait, mais pour valider le principe, c'est suffisant.
J'ai quand même gardé les alimentations différentielles pour les cmos  ;D
Je vous mets le schéma en pdf ci-dessous. Le transistor en essai est un PNP mais j'ai simulé aussi un NPN.
Je vous mets les 2 courbes en capture d'écran.





Électro-Bidouilleur

Les multiplexeurs analogiques sont souvent oubliés comme solution pratique. Pourtant, on peut s'en servir autant comme solution de commutation analogique que logique. Il en existe qui roulent à  plusieurs dizaines de MHz. Très, très commodes. Mais on n,a pas tendance à  y avoir recours.

En tout cas, votre circuit est tout un apprentissage. Vous avez autant de la logique que de l'analogique, que programmation logicielle. Bravo!

Janpolanton

Bonsoir Bertrand,

Merci pour vos encouragement qui me font bien plaisir mais je suis déçu que ce projet n'intéresse pas grand monde... :'(
C'est un peu dommage car il y a matière à  débattre.
Bonne soirée.

Électro-Bidouilleur

Il y a beaucoup de viande dans ce projet. Voici d'après moi deux possibilités pour expliquer le bas niveau d'intérêt (apparent, du moins):

  • Je crois que peu de gens s'intéressent à  la capacité de tester des semi-conducteurs de façon paramétrique. Personnellement, je n'ai pas cette capacité, et je n'en ressens pas le besoin.
  • Vous avez choisi d'exclure les micro-contrôleurs, et de n'utiliser que des composants simples, ce qui alourdit de beaucoup la solution. Qu'on le veuille ou non, le schéma paraît complexe. Bien sûr c'est votre choix, et c'est très respectable. Mais moi je n'aurais pas procédé de la sorte.
Quoi qu'il en soit, ne cessez pas de nous informer de votre progrès. Ceux qui le lisent peuvent apprendre des techniques et concepts en analysant votre solution. Il y a beaucoup de valeur dans votre démarche, et c'est tout en votre honneur de partager vos projets. Lâchez pas!

Janpolanton

Bonjour à  tous,

Pas mal de modifictions à  mon projet depuis ma dernière visite :

Passage de l'alimentation du 555 et des Cmos en tension simple 12V.

Ajout de 2 "amplificateurs d'instrumentation" à  gain variable pour visualisation sur oscilloscope en X-Y ou pour sortie sur Arduino.
Lecture de la valeur absolue de Vce et de Ib.
Suppression des bascules JK CD4027 et remplacement par un compteur / décompteur binaire ou décade CD4029.
Passage des rampes courant de base sur 4bits car il me restait un emplacement sur un CD4053.

Mais un schéma vaut mieux qu'un grand discours...




Janpolanton

#43
Bonjour,
Bien, je continue mon monologue...
beaucoup de travail sur le projet, quasi une refonte complète, mais toujours avec réseaux R2R et logique CMOS.
Cette fois, je suis parti sur une rampe double pour la tension collecteur pour avoir un traé des courbes beaucoup plus clean.
Grosse modification aussi sur les steps courant de base avec utilisation d'un compteur synchrone et d'un comparateur à  pré-positionnement.

Il me reste à  gérer un petit problème d'offset ainsi que les petits décrochés au démarrage de chaque courbe, mais là , je sèche un peu.
Je me demande si ce n'est pas dû au simulateur lui-même.

Voilà , la suite à  la résolutions de ces petits défauts.




Électro-Bidouilleur

Juste comme ça, suspecte le comportement de tes transistors de sortie et des diodes sur les sorties des amplis ops. Sont-ils toujours en conduction?