PWM: kuteedzera mapini eanalogi neako Arduino bhodhi

Zviratidzo zvePWM

Nedigital uye pini dzeanalogog, dzaunogona kushandisa pane yako Arduino bhodhi, unogona kugamuchira kana kutumira masaini emagetsi kudzora kana kuwana data kubva kumapurojekiti ako emagetsi. Pamusoro pezvo, kune zvimwe zvinonakidza zviratidzo mumhando iyi yeplate, uye iwo ndiwo PWM, iyo inogona kuteedzera chiratidzo cheanalogog isina kunyatsoita analog. Ndokunge, iwo mapini edhijitari anogona kuita nenzira yakafanana (isina kufanana) sechiratidzo cheanalogog.

Aya marudzi ezviratidzo anonyanya kushanda kana iwe usiri kungoda chete kushandisa dijitari YEMAHARA uye YEMAHARA zviratidzo, ndokuti, 1 kana 0, ON uye OFF, asi iwe unoda kuenda mberi nekutsanangura zvimwe zviratidzo zvakaoma. Semuenzaniso, zvinokwanisika kuenzanisa kumhanya kwe DC mota, kana iyo mwenje kusimba kwechiedza, kune solenoid, nezvimwe.

Analog vs dhijitari system

Analog vs digital chiratidzo

Magetsi masekete anogona kukamurwa mumhuri mbiri hombe kana zvikamu: digital uye analoginen. Kana tichitaura nezve zvemagetsi zvemagetsi, tiri kushandisa zviyero zvine discrete values, kureva kuti, bhainari system inomiririrwa nemasaini emagetsi emagetsi akaderera kana akakwirira kududzira mamiriro emabuti ayo anobatwa. Kune rimwe divi, kana zvasvika padunhu reanalogog, huwandu hune hunopfuurira hunhu huri kushandiswa.

Mukati medhi yedhijitari inogona kuwanikwa zvakare iwo emhando yekubatanidza uye iwo erudzi rwakateedzana. Ndokunge, izvo zvekare ndezve izvo zvinoburitswa zvehurongwa zvinongoenderana nemamiriro ezvinhu. Kune rimwe divi, mune akateedzana, zvinhu zvendangariro zvinosanganisirwa, uye zvinobuda zvinoenderana nemamiriro azvino ekushandisa uye neyakare nyika yakachengetwa.

Panyaya yekufananidza hakuna aya mapoka maviri akakura kana akasiyana, nekuti pano iwo ari anoramba achienderera zviratidzo zvinogara zvichitsamira pane chiratidzo yazvino system. Semuenzaniso, mune gudzanzwi, chiratidzo chinopihwa kwairi chinoenderana nezwi raunoda kubereka. Izvo zvakafanana nemakrofoni, iyo inogadzira chiratidzo cheanalogog zvichienderana nezwi rairi kugamuchira. Chokwadi iwe wakazvionawo nemamwe ma sensors mazhinji atakatsanangura mune ino blog uye anoita nemaanalogog masaiti (uye nekudaro fomura yaifanira kugadzirwa kuitira kuti gare gare tsika dzikwanise kuverengerwa kana kuiswa mumatanho eArduino IDE ) ...

Aya maitiro eimwe uye mamwe anoita kuti vamwe vave nezvayo zvakanakira nekuipira, senguva dzose muzvinhu zvese. Semuenzaniso, madhijitari anowanzo kuve akadhura, anokurumidza, ari nyore kugadzira, ruzivo runogona kuchengetwa zviri nyore, vane huchokwadi hwakanyanya, vanogona kuiswa muzvirongwa, ivo havana kukuvara pamhedzisiro yeruzha, nezvimwe. Asi zvakare ichokwadi kuti nemaanalogs iwe unogona kushanda nemasaini akaomarara.

kubudikidza ejemplo, yedhijitari mhando Horo mhedzisiro inonzwa inogona kungoona kuvepo kana kusavapo kwenzvimbo iri pedyo yemagineti. Panzvimbo iyoyo, analog analog Hall athari sensor inogona kuzviita uye zvakare kuona kuwanda kweiyo inonzi magnetic field nekuda kwechiratidzo cheanalogog iyo inogadzira pakuburitsa kwayo. Kuziva kududzira icho chiratidzo cheakakura kana mashoma magetsi zvakanaka, iwe unogona nyore kuziva iwo hukuru. Une mimwe mimwe mienzaniso mune huwandu hukuru hwezvisikwa iwe hwaunogona kuyera zvakaenzana neanalog system, senge tembiricha, nguva, kumanikidza, kureba, kurira, nezvimwe.

Analog vs digital chiratidzo

