Hoe om `n pulswydte modulasie (PWM) Skep in `n Verilog Module om `n Motor Begin / Serwo

`N Puls wydte modulasie is een manier om die rotasie of posisie van `n elektriese motor of servo beheer.


Inhalt

  • Wenke waarskuwings


  • Die gebruik van Verilog HDL, sal ek wys hoe maklik dit is om aandele te gebruik ten einde `n PWM skep.

    Dinge wat jy nodig het

    • Xilinx ISE
    • FPGA
    • Servo / motor
    • So hoe gaan `n PWM werk?

      Na `n periodieke vierkantige sein, verander ons die dienssiklus (moduleer) om kleiner of groter wees en dus ons toestel te beheer.

      Hoekom `n PWM gebruik?


      Dit is `n eenvoudige digitale na analoog omskakeling tegniek wat nie `n ADC vereis.

    • Ok, so laat dink wat insette, uitsette, registers en tellers sal ons nodig het en wat ontwerp ons wil skep.

      Ek wil die agt skakelaars gebruik op die Spartan FPGA raad om te bepaal hoe my motor / servo beweeg of hoe vinnig of stadig ek wil om dit te skuif.

      Insette: klok, 8 skakelaars
      Uitsette: PWM
      Registers: PWM
      Tellers: 16 bit toonbank (sal waarom 16 stukkies later verduidelik)

    • Weet wat is die klok spoed van jou FPGA en watter tydperk jy wil gebruik.

      Ek het `n Spartan FPGA raad met `n 50MHz klok. Ek wil graag die sein te verfris elke 1 millisekonde (t). Ons pas die volgende berekening van die golfvorm tydperk (p) vind

       p = t * FPGA klok



      In my geval:

       p = 0,001 sekondes * 50MHz = 50000

      Wetende dat my p is belangrik om my stap vertraging (sd) te bereken:

       sd = p / 256 = 195

      Hoekom het ek 256 gebruik? Ek sal met behulp van 8 skakelaars om my servo / motor te beheer, so 2 ^ 8 = 256.

      Toevoeging van sd om die Verilog module
    • Ten slotte wil ons ons toonbank gebruik as ons plig siklus. Om te bereken hoeveel stukkies komponeer ons toonbank wat ons gebruik:

      log2 (sd) = hoeveel stukkies is ons counter

      Terwyl die toonbank minder as sd (stap vertraging) vermenigvuldig met die skakelaars waarde (wat kan wissel 0-255) is, dit is ons plig siklus.

      Finale kode vir `n PWM met behulp van 8 skakelaars om die dienssiklus beheer

    Wenke waarskuwings

    • Wanneer die skep van die register toonbank moet jy dit geïnisialiseer na nul anders jou program sal nie werk nie.
    Deel op sosiale netwerke:

    Verwante
    Hoe om `n Audio Interface at HomeHoe om `n Audio Interface at Home
    Casio 2747 InstruksiesCasio 2747 Instruksies
    Gilmour Impulse Sprinkler Aanpassing instruksiesGilmour Impulse Sprinkler Aanpassing instruksies
    Hoe om `n Game Cube om `n platskerm TV HookHoe om `n Game Cube om `n platskerm TV Hook
    Hoe om te neem `n Amp Lees op `n elektriese motorHoe om te neem `n Amp Lees op `n elektriese motor
    Analoog Vs. digitale horlosiesAnaloog Vs. digitale horlosies
    Hoe om die klok op `n GA XL 44 Stoof FixHoe om die klok op `n GA XL 44 Stoof Fix
    Hoe om `n outomatiese motor te ry teen `n bergHoe om `n outomatiese motor te ry teen `n berg
    Verskil tussen solenoïde & Servo KleppeVerskil tussen solenoïde & Servo Kleppe
    Hoe om Toets Hall-effek SensorsHoe om Toets Hall-effek Sensors
    » » Hoe om `n pulswydte modulasie (PWM) Skep in `n Verilog Module om `n Motor Begin / Serwo
    © 2021 afhow.win