Monostable multivibrator using arduino

Monostable multivibrators can be used for applications such as delay circuits, timers, etc. The circuits like alarms, doorbells, calling bells, flashers, indicators, etc., use the monostable multivibrators, where the device is operated for a short interval of time, after the triggering.

A monostable multivibrator (” one shot multivibrator “) is a multivibrator circuit which has only one stable state. That is, it has a single pulse output which is externally triggered. When an external trigger is received at the trigger pin (“input pin”), the output of the monostable switches to an unstable or quasi-stable state. The output then returns to its stable state after a preset time period.

Monostable multivibrator using arduino

The trigger pulse may be active high or active low. Here in this circuit, we are coding the program, to work for an active high trigger pulse. The triggering is given to the digital pin 2. The trigger pin reads the input and switches the output (digital pin 3) with respect to it. When a positive trigger pulse is received the output switches to a high state from a low state. The output returns to the stable low state after the delay time. The delay value, that is variable ” Time ” in the code, sets the time period of the unstable state or the ON state. In the program, a 500-millisecond delay is set as the time value. So just change the variable to adjust the time period to the desired value.

The interval between each trigger pulse should be greater than the output pulse period. An external oscillator or signal generator also can be used to provide triggering for the multivibrator circuit.

Arduino monostable code

const int trigger = 2; //Pin2 as trigger pin.
const int output =  3; //Pin3 as Output pin.
int Time = 500;        //Preset time delay.

void setup() {
  pinMode(output, OUTPUT);
  pinMode(trigger, INPUT);
}

void loop() {
  if (digitalRead(trigger) == HIGH) {
    digitalWrite(output, HIGH);
    delay(Time);
    digitalWrite(output, LOW);
  }
  else {
    digitalWrite(output, LOW);
  }
}
1 Star2 Stars3 Stars4 Stars5 Stars Rate Us!
Loading...

Leave a Reply

Your email address will not be published. Required fields are marked *