Yuav Ua Li Cas Ua Tau Cov Hauj Lwm Ua Ntej (Xov) Nyob Rau Hauv Arduino Program

Cov txheej txheem:

Yuav Ua Li Cas Ua Tau Cov Hauj Lwm Ua Ntej (Xov) Nyob Rau Hauv Arduino Program
Yuav Ua Li Cas Ua Tau Cov Hauj Lwm Ua Ntej (Xov) Nyob Rau Hauv Arduino Program

Video: Yuav Ua Li Cas Ua Tau Cov Hauj Lwm Ua Ntej (Xov) Nyob Rau Hauv Arduino Program

Video: Yuav Ua Li Cas Ua Tau Cov Hauj Lwm Ua Ntej (Xov) Nyob Rau Hauv Arduino Program
Video: Yuav ua li cas thiaj khiav dim lub ntiajteb no 2024, Plaub Hlis Ntuj
Anonim

Hauv microprocessor thev naus laus zis, cov haujlwm ua haujlwm khiav ua ke hu ua Threads. Qhov no yooj yim heev, vim hais tias nws feem ntau yuav tsum tau ua ntau txoj haujlwm tib lub sijhawm. Puas yog nws ua tau kom Arduino microcontroller ua ntau yam haujlwm ib zaug, zoo li tus tsim haujlwm tiag tiag? Peb mus saib.

Cov kab khiav ua ke nyob rau hauv ib qho kev pabcuam Arduino
Cov kab khiav ua ke nyob rau hauv ib qho kev pabcuam Arduino

Nws yog qhov tsim nyog

  • - Arduino;
  • - 1 LED;
  • - 1 lub piezo buzzer.

Cov Lus Qhia

Kauj ruam 1

Feem ntau hais lus, Arduino tsis txhawb qhov kev sib txig sib luag, lossis multithreading.

Tab sis koj tuaj yeem qhia microcontroller kom kuaj seb lub sijhawm puas tau los ua qee qhov ntxiv, tom qab ua haujlwm ntawm txhua qhov rov ua dua ntawm "voj ()" phaum. Hauv qhov no, nws yuav zoo li rau tus neeg siv uas muaj ntau txoj haujlwm tau ua ib txhij.

Piv txwv, cia peb ntsais ib qho LED ntawm qhov uas tau muab rau thiab ib txhij, muab cov suab nrov nrov uas tau sawv thiab ntog zoo li lub suab rov los ntawm lub piezoelectric emitter.

Peb tau txuas ob lub LED thiab cov piezo emitter mus rau Arduino ntau dua ib zaug. Cia peb sib sau ua ke Circuit Court raws li qhia hauv daim duab. Yog tias koj tab tom txuas cov LED rau xaim xaim digital dua li "13", nco ntsoov kom muaj qhov tam sim no muaj qhov txwv tsis pub tshaj ntawm 220 ohms.

Daim duab hlau txuas rau buzzer thiab LED rau Arduino
Daim duab hlau txuas rau buzzer thiab LED rau Arduino

Kauj ruam 2

Cia peb sau cov duab kos zoo li qhov no thiab muab nws xa mus rau Arduino.

Tom qab thau lub rooj tsavxwm, koj tuaj yeem pom tias daim duab kos tsis tau ua tiav raws li qhov peb xav tau: kom txog thaum lub suab rov ua haujlwm tiav, LED yuav tsis ntsais, thiab peb xav kom lub LED ntsais thaum lub suab nrov nrov tsib rov. Cov teeb meem ntawm no yog dab tsi?

Qhov tseeb yog tias qhov teeb meem no tsis tuaj yeem daws qhov ib txwm muaj. Cov haujlwm yog ua los ntawm microcontroller nruj me ntsis ua ntu zus. Tus tswj hwm "qeeb ()" qeeb ntawm kev ua tiav lub sijhawm rau lub sijhawm, thiab txog lub sijhawm no tag sijhawm, cov haujlwm hauv qab no cov lus txib yuav tsis raug txiav txim. Vim li no, peb tsis tuaj yeem tsim lub sijhawm ua lub luag haujlwm sib txawv rau txhua txoj haujlwm hauv "loop ()" ntawm qhov program.

Yog li no, koj xav tau qee txoj kev coj los ua ntau yam.

Beeper thiab LED tswj hauv series
Beeper thiab LED tswj hauv series

Kauj ruam 3

Cov kev xaiv uas Arduino yuav ua cov haujlwm hauv pseudo-parallel yog qhia los ntawm Arduino cov neeg tsim khoom hauv tsab xov xwm

