PWM: ku dayashada biinanka analogga ah ee guddigaaga Arduino

Calaamadaha PWM

Biinanka dhijitaalka ah iyo kuwa analogga ah, ee aad ku isticmaali karto sabuuraddaada Arduino, waxaad heli kartaa ama soo diri kartaa calaamado koronto si aad u maamusho ama aad xog uga hesho mashaariicdaada elektiroonigga ah. Intaa waxaa sii dheer, waxaa jira calaamado kale oo aad u xiiso badan oo ku jira saxanka noocan ah, kuwana waa kuwa PWM, taasi waxay ku dayan kartaa signalada analogga ah iyadoo aan dhab ahaan analog ahayn. Taasi waa, waxay yihiin biinanka dhijitaalka ah ee u dhaqmi kara si la mid ah (isku mid maaha) sida astaamaha analogga.

Calaamadaha noocan ahi waa kuwo aad wax ku ool u ah marka aanad doonayn oo keliya inaad isticmaasho astaamaha dhijitaalka ah ee SARE iyo LOW, taas oo ah, 1 ama 0, DAAR iyo DAMB, laakiin waxaad dooneysaa inaad intaas ka sii sii dheeraato oo aad sharaxdo xoogaa calaamado adag. Tusaale ahaan, xawaaraha a Mashiinka DC, ama iftiinka iftiinka iftiinka, qalabka loo yaqaan 'solenoid', iwm.

Analog vs nidaamka dhijitaalka ah

Analog vs digital signal

Wareegyada elektarooniga ah waxaa loo qaybin karaa laba qoys oo waaweyn ama qaybaha: digital iyo analog. Markaad ka hadlayso elektaroniga elektarooniga ah, waxaan adeegsaneynaa tiro leh qiimayaal kala duwan, taas oo ah, nidaam binary ah oo ay matalaan calaamadaha korantada ee danab hoose ama sare si loo tarjumo xaaladda qaniinyadaas la qabtay. Dhinaca kale, markay timaado wareegga analogga, tiro leh qiimayaal isdaba joog ah ayaa la isticmaalayaa.

Nidaamyada dhijitaalka ah gudahood ayaa laga heli karaa markooda kuwa nooca iskujira iyo kuwa nooca isku xigxiga. Taasi waa, kuwii hore waa kuwa wax soo saar ee nidaamku kaliya kuxiran yahay gobolka wax soo saarka. Dhinaca kale, kuwa isdaba jooga ah, walxaha xusuusta ayaa lagu soo daray, wax soo saarkuna wuxuu ku xirnaan doonaa hadba xaalada imika ay gasho iyo tii hore ee la keydiyay.

Marka laga hadlayo analogga ma jiraan labadan koox ee waaweyn ama noocyo kala duwan, maadaama halkan ay yihiin calaamado isdaba joog ah oo had iyo jeer ku xirnaan doona signalka nidaamka hadda jira. Tusaale ahaan, sameecadda wax ku dhejisa, astaamaha la siinayo waxay kuxirantahay codka aad rabto inaad soo saarto. Waxaa la mid ah makarafoonka, kaas oo soo saari doona calaamado analog ah oo kuxiran codka uu helayo. Xaqiiqdii waxaad sidoo kale ku aragtay dareemayaal kale oo badan oo aan ku sharaxnay balooggan oo ku shaqeynaya calaamadaha analogga (sidaas darteed, waa in la sameeyaa qaaciido si hadhow qiimeyaasha loogu xisaabiyo ama loogu xalliyo shaxda Arduino IDE) ) ...

Sifooyinkaan mid iyo tan kaleba waxay ka dhigayaan qaar in ay leeyihiin faa'iidooyinka iyo khasaaraha, sida caadiga u ah wax walba. Tusaale ahaan, kuwa dhijitaalka ah waxay u muuqdaan kuwo ka raqiisan, dhaqso badan, si fudud loo horumarin karo, macluumaadka si fudud ayaa loo keydin karaa, waxay leeyihiin saxnaan dheeri ah, waa la qorsheyn karaa, uma ahan kuwo u nugul waxyeelada qeylada, iwm. Laakiin sidoo kale waa run in analogyada aad ku shaqeyn karto calaamado adag oo adag.

