Benutzer-Werkzeuge

Webseiten-Werkzeuge


schwellwertschalter.sh

Schwellwertschalter.sh

Mit Hilfe von Schwellwertschaltern bzw. Schmitt-Trigger kann man sehr steile Impuls-Flanken erreichen. Egal welche Impulsform in den Schwellwertschalter rein geht, es kommt immer ein Rechteckimpuls wieder raus.

Mit diesem Script kann man, bezogen auf bestimmte Transistordaten, einen einfachen Schwellwertschalter (Schmitt-Trigger), der aus zwei diskreten Transistoren besteht, berechnen.

UB - Betriebsspannung
IC - Kollektorstrom der Transistoren T1 und T2; siehe Datenblatt
IB - Basisstrom der Transistoren T1 und T2; siehe Datenblatt
B - Verstärkung der Transistoren T1 und T2; siehe Datenblatt
UBE - Basis-Emitter-Spannung der Transistoren T1 und T2; siehe Datenblatt
RC - Kollektorwiderstand / zwei gleiche Widerstände, die zwischen Kollektor (jedes der beiden Transistore) und Betriebsspannung liegen
RE - Emitterwiederstand / dieser Widerstand ist mit dem einen Ende an beide Emitteranschlüsse beider Transistore und mit dem anderen Ende an Masse angeschlossen
FRE - Faktor für das Verhältnis zwischen Kollektorwiderstand und Emitterwiederstand
Fteil - Querstromfaktor für den Spannungsteiler R1 und R2
UR2 - Spannung an R2
URE - Spannung an RE (Emitterwiederstand)
Rteil - Spannungsteiler R1+R2
URE - Spannung am Emitterwiederstand
R1 - Widerstand zwischen Kollektor von T1 und Basis von T2
R2 - Widerstand zwischen Basis von T2 und Masse
C - Beschleunigungskondensator von geringer Kapazität (typisch: ''10pF...100pF'', manchmal auch ''1nF''), der kann die Umschaltzeiten verkürzen
FRE ~ 10 (5...20) je kleiner, desto schneller wird geschaltet und desto größer ist die Hysterese
Fteil ~ 5 (3...10) 5 ist ein guter Erfahrungswert

RC = UB / IC 
RE = RC / FRE
IB = (UB/(RC+RE))/B
URE = (UB*RE)/(RC+RE)
UR2 = URE + UBE
URC = RC * IB * FIQ
Uteil = UB - URC
Rteil = Uteil / (IB * FIQ)
R2 = ((RC + Rteil) * UR2) / UB4 
R1 = Rteil - R2

Script

#!/bin/bash

if [ -z $4 ] ; then
        echo "$0 [UB] [IC] [B] [UBE]"
        echo "$0 [UB] [IC] [B] [UBE] [FRE] [FIQ]"
        echo "$0 [Betriebsspannung / max. Kollektor-Emitter-Spannung] [max. Kollektorstrom in A] [Transistorverstärkung] [Basis-Emitter-Spannung]"
        echo "$0 [Betriebsspannung / max. Kollektor-Emitter-Spannung] [max. Kollektorstrom in A] [Transistorverstärkung] [Basis-Emitter-Spannung] [RC/RE=10] [Querstromfaktor vom Spannungsteiler R1&R2 =5]"
        exit 0
fi

UB="$1"
IC="$2"
B="$3"
UBE="$4"
FRE="$5"
FIQ="$6"

if [ -z "${FRE}" ] ; then
        FRE="10"
fi

if [ -z "${FIQ}" ] ; then
        FIQ="5"
fi

RC="$(echo "${UB} ${IC}" | awk '{print $1/$2}')"                              # RC = UB / IC 
RE="$(echo "${RC} ${FRE}" | awk '{print $1/$2}')"                             # RE = RC / FRE
IB="$(echo "${UB} ${RC} ${RE} ${B}" | awk '{print ($1/($2+$3))/$4}')"         # IB = (UB/(RC+RE))/B
URE="$(echo "${UB} ${RC} ${RE}" | awk '{print ($1*$3)/($2+$3)}')"             # URE = (UB*RE)/(RC+RE)
UR2="$(echo "${URE} ${UBE}" | awk '{print $1+$2}')"                           # UR2 = URE + UBE
URC="$(echo "${RC} ${IB} ${FIQ}" | awk '{print $1*$2*$3}')"                   # URC = RC * IB * FIQ
Uteil="$(echo "${UB} ${URC}" | awk '{print ($1-$2)}')"                        # Uteil = UB - URC
Rteil="$(echo "${Uteil} ${IB} ${FIQ}" | awk '{print $1/($2*$3)}')"            # Rteil = Uteil / (IB * FIQ)
R2="$(echo "${RC} ${Rteil} ${UR2} ${UB}" | awk '{print (($1+$2)*$3)/$4}')"    # R2 = ((RC + Rteil) * UR2) / UB4
R1="$(echo "${Rteil} ${R2}" | awk '{print $1-$2}')"                           # R1 = Rteil - R2
Ptot="$(echo "${UB} ${RC}" | awk '{print ($1*$1)/$2}')"