Izvo zvataurwa, a chiratidzo cheanalogog Ichave voltage kana yemagetsi yazvino inosiyana nenguva uye nekuenderera. Kana yakabatwa, chiratidzo cheanalogog chichava imwechete frequency sine wave.

Kana ari digital chiratidzo, Imhepo inosiyana nenzira inoteedzana zvine chekuita nenguva. Ndokunge, kana ichimiririrwa pagirafu, chichava chiratidzo chedanho hachisiyane zvinowirirana, asi shanduko mumatanho kana kuwedzera kwekuwedzera.

Iwe unofanirwa kuziva kuti kune macircuit ekuenda kubva kuchiratidzo cheanalogog kuenda kudigital imwe kana zvinopesana. Izvi vashanduri ivo vanozivikanwa seDAC (Dhijitari-kune-Analog Converter) uye ADC (Analog-to-Dhijitari Shanduko). Uye zvakajairika mumidziyo mizhinji yatinoshandisa nhasi, senge TV, makomputa, nezvimwe. Navo unogona kushandura masaini edhijitari anoshandiswa nemidziyo iyi kuenda padanho remagetsi kuti ushande nezvimwe zvinongedzo kana zvikamu zvinoshanda muanalog.

kubudikidza ejemplo, mutauri kana maikorofoni ine zviratidzo zveanalogog zvinoshanda nekadhi kadhi, kana makadhi emadhijitari emadhigadhi aive neakakurumbira RAMDAC chip yeanogadzira matangi ... MuArduino rudzi urwu rwevanoshandura runoshandiswa zvakare kune akawanda mapurojekiti, sezvatichaona. ...

Chii chinonzi PWM?

graphic basa kutenderera

Kunyange zvakadaro PWM (Pulse-Width Modulation), kana kupomba kwehupamhi modulation, ine dhijitari chigadziko, chimiro chechiratidzo chayo chakafanana nechimwe chiratidzo "chinokwana" analogog. Iyo inobvumidza kuburikidza nemadhijiti pulses kusiyanisa iyo chiratidzo kutevedzera iyo analog system sezvandakatotaura kare. Muchokwadi, kana iwe ukatarisa pazita, rinotokupa zviratidzo zvezvainoita, kuburikidza nehupamhi hwemapuraneti edijitori.

Izvi zvinobatsira Arduino sezvo paine akawanda maatomatiki kana emagetsi zvigadzirwa iwe aunogona kuwedzera kune ako mapurojekiti uye izvo haikwanise kupa chiratidzo chechokwadi cheanalogog, asi ivo vanoshandisa iyi PWM kushanda. Kana ivo havakwanise kushandisa yakatemwa chiratidzo cheanalogog, ndiko kuti, iyo inoenda kumagetsi kusvetuka kufanana nedhijitari imwe. Izvo zvavanogona kuita kushandisa dhijitari kuburitsa -Vcc kana Vcc yedhijitari mhando kuti vagadzire ichi chinoshamisa chiratidzo ...

Naizvozvo, PWM iri mhando ye "hunyengeri" iyo iyo Arduino uye mamwe masisitimu anogona kubatana nemhando iyi yemasaini ayo iwo haana kunyatso fanika kana iwo akajairwa dhijitari. Kuita kuti zvikwanisike, vanochengeta dhijitari inoburitsa inoshanda kune yakatarwa nguva kana kudzima, zvinoenderana nekufarira nguva dzese. Izvi zviri kure nezvingave iri dijitari wachi kana bhajeti kodhi kodhi, ine mapundu ane upamhi hwakaenzana.

Mune mapurojekiti ako naArduino unogona kutarisa mhando iyi yePWM masaini umo kuwanda kwehuwandu hwekukonzera kupisa kunochengetwa nekufamba kwenguva, asi hupamhi hwemapundu aya hwakasiyana. Muchokwadi, iyo inonzi Duty Cycle kana chiratidzo chikachengetwa pakakwirira zvine chekuita neiyo yakazara iyo kutenderera. Naizvozvo, Duty Cycle inopihwa mu%.

Rangarira kuti muPWM haushande senge mune chiratidzo cheanalogog, pakati pemitengo yakawanda yemagetsi uye inochinja pakati pavo. Muchiitiko chePWM chiratidzo chekwere muchitajitari uye ane kukosha kwayo kukuru iVcc. Semuenzaniso, kana ukashanda nemagetsi emagetsi e3V, unogona kupa 3V kana 0V pulses, asi kwete 1V kana chero imwe yepakati kukosha sezvingaitika mune chaiyo analogu. Chingangosiyana mune iyo kesi ndiko kupamha kwehupamhi, hwatinogona kuchengeta 30% pane iyo yakakwira Vcc kukosha, kana 60% kuti iipe simba rakawanda, nezvimwe.

