Converting an Arduino PWM Output to a DAC Output

Поділитися
Вставка
  • Опубліковано 8 лют 2025
  • In this video we look at how to convert a PWM output or signal to a analog or DAC signal.
    To get the Arduino code from the video: forcetronic.bl...
    To access the low pass filter tutorial mentioned in the video got to: • Reduce Noise in Your S...

КОМЕНТАРІ • 56

  • @ami6packs
    @ami6packs 6 років тому +17

    Probably the best tutorial on how to get a DAC output from a pwm signal. Very nicely explained and i liked how you represent a square wave as sum of DC input + sine waves.

  • @wi_zeus6798
    @wi_zeus6798 6 років тому +10

    Wow, I am really amazed by the in-deph approach! I appreciate it a lot. Nice video!

  • @p_mouse8676
    @p_mouse8676 4 роки тому +8

    Higher order filters will let you use higher sine-wave frequencies with the same pwm frequency. Passive it's possible to make a 2nd order filter with a Q=0.5 . With a single opamp it's possible to go up to a 3rd order (4th is technically possible but a little complicated) with a Q=0.707. (Max bandwidth)

  • @marcelmougenot
    @marcelmougenot 3 роки тому +3

    Thank you very much! This is the best explanation that I found on the internet! Your lesson will be very useful for my master degrees!

  • @bramSDASCL1759
    @bramSDASCL1759 Рік тому +2

    thank you,, great video

  • @odissey2
    @odissey2 2 роки тому

    I believe that Multiple Feedback topology LPF would work better than Sallen type. The Sallen filter has a direct path of the signal to the output, which shall bleed through. This is a known issue of the S-K topology, limiting its attenuation in the MHz+ region.

  • @AmanSinghal-ny3ik
    @AmanSinghal-ny3ik 2 місяці тому +1

    instead of a sallen key filter what would happen if i use a rc or an LC low pass filter

    • @ForceTronics
      @ForceTronics  2 місяці тому

      Depending on your application using a passive RC or LC low pass filter would work. But you're going to see some attenuation for the DC or low frequency signal that you're trying to pass through the filter. You're also going to see a much longer roll-off at your cutoff frequency for the signals you're trying to keep out

    • @AmanSinghal-ny3ik
      @AmanSinghal-ny3ik 2 місяці тому

      @@ForceTronics Aah i see , and also if i am using to use that voltage to "load" something i'm guessing that would affect the output voltage , it may not be a clean flat line it might get choppy . Because in case of an op-amp the output impedance is low so that voltage will actually be able to drive atleast a mosfet or something .

  • @leobitencourt4719
    @leobitencourt4719 2 місяці тому +1

    I believe this is called a PDM (Pulse Density Modulation), correct me if I'm wrong

    • @ForceTronics
      @ForceTronics  2 місяці тому +1

      Pulse density modulation that's the first time I've heard that. I was trained on the term pulse width modulation or pwm. Thanks for the comment

    • @leobitencourt4719
      @leobitencourt4719 2 місяці тому

      @@ForceTronics as far as I know the PWM is a special case of the PDM, but the PWM is much more famous since it's simpler

  • @kaoshavoc
    @kaoshavoc 10 місяців тому +1

    Awesome vid. Wouldnt have of 255 bunary be 127 even. Since 0 is whwre it really starts it has an offset if one conpared to hiw we tging if numbers. So it should be 256/2 = 128 then minus the 1 offset because 0 is a value in code even though in life we see 0 as absense of value.

    • @ForceTronics
      @ForceTronics  10 місяців тому +1

      Yes you are correct, great catch!

    • @kaoshavoc
      @kaoshavoc 10 місяців тому +1

      @@ForceTronics I have made that one off error sooooo many times. I am not sure I will ever stop making the error completly LOL.

  • @DavidLeeMenefee
    @DavidLeeMenefee 7 років тому +1

    Nice video. Thumbs up...PEACE

  • @baltofarlander2618
    @baltofarlander2618 Рік тому

    How do I change capacitor and resistor values in order to achieve higher cut-off frequency?

  • @pradityaromansyah
    @pradityaromansyah 5 років тому

    HELP
    I want to use Buck Converter Module Arduino with input PWM signal. But, the input of the Buck Converter is a potensiometer. thank you

  • @stefanb.933
    @stefanb.933 Рік тому

    Hello. how can the signal from the dac be downloaded on a 4 ohm coil?

    • @ForceTronics
      @ForceTronics  Рік тому

      No dac's are low power devices and would not have enough current to drive a waveform through a load with that little resistance. You would need an amplifier between the dac and the low impedance load. If you're trying to drive a stepper motor you should look at an h bridge circuit not a dac.

    • @stefanb.933
      @stefanb.933 Рік тому

      What amplifier do you recommend between the dac and the low impedance load?

    • @ForceTronics
      @ForceTronics  Рік тому +1

      I don't have amplifier model numbers or specs memorized so you will need to do the research

    • @stefanb.933
      @stefanb.933 Рік тому

      thank you. I would be happy if you make such a clip in the future. the idea is to be able to listen to the signal from the dac in the speaker, but it should be the same signal and not distorted. I tried with lm386, with a transistor and I didn't succeed ....

  • @workethicrecords5901
    @workethicrecords5901 6 років тому +2

    I noticed you declared pin 10 in your code, but didn't seem to use it anywhere else, or in your example. Is it important for something internally?

    • @SopanKotbagi
      @SopanKotbagi 3 роки тому

      no, it's not. it's just the part of the code which generates a 50% PWM wave on the true PWM pin as shown by him on the oscilloscope the first time. you can delete all code related to pin 10 and the sine wave would still be generated on pin 4

  • @brianwong6195
    @brianwong6195 3 роки тому

    The Vpk-pk on the scope, is that reading your voltage ripple in your DAC output? 160mV. What would a good way to reduce the ripple?

  • @bilalghanem4113
    @bilalghanem4113 3 роки тому

    How do you even get PWM fron pin 4 which is not able to give PWM (it doesn't have a ~ sign). Im trying to generate an ECG signal using arduino, any help?

    • @ForceTronics
      @ForceTronics  3 роки тому

      What you see in the video is what I used. If I recall ecg signals are fairly precise and low amplitude. I would not recommend using a PWM signal. I would recommend using a dedicated DAC I that is 14 but or better. If you need it to be low amplitude you probably need some type of divider circuit

  • @liron28
    @liron28 4 роки тому

    can i control the output voltage ? like change it from 1v to 2v ,5v etcetera
    V=I*R
    i want to change the V while R ramaine constante so I will change

    • @ForceTronics
      @ForceTronics  4 роки тому

      Yes that is what a DAC is used for, vary a voltage level. Note that DACs are low current devices so they are meant to control high impedance devices.

  • @amrelkomy3474
    @amrelkomy3474 6 років тому

    hello
    sir can you explain how the analogue output voltage swings between the positive and negative half cycles while the Arduino PWM is in positive half cycle only?

    • @ForceTronics
      @ForceTronics  6 років тому

      With this example circuit you should get a DC level with a low amplitude sinewave. The frequency of sinewave will match that of PWM signal. The phases of the signal should be about the same, but depends on specs of op amp you use

  • @KrishneilGarib
    @KrishneilGarib 6 років тому

    After converting it to a DAC how can you turn it into a proper sine wave with negative voltage peaks? (so where the 127.5 was added to the function we would want this to be at zero instead) but I am not sure how to actually use the output to get it negative. Any help?

    • @ForceTronics
      @ForceTronics  6 років тому +1

      Two approaches comes to mind. You could use the method presented in this video but you would need to find a microcontroller or other IC that can generate a differential (positive and negative) PWM signal. You would then need to pass it through an active filter with an op amp that has a negative and positive power supply. Note that the filter needs to be designed to allow the frequency of the sinewave to pass but attenuates the frequency elements of the PWM signal. Or you can buy an off the shelf DAC chip with a differential output. Note that such a DAC IC will also require a negative and positive power supply.

    • @KrishneilGarib
      @KrishneilGarib 6 років тому

      @@ForceTronics thanks so much for the detailed reply! If I was to find an off the shelf differential DAC IC, but the only had one main power supply, what would be the easiest method to convert/split this into seperate positive and negative rails to use?

    • @ForceTronics
      @ForceTronics  6 років тому +1

      Here is a link that might help: www.newelectronics.co.uk/electronics-technology/the-best-way-to-generate-a-negative-voltage-for-your-system/167618/

  • @SpacePortArcade
    @SpacePortArcade 2 роки тому

    Why bother configuring the PWM frequency if you're bit-banging?

  • @ghafoorsamadi2870
    @ghafoorsamadi2870 7 років тому

    Hi, very nice video, I like to know how can we use this signal for DC AC inverter cause we need two signals for - and + in DC AC inveter please.

    • @ForceTronics
      @ForceTronics  7 років тому

      Hello, I am glad you like the video. You are asking about inverter design and that is an area I don't have direct experience with so I am not the right person to give a DC to AC inverter tutorial.

  • @oropeiro
    @oropeiro 5 років тому

    hi,can i vary the widths of the spwm(with same step) to change the amplitude of the output voltage,with the analoge read input as a feedback?

    • @ForceTronics
      @ForceTronics  5 років тому

      Yeah sure. Just make the measurement after the filtering

    • @oropeiro
      @oropeiro 5 років тому

      @@ForceTronics thank you for answer man,i got it..

  • @yaqoobs.j.557
    @yaqoobs.j.557 6 років тому +1

    In your code who frequency used? I want 31KHz what I worke to do this?

    • @hukzero8227
      @hukzero8227 6 років тому

      انا بعرف كتب و احصل ع PWM

  • @michaelkeller7920
    @michaelkeller7920 4 роки тому

    What version of Microcap are you using?

  • @tientran007
    @tientran007 7 років тому

    How to pwm sine 50HZ feedback volt AC ( 12vDC to 220vAC)?

    • @ForceTronics
      @ForceTronics  7 років тому

      You are asking about inverter design and that is an area I don't have direct experience with so I am not the right person to give a DC to AC inverter tutorial.

  • @MitsuZer0G
    @MitsuZer0G 5 років тому

    Why didn't you use a simple RC low pass filter?

    • @ForceTronics
      @ForceTronics  5 років тому +3

      You can use a simple passive RC filter but they suck for two reasons. First they have a gradual rolloff so your AC ripple on the resulting DC level will be larger in amplitude. Active filters have less loss or the op amp compensates for loss so the resulting DC signal better matches the PWM value.

  • @michelligata9439
    @michelligata9439 5 років тому

    Hei, do you by any chance have any idea how to implement sine-wave generator in Arduino Uno using MATLAB simulink? i dont want to use the Analog pin, well Arduino Uno does not have DAC.

  • @htwt
    @htwt 4 роки тому

    Easy way: LTC2644