by ejemplo, Nooca dhijitaalka ah ee saamaynta Hall wuxuu ogaan karaa oo keliya joogitaanka ama maqnaanshaha aagga magnetka ee u dhow. Taa baddalkeeda, dareeraha saamaynta analog Hall wuxuu sameyn karaa taas oo sidoo kale go'aamin karaa cufnaanta sheyga magnetic-ka oo ay ugu mahadcelineyso calaamadda analogga ah ee ay ka soo saareyso wax soo saarkeeda. Ogaanshaha sida loo turjumo calaamadahaas koronto saa'id ah ama kayar, waxaad si fudud u ogaan kartaa baaxaddaas. Tusaalooyin kale oo aad ku haysatid tiro badan oo dabiici ah oo aad ku cabiri karto tiro ahaan nidaamka analogga ah, sida heerkulka, waqtiga, cadaadiska, masaafada, codka, iwm.

Analog vs digital signal

Taas oo la yidhi, a calaamadda analogga Waxay noqon doontaa danab ama koronto ku socota oo ku kala duwan waqtiga iyo si isdaba joog ah. Haddii la jajabiyo, calaamadda analogga waxay noqonaysaa hal mowjad oo sine ah.

Sida for signal dijitaal ah, waa danab ku kala duwan qaab talaabo qaadasho leh marka loo eego waqtiga. Taasi waa, haddii ay ku metelayso shaxanka, waxay noqon doontaa tallaabo tallaabo ah oo aan u kala duwanaan si isdaba joog ah, laakiin isbeddelada tallaabooyinka ama kororka gaarka ah

Waa inaad ogaataa inay jiraan wareegyo ka tagaya ishaarada analogga una gudubta mid dijitaal ah ama dhinaca kale. Kuwani beddelayaal waxaa loo yaqaan 'DAC (Digital-to-Analog Converter) iyo ADC (Analog-to-Digital Converter). Waxayna aad ugu badan yihiin aalado badan oo aan maanta isticmaalno, sida TV-ga, kumbuyuutarrada, iwm. Iyaga waad u rogi kartaa calaamadaha dhijitaalka ah ee qalabkani u adeegsado heer elektaroonik ah si ay ula shaqeeyaan agabyada kale ama qaybaha ka shaqeeya analogga.

by ejemplo, sameecad ama makarafoon leh calaamado analog ah oo ku shaqeeya kaarka codka, ama kaararka sawirada dhijitaalka ah oo lahaa sumcadda caanka ah ee loo yaqaan 'RAMDAC chip' oo loogu talagalay dekedaha kormeeraha analogga ... ...

Waa maxay PWM?

wareegga shaqada garaafka

In kastoo PWM (Isbedelka Garaaca Wadnaha) wuxuu leeyahay saldhig dijitaal ah, qaabka calaamadiisu waxay u egtahay astaamo analog xoogaa ah "laba jibbaarane". Waxay u oggolaaneysaa iyada oo loo adeegsanayo garaaca dhijitaalka inay kala duwanaato calaamadaha si loogu daydo nidaamka analogga ah sidii aan horeyba uga faallooday. Xaqiiqdii, haddii aad eegto magaca, wuxuu horey kuu siinayaa tilmaamo waxa uu sameeyo, iyada oo loo marayo ballaca dhijitaalka dhijitaalka ah.

Tani waxay faa'iido u tahay Arduino maadaama ay jiraan qalabyo badan ama waxyaabo elektaroonik ah oo aad ku dari karto mashaariicdaada iyo taas Awood uma laha inay bixiyaan calaamado analog dhab ah, laakiin waxay u adeegsadaan PWM-kan inay ku shaqeeyaan. Sidoo kale ma isticmaali karaan astaamo analog ah oo la jecleystay, taas oo ah, taas oo u socota boodada danab ee u eg mid dijitaal ah. Waxa ay sameyn karaan ayaa ah adeegsiga wax soo saarka dhijitaalka ah -Vcc ama Vcc oo ah nooca dhijitaalka ah si ay u soo saaraan calaamaddan gaarka ah ...

Sidaa darteed, PWM waa nooc ka mid ah "khiyaanada" taas oo Arduino iyo nidaamyada kale ay ku dhexgeli karaan calaamadaha noocan ah iyagu ma ahan kuwo analoog ah ama dijitaal caadi ah. Si ay u suurto gasho, waxay sii wadaan wax soo saar dijitaal ah oo firfircoon wakhti cayiman ama ka baxsan, taas oo ku xidhan xiisaha wakhti kasta. Tani way ka fogtahay waxa noqon lahaa saacad dijitaal ah ama calaamadda lambar laba-geesoodka ah, oo bucshiradiisu ay le'eg tahay ballaciisa

