Schmitt Trigger Inverter Based Oscillator Circuit not working?

As an experiment, I am trying to create the following oscillator circuit:

circuit

I have a resistor value of R = 1K and C = 100 uF. The IC I am using is a 74LS14 (SN74LS14N) whose VT+ and VT- are 1.6V and 0.8V according to the datasheet. I have connected Vo in the diagram to the analog input A0 of the arduino to examine the output on the serial plotter.
according to my calculations this setup should give me a slow enough waveform to be noticeable on the serial plotter.

I have the following code running:

const int inputChannel = A0;
float voltage;

void setup() {
  pinMode(inputChannel, INPUT);
  Serial.begin(9600);
}

void loop() {
  // map to 0-5 V range and log back to PC
  voltage = 5.0*analogRead(inputChannel)/1023;
  Serial.println(voltage);
}

However I am not getting the output that I should:

I have separately tested the 74LS14 IC with high and low voltages and it works correctly as an inverter. I have also tested the resistor and capacitor separately with a square wave input and got charging and discharging waveforms indicating they are not faulty. Is the IC faulty then with regards to its threshold behaviour? Any help is appreciated. Thanks.

Place a LED + series resistor on the output of the inverter to see if there is toggling.

1 Like

Use a LED for low frequencies and a piezo for higher frequencies.

1 Like

If you look carefully at the data sheet for the 74LS14, you will see that the recommended maximum output current (IOH) is -0.4 mA (negative because it is output current).

A 1K load resistor will draw 5 mA when the output is high, so you are exceeding that recommended limit by a factor of more than 10 when the capacitor is fully discharged, somewhat less at other times.

The output (feedback) resistor should be 10K or higher.

LS TTL is a poor choice for a low frequency oscillator, especially with that circuit. Use a CMOS Schmidt trigger with a totem pole output or an op amp circuit instead.

1 Like

R1 as 1K and C1 as 100 microF? Are you sure it can be working?

1K is pretty small: you would drain a low of current on IC. You drain 3.3mA. Datasheet tells me: "high level output current: -0.4mA".
I guess, 1K is way too small - try with 100K (at least 10K) and 10 microF.

Your IC seems to clamp. I guess, because the resistor value is way too small. Imagine: you would feed the output via 0R to input: It is inverted, the IC tries to oscillate (with full speed it could do). But there is this huge C: it will low pass filter the "self-oscillating" frequency and your IC does not see anymore any frequency. It hangs at a random level.

On a 3V3 logic, assuming 1 mA current - a resistor is already 3K3. I guess: your 1K is your problem (and going with 100 microF is also pretty tough):

  • increase R1: I would guess: at least 10K, up to 100K

  • for same time constant (Tau): lower C1, e.g. 10 microF (with lower capacity it is anyway better because the inrush current is also lower, for a shorter period of time: 100 microF is pretty huge and creates a huge current taken or provided for a long period of time).
    Imagine: the C would be in Farads (like a battery): the chip cannot discharge a battery in seconds.

It looks too me: the "coupling" (feedback) is too strong (1K resistor). And the C so large that not any frequency can be generated (pass). 100 micoF is a pretty strong low pass filter (for very low frequency). But IC tries to let follow input with output (inverted) but cannot drain so fast and such a high current (1K is so strong for IC and such a high current).
IC has to clamp somewhere (or it is killed already after first cycle).

1 Like

A Schmitt Trigger input can not hang.

It's correct that the output can not source much current and may have been damaged, but there are 5 more gates for tests :slight_smile:

BTW I built a wide range oscillator by paralleling a pot and C in series to the resistor. I don't remember the values and never measured the frequency, but it ranged from below 1 Hz up to more than 100 kHz.

1 Like

Is there any reason why lower frequencies wont register on the Serial plotter?

Yes ... its the faulty 74LS14 circuit.

Suggestions:

  • tie all unused 74LS14 inputs to VCC or GND.
  • add a 0.1uF decoupling capacitor from 74LS14 pin 7 to pin 14.
  • use a 10K or high resistor in your RC feedback circuit as suggested earlier.

The spike in your plot shows that the output is working, but can't oscillate (see above suggestions).

1 Like

Something is wrong with your circuit or code. Find ways to check each independently.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.