can we stop the buzzer using digitalWrite(pin,LOW) ? if yes what is the difference between buzzer_action() and digitalWrite() ?
Yes, we can.
digitalWrite sets the pin to an high or low value and that value stays there until it is changed again. It means that LOW sets the pin to 0V and HIGH to whatever the supply voltage is.
analogWrite() sets the value of the PWM output pin. The analogWrite() is on a scale of 0 - 255, such that analogWrite(255) requests a 100% duty cycle (always on), and analogWrite(127) is a 50% duty cycle (on half the time).