{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# CHAPTER 5: DIGITAL INSTRUMENT BASICS" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Example 5-1, Page Number: 120" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "High output voltage(Voh)= 4.0 V\n", "Low output voltage(Vol)= 0.7 V\n" ] } ], "source": [ "import math\n", "\n", "#Variable Declaration\n", "\n", "Vcc=5 #in V\n", "R1=1*10**3 #in ohm \n", "Vd=0.7 #Diode voltage in V\n", "I0=1*10**-3 #High output current in A\n", "Vilow=0 #Low input voltage\n", "\n", "#Calculation\n", "Voh=Vcc-I0*R1\n", "Vol=Vilow+Vd\n", "\n", "print \"High output voltage(Voh)=\",Voh,\"V\"\n", "print \"Low output voltage(Vol)=\",Vol,\"V\"" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Example 5-2, Page Number: 121" ] }, { "cell_type": "code", "execution_count": 31, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "With Q2 ON,\n", "Vc2= 0.2 V\n", "Vr1r2= 5.2 V\n", "Vr1= 1.9 V\n", "Vb1= -1.7 V\n", "\n", "With Q1 OFF,\n", "Vrc1= 0.6 V\n", "Vc1= 4.4 V\n" ] } ], "source": [ "import math\n", "\n", "#Variable Declaration\n", "\n", "Vbe=0.7 #Base emitter voltage in V\n", "Vce_sat=0.2 #Saturation voltage in V\n", "R1=15*10**3 #in ohm\n", "R2=27*10**3 #in ohm\n", "Vcc=5 #in V\n", "Vbb=-5 #in V\n", "Rc1=2.7*10**3 #in ohm\n", "R11=15*10**3 #in ohm\n", "R21=27*10**3 #in ohm\n", "\n", "#Calculation\n", "#With Q2 on,\n", "Vc2=Vce_sat #Q2 is ON \n", "Vr1r2=Vc2-Vbb #KVL\n", "Vr1=R1*Vr1r2/(R1+R2) #Voltage Divider Rule\n", "\n", "Vb1=Vc2-Vr1 #KVL\n", "\n", "#With Q1 off, \n", "Vrc1=Rc1*(Vcc-Vbb)/(Rc1+R11+R21) #Voltage Divider Rule\n", "Vc1=Vcc-Vrc1 #KVL\n", "\n", "\n", "#Results\n", "\n", "print \"With Q2 ON,\"\n", "print \"Vc2=\",round(Vc2,1),\"V\"\n", "print \"Vr1r2=\",round(Vr1r2,1),\"V\"\n", "print \"Vr1=\",round(Vr1,1),\"V\"\n", "print \"Vb1=\",round(Vb1,1),\"V\"\n", "print\n", "print \"With Q1 OFF,\"\n", "print \"Vrc1=\",round(Vrc1,1),\"V\"\n", "print \"Vc1=\",round(Vc1,1),\"V\"\n", "\n", "#Note: A round off error of 0.1 V is observed in Vr1 and Vb1 variables" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Example 5-3, Page Number: 124" ] }, { "cell_type": "code", "execution_count": 34, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "For the LED Display,\n", "Current for each 7 segment display= 140.0 mA\n", "Current for 1/2 (2 segment) display= 40.0 mA\n", "Total current for 3 and 1/2 digits= 460.0 mA\n", "\n", "For the LCD Display,\n", "Current for each 7 segment display= 2.1 mA\n", "Current for 1/2 (2 segment) display= 600.0 micro ampere\n", "Total current for 3 and 1/2 digits= 6.9 mA\n" ] } ], "source": [ "import math\n", "\n", "#Variable Declaration\n", "\n", "If=20*10**-3 #Forward current in A\n", "\n", "#Calcualtions\n", "#For the LED display\n", "I7=7*If #Seven Segment Current in A\n", "I_1by2=2*If #Current for 1/2 digit in A\n", "It=3*I7+I_1by2 #Total Current in A\n", "\n", "print \"For the LED Display,\"\n", "print \"Current for each 7 segment display=\",round(I7*10**3),\"mA\"\n", "print \"Current for 1/2 (2 segment) display=\",round(I_1by2*10**3),\"mA\"\n", "print \"Total current for 3 and 1/2 digits=\",round(It*10**3),\"mA\"\n", "\n", "\n", "#For the LCD Display\n", "If=300*10**-6\n", "\n", "I7=7*If #Seven Segment Current in A\n", "I_1by2=2*If #Current for 1/2 digit in A\n", "It=3*I7+I_1by2 #Total Current in A\n", "\n", "print\n", "print \"For the LCD Display,\"\n", "print \"Current for each 7 segment display=\",round(I7*10**3,1),\"mA\"\n", "print \"Current for 1/2 (2 segment) display=\",round(I_1by2*10**6),\"micro ampere\"\n", "print \"Total current for 3 and 1/2 digits=\",round(It*10**3,1),\"mA\"\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Example 5-4, Page Number: 130" ] }, { "cell_type": "code", "execution_count": 35, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Time period= 4.1 ms\n", "Frequency= 244.0 Hz\n" ] } ], "source": [ "import math\n", "\n", "#Variable Declaration\n", "T0=1*10**-6 #Oscillator time period in s\n", "N=16 #Modulus of the counters \n", "n=3 #No. of counters\n", "\n", "#Calculations\n", "T=T0*N**n #Time period in s\n", "f=1/T #Frequency in Hz\n", "\n", "#Results\n", "print \"Time period=\",round(T*10**3,1),\"ms\"\n", "print \"Frequency=\",round(f),\"Hz\"" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Example 5-5, Page Number: 131" ] }, { "cell_type": "code", "execution_count": 41, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "For Vi=0.9V,\n", "t= 90.0 ms\n", "Pulses counted= 90000.0\n", "For Vi=0.75V,\n", "t= 75.0 ms\n", "Pulses counted= 75000.0\n" ] } ], "source": [ "import math\n", "\n", "#Variable Declaration\n", "Vr=1.25 #in V\n", "tr=125*10**-3 #in s\n", "f=1.0*10**6 #in Hz\n", "\n", "#For Vi=0.9\n", "Vi=0.9 #in V\n", "t1=tr*Vi/Vr #in s \n", "T=1/f #in s\n", "N=t1/T #No. of pulses counted \n", "\n", "print \"For Vi=0.9V,\"\n", "print \"t=\",round(t1*10**3),\"ms\"\n", "print \"Pulses counted=\",round(N)\n", "\n", "#For Vi=0.75\n", "Vi=0.75 #in V\n", "t1=tr*Vi/Vr #in s \n", "N=t1/T #No. of pulses counted \n", "\n", "print \"For Vi=0.75V,\"\n", "print \"t=\",round(t1*10**3),\"ms\"\n", "print \"Pulses counted=\",round(N)\n", "\n", "#**********************Error********************************\n", "##Note:The count values obtained in text book are 900 and 750 \n", "##Whereas the actual values are 900000 and 75000 respectively" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Example 5-6, Page Number: 133" ] }, { "cell_type": "code", "execution_count": 47, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "N= 7 bit ADC is requird for quantizing error less than 1%\n" ] } ], "source": [ "import math\n", "\n", "#Variable Declaration\n", "\n", "#For 1% quantizing error count, count>=100\n", "N=1\n", "while(N):\n", " count=2**N-1\n", " if(count>=100):\n", " break \n", " N=N+1\n", "\n", "print \"N=\",N,\"bit ADC is requird for quantizing error less than 1%\"\n", " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Example 5-7, Page Number: 135" ] }, { "cell_type": "code", "execution_count": 50, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Vo= 6.25 V\n" ] } ], "source": [ "import math\n", "\n", "#Variable Declaration\n", "a3=1 #bit\n", "a2=0 #bit\n", "a1=1 #bit\n", "a0=0 #bit\n", "Vi=10 #in V\n", "\n", "#Calculations\n", "\n", "Vo=(2**3*a3+2**2*a2+2**1*a1+a0)*Vi/16.0\n", "\n", "print \"Vo=\",round(Vo,2),\"V\"\n", " \n" ] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.9" } }, "nbformat": 4, "nbformat_minor": 0 }