Mashruucyadaada Arduino waxaad ka hubin kartaa noocan ah calaamadaha PWM taas oo soo noqnoqoshada kicinta garaaca wadnaha lagu hayo waqti ka dib, laakiin ballaca garaaca wadnaheygan waa noocyo kala duwan. Xaqiiqdii, waxaa loo yaqaan 'Duty Cycle' marka signalka kor loogu sii hayo xagga sare marka loo eego wadarta wareegga. Sidaa darteed, Wareegga Shaqada waxaa la siiyaa%.

Xusuusnow in PWM aadan u shaqeyneynin sida calaamadaha analogga ah, inta udhaxeysa qiimayaasha danab dhowr ah oo ay is bedbeddelayaan iyaga dhexdooda. Xaaladda PWM waa calaamadda laba jibbaaran ee qaabka dhijitaalka ah iyo qiimaheeda ugu badan yahay Vcc. Tusaale ahaan, haddii aad ku shaqeyneyso sahayda 3V, waad siin kartaa 3V ama 0V garaaca wadnaha, laakiin ma siin kartid 1V ama qiime kale oo dhexdhexaad ah sida ka dhici doona analog dhab ah. Maxay ku kala duwanaan laheyd xaaladaas waa ballaca garaaca wadnaha, oo aan ku hayn karno 30% qiimahaas Vcc-ga ah, ama 60% si aan u siino awood dheeri ah, iwm.

Laakiin taxaddar, maxaa yeelay haddii aalad ay taageerto xadka Vcc oo ay dhaafto PWM, waa la dhaawici karaa. Marka qiyamka waraaqaha xogta ee ay bixiyeen soosaarayaasha waa in marwalba la ixtiraamo. Sidoo kale, aaladaha qaar sida matoorrada DC, Relay, elektromagnetka, iwm., Ka noqoshada danab ka dib wareegga 'Duty Cycle' wuxuu macnaheedu noqon karaa in culeysyada isdifaaca ay sababi karaan dhaawac Taasi waa sababta ilaalintooda waqtigiisa.

PWM oo ku taal Arduino

Baska Arduino I2C

Hadda oo aad ogtahay sida ay u shaqeyso, aan aragno kiiska gaarka ah ee PWM gudaha Arduino adduunka ...

PWM: xiisaha Arduino

On looxyada Arduino waxaad ka heli kartaa dhowr biinanka fuliya qalabka PWM. Waxaad ku aqoonsan kartaa PCB-ga laftiisa maxaa yeelay waxay leeyihiin a astaan ​​~ (madax yar) oo ay weheliso nambarka nambarka. Waxaa sidoo kale lagu samayn karaa softiweerka koodhka Arduino, laakiin taasi waxay ku shubi lahayd microcontroller-ka shaqo, wax caqli-gal ah markii lagu samayn karo wadan ahaan iyo qalab ahaanba ...

  • Arduino UNO, Mini iyo Nano- Waxaad leedahay 6 8-bit PWM wax soo saar ah biinanka 3, 5, 6, 9, 10, iyo 11, taas oo ku yeelan doonta ~ midig lambarka hortiisa.
  • arduino mega- Looxdan ugu awoodda badan Arduino waxaad ku leedahay wax soo saar 15 8-bit PWM ah. Waxay ku xiran yihiin biinanka 2 illaa 13 iyo 44 illaa 46.
  • Arduino Sababo: kiiskan waxaa jira 13 8-bit wax soo saar PWM ah. Waxay ku jiraan biinanka 2 illaa 13, oo lagu daray laba wax soo saar analog kale ah oo ay sii daayeen DAC oo leh 12-bit xal.

Markaad ka hadlayso xallinta 8-bit ama 12-bit, iwm, noocyada noocan ah ee wax soo saarka PWM, waxaad u jeeddaa qolka dhaqdhaqaaq ee aad haysato. Iyadoo 8 jajab ayaa leh heerar 256 ah Inta udhaxeysa taas oo aad ku kala duwanaan karto, iyo 12-ka yar ayaa u kacaya heerarka 4096.

Ku xakamee Saacadaha