Lub ntsiab lus ntawm cov txheej txheem yog tias nrog txhua qhov rov ua ntawm "voj ()" voj, peb xyuas seb nws yog lub sijhawm yuav ntsais cov LED (los ua haujlwm tom qab) lossis tsis. Thiab yog tias nws ua li, tom qab ntawd peb hloov mus rau lub xeev ntawm LED. Qhov no yog hom ntawm kev hla lub "ncua sij hawm ()" tus tswj hwm.

Ib qho kev cuam tshuam tseem ceeb ntawm cov qauv no yog qhov kev cai sau nyob sab pem hauv ntej ntawm chav tswj LED yuav tsum raug tua sai dua lub ntsais muag lub sijhawm luv ntawm lub "ledInterval" LED. Txwv tsis pub, qhov ntsais yuav tshwm sim tsawg dua li qhov tsim nyog, thiab peb yuav tsis tau txais cov txiaj ntsig ntawm cov kev ua tiav thaum ua tiav cov haujlwm. Tshwj xeeb, hauv peb cov duab kos, qhov ntev ntawm lub suab nrov ntawm lub suab pauv yog 200 + 200 + 200 + 200 = 800 msec, thiab peb teeb lub LED ntsais luv rau 200 msec. Tab sis LED yuav nyem nrog lub sijhawm ntawm 800 msec, uas yog 4 npaug sib txawv ntawm qhov peb tau teev tseg. Feem ntau, yog tias tus neeg teb xov tooj "qeeb ()" raug siv rau hauv txoj cai, tom qab ntawd nws yog qhov nyuaj rau kev sim pseudo-parallelism, yog li nws raug nquahu kom zam nws.

Hauv qhov no, nws yuav tsim nyog rau lub suab nrov tswj hwm lub suab nrov kom tseem xyuas seb lub sijhawm tau los txog lossis tsis tau, thiab tsis yog siv "ncua ()". Tab sis qhov no yuav ua rau kom ntau npaum li cas ntawm cov lej thiab ua rau cov nyeem tau yooj yim ntawm txoj haujlwm.

Qhov ntsais LED tsis muaj qeeb () tus neeg teb xov tooj
Qhov ntsais LED tsis muaj qeeb () tus neeg teb xov tooj

Kauj ruam 4

Yuav kom daws tau qhov teeb meem no, peb yuav siv lub tsev qiv ntawv zoo tshaj ArduinoThread, uas tso cai rau koj kom yooj yim tsim pseudo-cov txheej txheem zoo ib yam. Nws ua haujlwm nyob rau hauv kev sib thooj, tab sis nws tso cai rau koj kom tsis txhob sau tus lej los saib lub sijhawm - seb koj yuav tsum tau ua txoj haujlwm hauv lub voj lossis tsis. Qhov no txo tus nqi ntawm cov lej thiab txhim kho kev nyeem tau ntawm cov roj. Cia peb mus saib lub tsev qiv ntawv hauv kev nqis tes ua.

Ua ntej tshaj plaws, rub lub tsev qiv ntawv qiv ntawv los ntawm lub vev xaib https://github.com/ivanseidel/ArduinoThread/archive/master.zip thiab unzip nws mus rau hauv "chaw qiv" cov npe ntawm Arduino IDE. Tom qab ntawd hloov lub npe "ArduinoThread-master" nplaub tshev rau "ArduinoThread".

Txhim kho ArduinoThread cov tsev qiv ntawv
Txhim kho ArduinoThread cov tsev qiv ntawv

Kauj ruam 5

Daim duab txuas yuav ua rau zoo ib yam. Tsuas yog txoj haujlwm program yuav hloov xwb. Tam sim no nws yuav zoo ib yam li nyob rau hauv lub sidebar.

Hauv qhov program, peb tsim ob ntws, txhua qhov kev coj ua nws tus kheej ua haujlwm: ib qho ntsais muag nrog lub LED, qhov thib ob tswj lub suab ntawm tsib rov. Nyob rau hauv txhua qhov iteration ntawm lub voj, rau txhua qhov xov, peb xyuas seb lub sijhawm tau los rau nws kev tua lossis tsis. Yog tias nws tuaj txog, nws yog tsim kev tua siv txoj kev "khiav ()". Qhov loj tshaj plaws yog tsis txhob siv tus neeg teb xov tooj "rau ncua sij hawm ()".

Cov lus piav qhia ntxaws ntxiv raug muab nyob rau hauv txoj cai.

Cia peb xa cov lej cim rau hauv Arduino lub cim xeeb, khiav nws. Tam sim no txhua yam ua haujlwm raws nraim li nws yuav tsum tau ua!

Pom zoo: