Direct Digital Synthesis - How it Works and a Demo on Arduino Due

Поделиться
HTML-код
  • Опубликовано: 18 окт 2024

Комментарии • 15

  • @BusyElectrons
    @BusyElectrons 3 года назад +3

    This was a very well done presentation of the basics. I'm looking forward to subsequent installments.

    • @gadgetsideload
      @gadgetsideload  3 года назад

      Thanks, yeah I have more plans for the topic, though I'm about to move and all my stuff will need to get torn down and re-setup so I'm dabbling in all kinds of topics.

  • @RylanVlawgs
    @RylanVlawgs 3 года назад +2

    You are an excellent teacher! Keep it up!

  • @kanzanassabi9434
    @kanzanassabi9434 3 года назад +1

    Thank you so much for this presentation.

  • @AnalogDude_
    @AnalogDude_ 9 месяцев назад

    Awesome information and video.

  • @andykandolf1948
    @andykandolf1948 2 года назад +1

    Hey :) thx for the nice video.
    Would it possible to adjust sample rate by introducing delays in our script to control the pitch?
    Suggested that we want to output a wave that is less symmetrical than the basic sine/triangle/saw/square, the "leaving out sample points" method would give us really not uniform results.

    • @gadgetsideload
      @gadgetsideload  2 года назад

      I'm not sure how irregular shaped wave samples are handled to change frequency, but just thinking through how the DAC works, I would think distortion would be introduced if there's delays between samples added because until a new DAC sample is sent out, it continues outputting the last voltage.
      So if we think about a 45 degree ramp signal and a delay is added between samples, I'd expect instead of getting a 45 degree line, we'd get more of a stair step where a sample is sent, then a delay occurs so the voltage stays the same for a while, producing a horizontal waveform until the next sample steps away from that, then it goes sideways again etc.
      Maybe the frequency could be adjusted by just changing the period so the entire waveform is still sent out at full speed for one cycle, then forcing a longer or shorter delay at the end until the next full waveform cycle is sent, so the frequency would change but that may not be what is wanted, if the wave shape is desired to be drawn faster or slower through the entire period instead of having an adjustable blank space after the cycle.

    • @odissey2
      @odissey2 Год назад

      I think you missed the entire idea of the DDS approach - using the same fixed sampling rate for any output frequency.

    • @andykandolf1948
      @andykandolf1948 Год назад

      @@odissey2 I didn't miss it. That's exactly the point of my question, my dear.

  • @diegogarciamedina6363
    @diegogarciamedina6363 Год назад

    hi, does the sketch run directly in an Arduino UNO?

  • @Aragmatiki
    @Aragmatiki Год назад

    I have made an Arduino-uno based potentiostat for cyclic voltammetry and Impedance spectroscopy experiments. I am trying to make a frequency sweep from the maximum possible frequency to the lowest. I use PWM modulation and I generate the PWM values using math but I can go up to 50Hz for now because of serial communication and sample rate limits. I am also trying to record the data in real-time using one of the ADC of the arduino in order to do impedance spectroscopy. I am interested in your method using lookup tables but I don't get what should be changed to adapt this to an UNO board. Can you help?

    • @gadgetsideload
      @gadgetsideload  Год назад

      I think this sketch was one that works on Uno, which I used in the online TinkerCad uno simulator to generate signals
      github.com/GadgetReboot/DDS_Generator_For_Due/tree/main/Tinkercad_Simulation_Sketch

  • @cristianramonhernandezpere456
    @cristianramonhernandezpere456 Год назад

    I get an error on line 67, saying the variable or function wasnt declared, is there any library thats missing?

  • @LabSkaterPussies
    @LabSkaterPussies 8 месяцев назад

    Fascinating stuff. The only thing that I am struggling with is the multiple waves. In the case that both sine waves are at their peak and you add them together, you will be outside of the DACs range. In analog synthesis, if you pass an op amp's range the signal will clip. I didn't really get what the equivalent was of this in digital synthesis. You shift each data point by one bit, so essentially dividing by 2 before adding correct? This way it won't exceed the DACs range? And if you wanted to use 3 waves you would have to divide the values by 3? Doesn't this decrease the resolution of the wave because when you divide you may be rounding values off? Or does it not matter because once you add them back together you still use the full range of the DAC?

    • @LabSkaterPussies
      @LabSkaterPussies 8 месяцев назад

      Also, in generating sawtooth waves below 500Hz, do you think a filter would be able to create a sharp enough wave but where you can't see the steps