Qalabka PWM xakamaynta, Arduino isticmaali doonaa saacadaha waxaa loogu talagalay. Waqti kasta oo xaadir ah ayaa u adeegi kara 2 ama 3 wax soo saar PWM. Diiwaangelinta isbarbardhiga ee soo saar kasta waxay dhameystireysaa nidaamkan si marka waqtiga uu gaaro qiimaha diiwaanka, gobolka ama qiimaha wax soo saarku loo beddelo si loo joojiyo wareegyada Waajibaadkaas. In kasta oo ay jiraan laba wax soo saar oo ay maamusho isla Waqtiga, labaduba waxay yeelan karaan Wareegyo Duty kala duwan, in kasta oo ay wadaagaan isku mid soo noqnoqod.

Marka laga hadlayo Waqtiyada laxiriirta biin kasta oo PWM ah, way kala duwanaan doontaa waxay kuxirantahay nooca guddiga Arduino in aad leedahay:

  • Arduino UNO, Mini iyo Nano:
    • Saacad0 - 5 iyo 6
    • Saacad1 - 9 iyo 10
    • Saacad2 - 3 iyo 11
  • arduino mega:
    • Saacad0 - 4 iyo 13
    • Saacad1 - 11 iyo 12
    • Saacad2 - 9 iyo 10
    • Saacadda 3 - 2, 3 iyo 5
    • Saacadda 4 - 6, 7 iyo 8
    • Saacadda 5 - 44, 45 iyo 46

Diiwaanka horay loo sii qoondeeyay wuxuu waqtiga u qeybin doonaa tiro iskudhaf ah iyo Waqtiga ayaa sameeya inta kale si loo xakameeyo mid kasta oo ka mid ah wax soo saarka PWM ee la xiriira. Wax ka beddelka qiimaha diiwaanku wuxuu beddeli karaa inta jeer. Ku soo noqnoqoshada Waxay sidoo kale ku kala duwanaan doonaan iyadoo kuxiran Saacadda iyo saxanka:

  • Arduino UNO, Mini iyo Nano:
    • Saacad0: waxay u oggolaaneysaa qiyaasta 1, 8, 64, 256 iyo 1024. Joogtayntu waa 62.5 Khz.
    • Waqtiga1: oo leh horudhac ah 1, 8, 64, 256 iyo 1024. Iyadoo lagu celcelinayo 31.25 Khz.
    • Timer2: waxay u dhigantaa Timer1, kaliya waxay ku dareysa qiyaasta 32 iyo 128 marka lagu daro kuwii hore.
  • arduino mega:
    • Saacad0, 1, 2: isku mid sida kor ku xusan.
    • Timer3, 4, iyo 5: oo leh soo noqnoqoshada 31.25 Khz oo laga dhigay 1, 8, 64, 256 iyo 1024.

Isqabsi la’aan iyo isku dhacyo

Saacadda la xidhiidha wax soo saarka ma aha oo kaliya shaqadaas, sidoo kale waxaa isticmaala dadka kale. Sidaa darteed, haddii ay adeegsanayaan hawl kale, waa inaad kala doorataa mid ama ka kale, ma wada isticmaali kartid labadaba isku waqti. Tusaale ahaan, kuwani waa qaar ka mid ah iswaafajin la'aanta aad ka heli karto mashaariicdaada:

  • Maktabada Servo: Markaad adeegsanayso matoorrada adeegga, waxay si xoog leh u adeegsataa Saacadaha, sidaa darteed waxay abuuri kartaa isku dhacyo. Gaar ahaan u isticmaal Timer1 UNO, Nano iyo Mini, taasi waa, ma isticmaali kartid biinanka 9 iyo 10 inta aad ku adeegsaneyso sawir gacmeed maktabaddaas. In Mega waxay ku xirnaan doontaa tirada servos ...
  • SPI: Haddii isgaarsiinta SPI loo adeegsado sabuuradda Arduino, pin 11 ayaa loo adeegsanayaa howlaha MOSI. Taasi waa sababta aan loo isticmaali karin pin-ka PWM.
  • Tone: shaqadani waxay isticmaashaa Timer2 si ay u shaqeyso. Markaa haddii la adeegsado, waxaad ka dhigaysaa biinanka 3 iyo 11 (ama 9 iyo 10 ee Mega) aan waxtar lahayn.

Tijaabada gacanta ee Arduino

Arduino PWM wuxuu la shaqeeyaa LED

