Schmittův klopný obvod jako oscilátor

Zápisník experimentátora

Schmittův klopný obvod umožňuje vytvořit oscilátor pomocí malého množství součástek. Stačí nám na to integrovaný obvod 74HC14, rezistor a kondenzátor. V tomto článku si vysvětlíme princip fungování oscilátoru a budeme si vizualizovat průběh napětí pomocí Arduina. Takto vypadá schéma oscilátoru. Na schématu je připojeno i Arduino, aby bylo dobře vidět, kde se nacházejí kontrolní body měření.

Schmittův klopný obvod funguje tak, že napětí na výstupu se skokově změní v okamžiku, když napětí na vstupu překročí určité napětí. Při poklesu napětí na vstupu zůstává napětí na výstupu stabilní až do okamžiku, než napětí na vstupu poklesne pod určité napětí. Toto napětí je vždy výrazně nižší než napětí při nárůstu a tato vlastnost vstupu se nazývá hystereze. Díky ní není vstup citlivý na šum.

Hystereze nám poslouží i při vytvoření oscilátoru. Integrovaný obvod na výstupu současně dělá i negaci signálu. Pokud obvod zapojíme podle schématu a doplníme do něj následující součástky, začne oscilovat:

  • Kondenzátor mezi vstup a GND.
  • Rezistor mezi vstup a výstup.

Osciluje, protože při připojení napájení k integrovanému obvodu bude na vstupu napětí blízké GND a na výstupu napětí blízké VCC. Protože vstup a výstup jsou propojeny pomocí rezistoru, začne jím téct proud, který postupně nabije kondenzátor. Kondenzátor se nabije po definované napětí a v tom okamžiku se výstup překlopí na napětí blízké GND. Kondenzátor se začne přes rezistor zase vybíjet a to až po definováno napětí, kdy se výstup zase překlopí.

Napětí na vstupu se mění mezi těmito dvěma hodnotami. Pokud na výstup připojíme LED diodu s rezistorem, můžeme celý děj pěkně sledovat. Hodnoty součástek musí být dost velké, abychom mohli oscilování sledovat pouhým okem. Například při hodnotách R = 150k a C = 10U je oscilace přibližně každou sekundu. Vzorec je přibližně 1 / (R x C). Příklad zapojení integrovaného obvodu najdete na následujícím obrázku. Druhý kondenzátor na obrázku slouží k blokování špiček napětí a má hodnotu 0.1 uF.

Ke obvodu jsem připojil Arduino, abychom mohli vizualizovat pomocí analogového měření napětí na kontrolních bodech. Kontrolní body se nacházejí na vstupu a na výstupu. Zapojení je na následujícím obrázku.

Arduino měří napětí na pinech A0 a A1 a odesílá výsledky na sériový port.

const double vref = 5.0;

void setup() {
  Serial.begin(9600);
}

void loop() {
  double a0 = analogRead(A0) * vref / 1023.0;
  double a1 = analogRead(A1) * vref / 1023.0;

  Serial.print(a0);
  Serial.print(",");
  Serial.print(a1);
  Serial.println("");
}

Výsledky měření lze takto vizualizovat.

Zdrojový kód

Zdrojový kód se nachází na serveru GitHub.


07.01.2018


Menu