Asi chenjera, nekuti kana mudziyo ukatsigira muganho weVcc uye ukapfuudzwa nePWM, inogona kukuvara. Saka zvaizogara zvichidikanwa kuremekedza hunhu hwemadhata akapihwa nevagadziri. Zvakare, mune zvimwe zvishandiso senge DC motors, relays, ma electromagnet, nezvimwewo, kubviswa kwemagetsi mushure meDuty Cycle kunogona kureva kuti kutakura zvinhu kunogona kukonzera kukuvara. Ndokusaka iyo dziviriro nenguva.

PWM paArduino

Arduino I2C bhazi

Iye zvino zvawava kuziva kuti zvinoshanda sei, ngationei chaiyo nyaya yePWM mukati meArduino nyika ...

PWM: pini paArduino

Pamabhodhi eArduino iwe unogona kuwana akati wandei pini dzinoshandisa Hardware PWM. Unogona kuvaziva paPCB pachayo nekuti vane chiratidzo ~ (musoro mudiki) pamwe nepini kuverenga. Izvo zvinogona zvakare kuitwa nesoftware mune iyo Arduino kodhi, asi izvo zvinogona kuwandisa microcontroller nebasa, chimwe chinhu chisina musoro kana chichigona kuitirwa natively uye nehuradi ...

  • Arduino UNO, Mini uye Nano- Une 6 8-bit PWM zvinobuda pamapini 3, 5, 6, 9, 10, uye 11, izvo zvichave nazvo ~ pamberi chaipo penhamba
  • arduino mega- Pane iri rakasimba Arduino bhodhi iwe une gumi nemasere 15-bit PWM zvinobuda. Iwo ari pamapini 8 kusvika 2 uye 13 kusvika 44.
  • Arduino Yakakodzera: mune ino kesi pane gumi nemasere 13-bit PWM zvinobuda. Iwo ari pamapini 8 kusvika ku2, uyezve mamwe mabhii eanalogog akagadziriswa neDAC ine 13-bit resolution.

Kana iwe uchitaura nezve resolution yemasere masere kana gumi nemaviri bits, nezvimwewo, mune irworwu rudzi rwePWM zvinobuda, urikureva kukamuri yekufambisa yauinayo. With 8 mabiti ane 256 mazinga Pakati paunogona kusiyanisa, uye iwo mabheti gumi nemaviri anokwira kusvika pamakumi mana ematanhatu.

Chengetedza neTimers

Nezve Hardware PWM kutonga, Arduino inoshandisa iyo nguva nezvazvo. Imwe neimwe iripo Timer inogona kushandira maviri kana matatu PWM zvinobuda. Rejista yekufananidza kune yega yega inoburitsa inozadzisa ino sisitimu kuitira kuti kana nguva yasvika kukosha kwerejista, nyika kana kukosha kwezvakabuda zvinoshandurwa kumisa iwo maDuty Cycles. Kunyangwe paine zvabuda zviviri zvinodzorwa neiyo imwe Nguva, ese ari maviri anogona kuve neakasiyana maDuty MaCircule, kunyangwe achigovana akaenzana frequency.

Muchiitiko cheTimers dzakabatana neese pWM pini, ichasiyana zvinoenderana nerudzi rweArduino bhodhi zvaunazvo:

  • Arduino UNO, Mini uye Nano:
    • Nguva0 - 5 uye 6
    • Nguva1 - 9 uye 10
    • Nguva2 - 3 uye 11
  • arduino mega:
    • Nguva0 - 4 uye 13
    • Nguva1 - 11 uye 12
    • Nguva2 - 9 uye 10
    • Nguva3 - 2, 3 uye 5
    • Nguva4 - 6, 7 uye 8
    • Nguva5 - 44, 45 uye 46

Rejista yakachengetedzwa inozopatsanura nguva nenhamba uye iyo Timer inoita zvimwe kudzora yega yeinobatanidzwa PWM zvinobuda. Kugadzirisa kukosha kwerejista kunogona kuchinja kuwanda. Iyo frequency Izvo zvakare zvichave zvakasiyana zvichienderana neiyo Nguva uye ndiro:

  • Arduino UNO, Mini uye Nano:
    • Nguva0: inobvumidza kuiswa kwe1, 8, 64, 256 uye 1024. Iyo frequency iri 62.5 Khz.
    • Nguva1: ine prescaled 1, 8, 64, 256 uye 1024. Iine frequency ye31.25 Khz.
    • Timer2: yakaenzana neTimer1, chete inowedzera kufungidzirwa kwe32 ne128 kuwedzera kune apfuura.
  • arduino mega:
    • Timer0, 1, 2: zvakafanana neiri pamusoro.
    • Timer3, 4, uye 5: ine frequency ye31.25 Khz uye yakamisikidzwa ye1, 8, 64, 256 uye 1024.