Haddii aad rabto inaad ku aragto goobta sida PWM ugu shaqeyso Arduino, waxa ugu fiican ee aad sameyn karto ayaa ah isku xirnaanta cabbiraadda a voltmeter ama multimeter (shaqeynaya si loo cabbiro danab) inta udhaxeysa biinanka PWM ee aad dooratay inaad isticmaasho iyo biinanka dhulka ama GND ee guddiga Arduino. Sidan oo kale, shaashadda qalabka cabbiraadda waxaad awoodi doontaa inaad aragto sida danabku u beddelayo wax soo saar dijitaal ah oo ay ugu wacan tahay khiyaanadan PWM.

Waad ku beddeli kartaa voltmeter / multimeter leh LED si aad u aragto sida xoogga iftiinka u kala duwan yahay, mashiinka DC, ama walxaha kale ee aad rabto. Waxaan ku fududeeyay jaantuska leh Fritising with a LED la'aantiis, laakiin ogow inay sidoo kale matali karto talooyinka mitir-mitir ...

Haddii aad isticmaasho Laydhka, xusuusnow iska caabbinta kathode iyo GND.

para lambarka isha Si loo xakameeyo microdurolka guddiga Arduino si wax waliba ushaqeeyaan, waa inaad tan galisaa Arduino IDE (kiiskan waxaan isticmaalay PWM pin 6 ee Arduino UNO):

const int analogOutPin = 6;
byte outputValue = 0;  
 
void setup()
{  
   Serial.begin(9600);        
   pinMode(ledPIN , OUTPUT); 
 
   bitSet(DDRB, 5);       // LED o voltímetro
   bitSet(PCICR, PCIE0);       
   bitSet(PCMSK0, PCINT3);     
}
 
void loop() 
{
   if (Serial.available()>0)  
   {
      if(outputValue >= '0' && outputValue <= '9')
      {
         outputValue = Serial.read();   // Leemos la opción
         outputValue -= '0';      // Restamos '0' para convertir a un número
         outputValue *= 25;      // Multiplicamos x25 para pasar a una escala 0 a 250
         analogWrite(ledPIN , outputValue);
      }
   }
}  
 
ISR(PCINT0_vect)
{
   if(bitRead(PINB, 3))
   { 
      bitSet(PORTB, 5);   // LED on 
   }
   else
   { 
      bitClear(PORTB, 5); // LED off  
   } 
} 
Waxaan kugula talinayaa inaad ku ciyaarto qiyamka oo aad aragto natiijooyinka nalka ama voltmeter. Barnaamijku wuxuu heli karaa qiyamka 0 ilaa 9 sidaa darteed waad arki kartaa sida wax waliba u kala duwan yihiin. Wixii macluumaad dheeraad ah, waan kula talinayaa koorsada arduino in aan leenahay soo dejin bilaash ah ...

Faallo, ka tag taada

Ka tag faalladaada

cinwaanka email aan la daabacin doonaa. Beeraha loo baahan yahay waxaa lagu calaamadeeyay la *

*

*

  1. Masuul ka ah xogta: Miguel Ángel Gatón
  2. Ujeedada xogta: Xakamaynta SPAM, maaraynta faallooyinka.
  3. Sharci: Oggolaanshahaaga
  4. Isgaarsiinta xogta: Xogta looma gudbin doono dhinacyada saddexaad marka laga reebo waajibaadka sharciga ah.
  5. Kaydinta xogta: Macluumaadka ay martigelisay Shabakadaha Occentus (EU)
  6. Xuquuqda: Waqti kasta oo aad xadidi karto, soo ceshan karto oo tirtiri karto macluumaadkaaga.

  1.   Jose dijo

    Waad salaaman tihiin maalin wanaagsan. Marka ugu horeysa waxaan rabaa inaan kaaga mahadceliyo waqtiga u huray sharraxaadda tan cusub.
    Waxaan jeclaan lahaa inaan kaa dhigo su'aal. Waxaan isku dayayaa inaan koodhka ku maamulo emulatorka 'proteus 8 emulator' ee Arguino Mega. Waxaan ku xiraa voltmeter-ka si aan u xiro 6, Proteus wuxuu kuxiranyahay dekedda taxanaha ah, laakiin ma aqaano sida ama waxa lagu kala duwanaan karo si ay u soo baxaan danabyo kala duwan Waxay ahayd inaan ku sameeyo wax ka beddel yar koodhka si aan u soo ururiyo. Aad baad ugu mahadsantahay kaalmadaada