| Hjem | Hardware | Netværk | Programmering | software | Fejlfinding | systemer | 
Programmering  
  • C /C + + Programming
  • Computer Programmeringssprog
  • Delphi programmering
  • Java programmering
  • JavaScript Programmering
  • PHP /MySQL programmering
  • Perl programmering
  • Python Programming
  • Ruby Programming
  • Visual Basics Programmering
  •  
    Computer Viden >> Programmering >> Computer Programmeringssprog >> Content
    Sådan oprettes en Pulse Width Modulation (PWM ) i en Verilog modul at køre en motor /Servo
    En puls bredde modulation er en måde at styre rotation eller position en elektrisk motor eller servo . Hjælp Verilog HDL , vil jeg vise hvor let det er at anvende tællere for at skabe en PWM . Ting du skal
    Xilinx ISE
    FPGA
    Servo /motor
    Vis Flere Instruktioner
    1

    Så hvordan gør en PWM arbejde?
    < p > under en periodisk rektangulært signal , ændrer vi arbejdscyklus ( modulere ) for at være større eller mindre , og derfor styre vores enhed.

    Hvorfor bruge en PWM ?
    p Det er en simpel digital til analog konvertering teknik, der ikke kræver en ADC .
    2

    Ok, så lad os tænke, hvad input, output, registre og tællere , vi får brug for , og hvilke design, vi ønsker at skabe .

    jeg vil bruge de otte kontakter på Spartan FPGA bord til at styre, hvordan min motor /servo flytter , eller hvor hurtigt eller langsomt jeg vil have det til at flytte

    Indgange: . ur , 8 switchesOutputs : pwmRegisters : pwmCounters : 16 bit tæller ( vil forklare, hvorfor 16 bit senere)
    3

    vide, hvad er clock hastigheden på din FPGA og hvilken periode , du gerne vil bruge .

    jeg har en spartansk FPGA bord med en 50MHz ur. Jeg vil gerne opdatere signal hver 1 millisekund (t). Vi anvender følgende beregning for at finde bølgeform periode ( p)

    p = t * FPGA ur

    I mit tilfælde : Hej

    p = .001 sekunder * 50MHz = 50000

    kende min p er vigtig for at beregne min trin forsinkelse ( sd) : Hej

    sd = p /256 = 195

    Hvorfor jeg bruge 256 ? Jeg vil bruge 8 switches til at styre min servo /motor, så 2 ^ 8 = 256. .
    4

    Endelig ønsker vi at bruge vores counter som vores pligt cyklus. At beregne, hvor mange bits komponere vores counter bruger vi : Hej

    log2 (sd) = hvor mange bits er vores counter

    tælleren er mindre end sd (trin forsinkelse) ganget med switches værdi ( som kan spænde fra 0 til 255 ), dette er vores pligt cyklus.

    Forrige :

    næste :
      Relaterede artikler
    ·Sådan Edit HTML Source Codes 
    ·Hvordan man laver en WPF DataGrid Model 
    ·Hvordan man laver en stjerne i tekst 
    ·Sådan ændres Bullet Style Brug af HTML programmering 
    ·Sådan Konverter HEX til RGB-farver 
    ·Sådan Udskift en STRG Med en STRG Lavere 
    ·Sådan Lær Computer Programmering 
    ·Sådan binde til et CLR Object 
    ·Hvordan man skriver en script til automatisk konfigurat…
    ·Definition af Polymorfi i Computere 
      Anbefalede Artikler
    ·Sådan kører en iPhone Developer Xcode 
    ·Sådan oprettes en AVD Path i Android 
    ·Sådan Skjul Moduler , projekter og makroer fra Brugere…
    ·Sådan Skil Java 
    ·Tutorial Javascript Baggrund Effects 
    ·Sådan bruges Visual Basic til at styre Stepmotorstyrin…
    ·Hvordan laver man et LUA fil for koordinater 
    ·Hvorfor du bør ikke bruge PHP Short Tags 
    ·Sådan Organiser Email Adresser Alfabetisk 
    ·Hvordan man skriver en funktion til Indsæt varer i Dro…
    Copyright © Computer Viden http://www.computerdk.com