Kusapindirana uye kupokana

Iyo Nguva inosanganisirwa nezvabuda kwete chete kune iro basa, inoshandiswawo nevamwe. Naizvozvo, kana ivo vari kushandiswa nerimwe basa, iwe unofanirwa kusarudza pakati peimwe kana imwe, haugone kushandisa zvese zviri zviviri panguva imwe chete. Semuenzaniso, izvi ndizvo zvimwe zvekusaenderana zvaunogona kuwana mumaprojekiti ako:

  • Raibhurari yeServo: Paunoshandisa servo motors, Nguva dzinoshandiswa zvakanyanya, saka zvinogona kuburitsa kukakavara. Kunyanya shandisa Timer1 yeUNO, Nano uye Mini, ndiko kuti, haugone kushandisa pini 9 ne10 uchiri kushandisa sketch neraibhurari iyo. MuMega zvinoenderana nenhamba yemasevhisi ...
  • SPI: Kana kutaurirana kweSPI kuchishandiswa pane Arduino bhodhi, pini 11 iri kushandiswa kuita kweMOSI basa. Ndokusaka iyo PWM pini isingakwanise kushandiswa.
  • izwi: iri basa rinoshandisa Timer2 kushanda. Saka kana chika shandiswa, urikugadzira mapini 3 ne 11 (kana 9 na 10 eMega) zvisina basa.

Maoko-pamuedzo naArduino

Arduino PWM schematic ine LED

Kana iwe uchida kuona mune-nzvimbo mashandiro anoita PWM paArduino, chinhu chakanakisa chaungaite kubatanidza kuyera kunotungamira kwe voltmeter kana multimeter (mukuita kuyera magetsi) pakati pepini yePWM yawakasarudza kushandisa nepini yepasi kana GND yeArduino board. Nenzira iyi, pachiratidziro chemuchina wekuyera unozokwanisa kuona kuti voltage iri kuchinja sei nechinobuditsa iri yedhijitari nekuda kweiyi PWM hunyengeri.

Unogona kutsiva voltmeter / multimeter ine LED kuti uone kuti kusimba kwechiedza kunosiyana sei, nemota yeDC, kana nechimwe chinhu chaunoda. Ini ndachirerutsa mumufananidzo pamwe naFritzing ine LED isina zvimwe, asi iwe unoziva kuti inogona zvakare kumiririra iwo matipi e multimeter ...

Kana iwe ukashandisa LED, yeuka kushora pa cathode uye GND.

Para iyo kodhi kodhi Kudzora iyo Arduino bhodhi microcontroller kuita kuti zvese zvishande, unofanirwa kuisa izvi muArduino IDE (mune ino kesi ndashandisa PWM pini 6 ye 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  
   } 
} 
Ini ndinokukurudzira kuti utambe nehunhu uye uone mhedzisiro pachiedza kana voltmeter. Chirongwa ichi chinokwanisa kugamuchira kukosha kubva pa0 kusvika 9 kuti iwe uone kuti zvese zvinosiyana sei Kuti uwane rumwe ruzivo, ini ndinokuraira iwe iyo arduino kosi kuti tinayo mahara kurodha pasi ...

Mhinduro, siya zvako

Siya yako yekutaura

Your kero e havazobvumirwi ichibudiswa. Raida minda anozivikanwa ne *

*

*

  1. Inotarisira iyo data: Miguel Ángel Gatón
  2. Chinangwa cheiyo data: Kudzora SPAM, manejimendi manejimendi.
  3. Legitimation: Kubvuma kwako
  4. Kutaurirana kwedata
  5. Dhata yekuchengetedza: Dhatabhesi inobatwa neOccentus Networks (EU)
  6. Kodzero: Panguva ipi neipi iwe unogona kudzora, kupora uye kudzima ruzivo rwako

  1.   Jose akadaro

    Mhoro zuva rakanaka. Chekutanga pane zvese ini ndoda kukutendai nenguva yakatsaurirwa iyi tsananguro yeiyo nyowani.
    Ndinoda kukuitira mubvunzo. Ndiri kuyedza kumhanyisa kodhi pane proteus 8 emulator yeArguino Mega. Ini ndinobatanidza voltmeter kupini 6, Proteus yakabatana ne serial port, asi ini handizive kuti sei kana chii chekusiyana kuitira kuti akasiyana ma voltages abudiswe. Ini ndaifanirwa kuita zvigadziriso zvidiki kune iyo kodhi kuti igadzire. Ndatenda zvikuru nerubatsiro rwenyu