RC phase shift experiment

Aim: To observe the phase shift produced by a simple RC network and view the corresponding Lissajous figure on an oscilloscope.

CH1 monitors the input waveform, and CH2 monitors the phase shifted output of the RC network.

The GUI is located at SEELablet -> Electrical -> RC Phase Shift

Figure : Schematic. The connections are made according to the schematic.

Results : The resulting Lissajous figure is a tilted ellipse.

BJT as an amplifier

Learn to use a BJT as an amplifier in the common emitter configuration. The GUI for this is located at Electronics -> Transistor -> Transistor amplifier

The input and output waveforms are traced on the oscilloscope using two channels. The gain can be calculated directly using the measure gain button. This experiment can be modified to calculate the bandwidth of the amplifier by varying the frequency of the input waveform and noting the corresponding gains as a function of the frequency.

Resultant Data:

from SEEL import interface
I=interface.connect()

#fetch 5000 points each from CH1, CH2 with 2uS between each
x,y1,y2 = I.capture2(5000,2)

from SEEL.analyticsClass import analytics
math = analytics()
amp1,freq,phase,offset = math.sineFit(x,y1) #Calculate parameters of input waveform
amp2,freq2,phase2,offset2 = math.sineFit(x,y2) #calculate parameters of output
print (amp1,amp2,'gain = %.3e'%(amp2/amp1)) #calculate and print gain

from pylab import *
plot(x,y1)
plot(x,y2)
show()

 

Output characteristics of a Bipolar Junction Transistor (BJT)

Launch BJT Output Characteristics GUI from SEELablet – > Electronics -> Transistors -> Transistor CE

Prepare the experiment based on the schematic and instructions available in the help section.

Resultant Data:  The base voltage (thereby base current) is varied and the corresponding I-V curves are plotted.

from SEEL import interface
I=interface.connect()

pv2 = I.set_pv2( 1.0)   #  Bias the base via a 200K resistor.
base_voltage = I.get_voltage('CH3')
base_current = (pv2-base_voltage)/200e3 # Use Ohm's law to determine current
CollectorCurrent = []
CollectorVoltage = []
for a in np.linspace(0,5,100):
  pv1 = I.set_pv1(a)
  CollectorCurrent .append( (pv1 - I.get_voltage('CH1') )/1e3 )
  CollectorVoltage.append(pv1)

from pylab import *
plot(CollectorVoltage,CollectorCurrent ) #Plot and try a different base current
show()

 

Design -> Acquire -> Visualize

The experiment designer interface allows users  to quickly put together a study of phenomena using the control and readback elements that have been incorporated into a common interface.

Consider the example of a curve tracer for transistor CE output characteristics. It requires :
A ) Base current setting : A parameter that only needs to be set once per curve
B) Collector voltage setting : A parameter that needs to be swept from Voltage A to voltage B
C) Collector current monitoring : A parameter that needs to be read for each value of B
In addition, the user may require plotting and analytics.

Diode IV
Diode IV is being plotted based on the following schematic. CH3 monitors the voltage drop across the diode, and (PV1-CH3)/1K is the current flowing through it.

The derived channel section can also be used to add I2C sensors.

An analytics section is under active development.

The following screenshots illustrate the use of the experiment designer :

Tab #1

Tab#2 Consider the Diode IV experiment.  We will need :

  • A voltage source that will sweep the biasing voltage in a range that includes the expected knee voltage
  • A Voltmeter that will measure the voltage drop across the diode
  • A derived channel that uses
    • Known Value of PV1
    • Measured value of CH3
    • Known resistance 1K
      And Calculates the current flowing through the diode. I = (PV1 – CH3)/1000

Tab#3

Click on evaluate all rows to obtain readings for all values of PV1 voltage that we specified.

Select the channels to be plotted , and click on Plot

Tab#4

View the plots

Save the Data as either a text file, or an image