Tuesday, 25 September 2018

voltage - Is there a way to control the PWM duty cycle of a 555 timer without using a variable resistor?


I need to control the duty cycle of a Pulse Width Modulation (PWM) circuit from a DC voltage input. To do this, I've been looking into 555-timer circuits - but every circuit I've come across involves controlling the duty cycle by using a variable resistor/changing resistor values (e.g. changing the value of Rb in the diaram shown below).


I've researched and thought about it a lot, but I can't find a way to use a certain input voltage to give a certain duty cycle in a PWM cicruit with the 555-timer, so any suggestions I may not have thought of or letting me know it can/can't be done would be appreciated.


Thanks


enter image description here

As a note: The requirement of controlling a PWM circuit duty cycle with an input voltage and not by other means is necessary for what I'm doing... I'm not trying to make my life difficult



Also, I forgot to mention I'm also not allowed to use microcontrollers!



Answer



Yes – simply use your external DC voltage to bias the feedback voltage. Done! (this means connecting it, with a appropriately sized resistor, to the threshold pin).



I'm not trying to make my life difficult



Well, still you're using a NE555 to generate a PWM. I'd simply go, get a cheap microcontroller with an ADC and a PWM unit (these start well below half a Euro), write ten lines of C firmware and be done. No analog circuitry you have to tune, no uncertainty and non-linearity of duty cycle as function of control voltage, just clean software in a microcontroller that doesn't need any external components but a decoupling capacitor for its power supply. Bonus: internal oscillators of microcontrollers these days would usually be much more accurate than a NE555.


Update better late then never: you mentioned you're not allowed to use microcontrollers. I know this will probably mean some learning overhead, but a CPLD-implemented PWM generator with either a resistor-ladder-based ADC implemented with pins and external resistor networks (so you don't have to solder a lot of resistors) or a cheap ADC IC would still be what I'd use. PWM is basically a pretty digital problem, so I'd go digital.


Another easy approach would simply use a quad Opamp IC: Opamp 1 & 2 to generate a triangle wave, opamp 3 to compare the instantaneous triangle voltage to your external DC voltage. Easy PWM, and gotten rid of the NE555.


No comments:

Post a Comment

arduino - Can I use TI's cc2541 BLE as micro controller to perform operations/ processing instead of ATmega328P AU to save cost?

I am using arduino pro mini (which contains Atmega328p AU ) along with cc2541(HM-10) to process and transfer data over BLE to smartphone. I...