echo "
             +---------------+---------------------O
             |               |                    UB = $UB V
            +-+             +-+
            | | RC          | | RC = UB / IC = ${UB}/${IC} = $RC Ohm
            | |             | | URC = RC * IB * FIQ = ${RC} * ${IB} * ${FIQ} = ${URC} Volt
            | |             | |
            +-+             +-+
             |               |                     A
             |               +---------------------O
             |               |       C = 10pF...1nF (der Beschleunigungskondensator ist optional)
             +-------------------------+-----+ Uteil = UB - URC = ${UB} - ${URC} = ${Uteil} Volt
             |               |         |     |
             |               |         |    +-+
             |               |       -----  | | R1 = $R1 Ohm
             |               |       -----  | | (abrunden)
            /                 \        |    | |
         | /                   \ |     |    +-+
  E      |/                     \|     |     |
  O------|  T1               T2  |-----+-----+ UR2 = URE + UBE = ${URE} + ${UBE} = $UR2 Volt
         |\                     /|           | IB = (UB/(RC+RE))/B = (${UB}/(${RC}+${RE}))/${B} = ${IB} Ampere
         | >                   < |           |
            \                 /              | Transistorverstärkung = ${B}-fach
             |               |               | Ptot = ${Ptot} Watt
             +-------+-------+               |
                     |                       |
                    +-+                     +-+
                    | |                     | | R2 = $R2 Ohm
                    | |                     | | (aufrunden)
                    | |                     | |
                    +-+                     +-+
                     |                       | Masse
  O------------------+-----------------------+-----O
                  RE = RC / FRE = ${RC}/${FRE} = $RE Ohm
                  URE = (UB*RE)/(RC+RE) = (${UB}*${RE})/(${RC}+${RE}) = $URE Volt
"

Beispiel

Beispielsweise ruft man das Script wie folgt auf.

In diesem Beispiel werden die Transistordaten des BFR106 verwendet:

  • Betriebsspannung, höchstens die max. Kollektor-Emitter-Spannung (UB): 15 Volt
  • max. Kollektorstrom in A (IC): 100mA bzw. 0,1 A
  • Transistorverstärkung (B): 80 - fach
  • Basis-Emitter-Spannung (UBE): 3 Volt
# ./Schwellwertschalter.sh 15 0.1 80 3

           +---------------+---------------------O
           |               |                    UB = 15 V
          +-+             +-+
          | | RC          | | RC = UB / IC = 15/0.1 = 150 Ohm
          | |             | | URC = RC * IB * FIQ = 150 * 0.00113636 * 5 = 0.85227 Volt
          | |             | |
          +-+             +-+
           |               |                     A
           |               +---------------------O
           |               |       C = 10pF...1nF (der Beschleunigungskondensator ist optional)
           +-------------------------+-----+ Uteil = UB - URC = 15 - 0.85227 = 14.1477 Volt
           |               |         |     |
           |               |         |    +-+
           |               |       -----  | | R1 = 1722 Ohm
           |               |       -----  | | (abrunden)
          /                 \        |    | |
       | /                   \ |     |    +-+
E      |/                     \|     |     |
O------|  T1               T2  |-----+-----+ UR2 = URE + UBE = 1.36364 + 3 = 4.36364 Volt
       |\                     /|           | IB = (UB/(RC+RE))/B = (15/(150+15))/80 = 0.00113636 Ampere
       | >                   < |           |
          \                 /              | Transistorverstärkung = 80-fach
           |               |               | Ptot = 1.5 Watt
           +-------+-------+               |
                   |                       |
                  +-+                     +-+
                  | |                     | | R2 = 768.001 Ohm
                  | |                     | | (aufrunden)
                  | |                     | |
                  +-+                     +-+
                   |                       | Masse
O------------------+-----------------------+-----O
                RE = RC / FRE = 150/10 = 15 Ohm
                URE = (UB*RE)/(RC+RE) = (15*15)/(150+15) = 1.36364 Volt

oder mit weniger Verlustleistung, hier habe ich den Strom IC auf 60mA reduziert:

# ./Schwellwertschalter.sh 15 0.06 80 3

           +---------------+---------------------O
           |               |                    UB = 15 V
          +-+             +-+
          | | RC          | | RC = UB / IC = 15/0.06 = 250 Ohm
          | |             | | URC = RC * IB * FIQ = 250 * 0.000681818 * 5 = 0.852272 Volt
          | |             | |
          +-+             +-+
           |               |                     A
           |               +---------------------O
           |               |       C = 10pF...1nF (der Beschleunigungskondensator ist optional)
           +-------------------------+-----+ Uteil = UB - URC = 15 - 0.852272 = 14.1477 Volt
           |               |         |     |
           |               |         |    +-+
           |               |       -----  | | R1 = 2869.99 Ohm
           |               |       -----  | | (abrunden)
          /                 \        |    | |
       | /                   \ |     |    +-+
E      |/                     \|     |     |
O------|  T1               T2  |-----+-----+ UR2 = URE + UBE = 1.36364 + 3 = 4.36364 Volt
       |\                     /|           | IB = (UB/(RC+RE))/B = (15/(250+25))/80 = 0.000681818 Ampere
       | >                   < |           |
          \                 /              | Transistorverstärkung = 80-fach
           |               |               | Ptot = 0.9 Watt
           +-------+-------+               |
                   |                       |
                  +-+                     +-+
                  | |                     | | R2 = 1280 Ohm
                  | |                     | | (aufrunden)
                  | |                     | |
                  +-+                     +-+
                   |                       | Masse
O------------------+-----------------------+-----O
                RE = RC / FRE = 250/10 = 25 Ohm
                URE = (UB*RE)/(RC+RE) = (15*25)/(250+25) = 1.36364 Volt
/home/http/wiki/data/pages/schwellwertschalter.sh.txt · Zuletzt geändert: von 127.0.0.1