„Arduino“ PWM signalo generatoriaus grandinė

Išbandykite Mūsų Instrumentą, Kaip Pašalinti Problemas





Šiame įraše mes išsamiai tiriame, kaip sukurti „Arduino“ pagrindu veikiančią PWM signalo generatoriaus grandinę, kurią galima nustatyti arba sureguliuoti potenciometru ar puodu pagal bet kurį pageidaujamą darbo ciklo santykį.

IkiAnkit Negi



KAS YRA PWM?

pwm arba impulso pločio moduliacija, kaip rodo pats pavadinimas, yra impulsų pločio moduliavimas, ty kiek laiko impulsas yra didelis ar žemas tam tikru laikotarpiu. Tai keičia impulso veikimo ciklą, kuris galiausiai nustato vidutinę impulso vertę, nes darbo ciklas yra laikas, padalytas iš viso laikotarpio.

Dažnis vaidina labai svarbų vaidmenį pwm, kuris turi būti pakankamai didelis, kad būtų sukurta stabili išvestis



Pwm daroma įvairiais tikslais, pavyzdžiui, valdant įrenginį, kuris veikia esant žemai įtampai, arba perjungimo tikslais, pavyzdžiui, SMPS.

PWM NAUDOJANT ARDUINO UNO

Pwm taip pat yra vienas iš veiksnių, dėl kurių „arduino“ yra paprasčiausia kūrimo lenta, nes „pwm“ galima padaryti prie programos pridėjus tik vieną eilutės kodą. Atkreipkite dėmesį, kad „arduino UNO“ yra atskiri skaitmeniniai kaiščiai, skirti „pwm“, o tai reiškia, kad šie kaiščiai gali suteikti „pwm“ išvestį.

„Arduino UNO“ iš viso yra 6 pwm kaiščiai, kurie yra 3, 5, 6,9,10 ir 11 iš 14 skaitmeninių kaiščių. Atkreipkite dėmesį, kad „pwm“ kaiščių skaičius skiriasi priklausomai nuo „arduino“ plokštės tipo.

Dabar yra du būdai, kuriais pwm gali atlikti „arduino“:

1. Pwm kaiščiui tiesiogiai priskiriant analoginę vertę nuo 0 iki 255.

Kadangi „Arduino“ skaitmeniniai kaiščiai gali suteikti didžiausią 5v įtampą, tai reiškia, kad 0 analoginė vertė lygi 0 voltų ir 255 yra lygi 5 voltams.

Norėdami tai atlikti, turite tiesiog pridėti šį kodą prie savo programos:

„analogWrite“ (PWM kaiščio Nr., vertė nuo 0 iki 255)

Pvz .: „analogWrite“ (10,64) // įrašykite 64 analogines vertes į „pwm“ kaištį Nr. 10.

Dabar tai reiškia: (5/255) * 64 voltai = 1,25 voltai, ty 25% darbo ciklas.

2. Priskirdami vertę pagal įvestį, gautą iš analogiškų „arduino“ kaiščių.
Įvestis gali būti paimta iš tokių komponentų kaip IR jutiklis ar potenciometras.

Atkreipkite dėmesį, kad „Arduino“ gauna analoginę įvestį, kai vertė yra nuo 0 iki 1023, o tai atitinka 0–5 voltus. Taigi, jei norite atlikti pwm ant kaiščio, turite konvertuoti šią įvesties reikšmę lygiaverte į skaičių nuo 0 iki 255 ir tai vadinama žemėlapiu „arduino“ kalba.

Tam yra paprastas kodas:

y = žemėlapis (x, 0,1023: 0,255) // kur x yra įvesties kintamasis

Po to galite atlikti pwm ant kaiščio naudodami:

„analogWrite“ (PWM kaiščio nr., y) // užrašykite gautą susietą vertę į 10 kaištį

PWM PAVYZDYS:

Šiame pavyzdyje mokysimės ir technikos. Tam jums reikia:

1. Potenciometras
2. Du ledai
3. Du 100 omų rezistoriai

Prijunkite jungtis, kaip parodyta schemoje:

APTRAUKIMO DIAGRAMA:

KODAS:

int x// initialise variables
int y
void setup() {
pinMode(10,OUTPUT)//initialise pin 10 as output
pinMode(9,OUTPUT)//initialise pin 9 as output
pinMode(A0,INPUT)//initialise pin A0 as input from pot.
// put your setup code here, to run once:
}
void loop() {
analogWrite(9,125)// directly assigning value to pin 9 i.e. case1
x=analogRead(A0)// read values from potentiometer in terms of voltage
y= map(x,0,1023,0,255)// map those values from 0 to 255 // put your main code here, to run repeatedly:
analogWrite(10,y)// assigning value based on input from pot at pin A0 i.e. case 2
}

Kaip tai veikia

Pagrindinį siūlomo „Arduino PWM“ signalo generatoriaus projekto darbą galima ištirti iš šios pastraipos

Kaiščiui Nr. 9 galima priskirti savavališką pwm vertę, o kaiščiui Nr. 10 pateikia pwm reikšmę pagal potenciometro padėtį žemės atžvilgiu. Nuolat keiskite šią savavališką 9 kaiščio vertę, taip pat pasukite potenciometrą, kad pamatytumėte skirtingą pwm išvestį ant abiejų kaiščių.




Pora: Didelės srovės variklio valdymo grandinė naudojant „Arduino“ Kitas: 2,4 GHz 10 kanalų nuotolinio valdymo jungiklis