Orodha ya maudhui:

Tuma Takwimu za Nambari kutoka kwa Arduino kwenda kwa Mwingine: Hatua 16
Tuma Takwimu za Nambari kutoka kwa Arduino kwenda kwa Mwingine: Hatua 16

Video: Tuma Takwimu za Nambari kutoka kwa Arduino kwenda kwa Mwingine: Hatua 16

Video: Tuma Takwimu za Nambari kutoka kwa Arduino kwenda kwa Mwingine: Hatua 16
Video: Праздник. Новогодняя комедия 2024, Novemba
Anonim
Tuma Takwimu za Nambari kutoka kwa Arduino moja hadi nyingine
Tuma Takwimu za Nambari kutoka kwa Arduino moja hadi nyingine

Utangulizi

na David Palmer, CDIO Tech. katika Chuo Kikuu cha Aston.

Je! Uliwahi haja ya kutuma nambari kadhaa kutoka Arduino hadi nyingine? Maagizo haya yanaonyesha jinsi.

Unaweza kujaribu kwa urahisi inafanya kazi kwa kuchapa tu safu ya nambari za kutuma kwenye kituo cha Serial Monitor, na uone nambari zikirudi kwa mfuatiliaji wa pili wa Serial uliounganishwa na Arduino ya pili. Unaweza hata kutumia kiunga cha Bluetooth.

Inachofanya

Programu mbili za Arduino (michoro katika Arduino inazungumza) zinahitaji kuendelezwa, moja ni mpango wa Master kuungana na kompyuta mwenyeji inayoendesha Arduino Serial Monitor, moja ya kufanya kama Mtumwa kupokea ujumbe wa serial kutoka kwa Mwalimu, kuichagua na kuituma tena. Mtumwa ana hiari ya kuonyesha nambari anazoshughulikia kwenye Monitor ya pili ya IDE - ikiwa tu unataka kutumia hii. Inaweza kusaidia kufanya vitu kufanya kazi mahali pa kwanza, na kukusaidia ikiwa unaamua kufanya mabadiliko yoyote kwenye programu ili kukidhi mahitaji yako mwenyewe.

Vifaa

  • 2 ya Arduino
  • 2 USB inaongoza
  • waya za kiraka (kama inavyotakiwa)
  • 1 PC / kompyuta ndogo iliyobeba Arduino IDE (inapatikana kama kupakua bure kutoka kwa wavuti ya Arduino.cc)

Hatua ya 1: Kuweka Up - Weka Vifaa vyako vya Kwanza Kwanza

Kuanzisha - Weka vifaa vyako vya kwanza kwanza
Kuanzisha - Weka vifaa vyako vya kwanza kwanza
Kuanzisha - Weka vifaa vyako vya kwanza kwanza
Kuanzisha - Weka vifaa vyako vya kwanza kwanza

Chomeka Arduino 2 kwenye bandari 2 za USB kwenye kompyuta yako.

Kidokezo, ni wazo nzuri kuwaita kama M na S (bwana na mtumwa) ili usiingie kwenye matope baadaye (kama inavyoonyeshwa kwenye picha 2 hapa.)

Hatua ya 2: Kuweka Up - Set Screen yako

Kuweka Up - Set Screen yako
Kuweka Up - Set Screen yako

Jambo bora ni kusanidi skrini yako ili uwe nayo

  • IDE iliyobeba programu ya Master kushoto na
  • hiyo na Mtumwa kulia.

Weka Wachunguzi wa Serial kwa Maser na Mtumwa kushoto na kulia pia kama inavyoonyeshwa kwenye picha ya skrini hapa.

Hatua ya 3: Sanidi Mwisho wa Mwalimu, kisha Unganisha Pamoja - Sehemu ya 1

Sanidi Mwisho wa Mwalimu, kisha Unganisha Pamoja - Sehemu ya 1
Sanidi Mwisho wa Mwalimu, kisha Unganisha Pamoja - Sehemu ya 1

Unapoweka Mwalimu Mwisho wa Ufuatiliaji wa Mwisho kutuma nambari mbili, lazima utumie kila wakati kuanza, na kumaliza, herufi za kupangilia, na herufi ya koma kama unavyoona hapa.

Sasa unahitaji kuunganisha 2 Arduino pamoja juu ya mfululizo. Hii imefanywa na waya mbili za kiraka.

Nilitumia kijani na manjano

  • Chukua manjano kwanza, hii lazima ingiza D6 katika Arduino moja na D7 katika ile ya pili
  • Halafu kinyume cha waya wa kijani, D7 kwa kwanza na D6 kwa Arduino ya pili.

Vinginevyo, ikiwa una kitu kinachopatikana kama jozi ya moduli za Bluetooth - kama HC-05's - hizi pia zitafanya kazi kukupa athari sawa na waya zilizo hapo juu.

Hatua ya 4: Sanidi Mwisho wa Mwalimu, kisha Unganisha Pamoja - Sehemu ya 2

Sanidi Mwisho wa Mwalimu, kisha Unganisha Pamoja - Sehemu ya 2
Sanidi Mwisho wa Mwalimu, kisha Unganisha Pamoja - Sehemu ya 2
Sanidi Mwisho wa Mwalimu, kisha Unganisha Pamoja - Sehemu ya 2
Sanidi Mwisho wa Mwalimu, kisha Unganisha Pamoja - Sehemu ya 2

Tunatumia maktaba ya Serial Serial. Habari zaidi inapatikana na kiunga hiki

Unaweza kuona ikiitwa kwenye mstari wa 7 wa moja ya programu. Inasanidi pini za dijiti 7 na 6 kama TX na RX (tuma na upokee). Hivi ndivyo data itakavyosafiri kutoka kwa Master Arduino kupitia waya wa kijani kwenda kwa Mtumwa, na, wakati programu ya Mtumwa katika Arduino ya pili imemaliza kazi yake, kurudi kupitia waya wa manjano. Chini ya kielelezo hicho hicho (kwenye dirisha la Serial Monitor) unaweza kuona data tuliyoisambaza sasa imefanikiwa kuzunguka kitanzi kilichoelezewa hapa, na kurudi kwenye PC wakati jozi ya nambari zilitengwa vizuri.

Hatua ya 5: Muhtasari wa Mchoro / Programu - Muundo wa Programu

Muhtasari wa Mchoro / Programu - Muundo wa Programu
Muhtasari wa Mchoro / Programu - Muundo wa Programu
Muhtasari wa Mchoro / Programu - Muundo wa Programu
Muhtasari wa Mchoro / Programu - Muundo wa Programu

Mpangilio Kama katika michoro zote za Arduino kuna sehemu 3 za kimsingi:

  • Azimio
  • Usanidi
  • Kitanzi kuu

Kama inavyotokea mara nyingi, tumetumia hapa sehemu ya 4 ambayo ni kuongeza kwa 'Kazi'. Ikiwa haujui kutumia Matumizi unaweza Google kwa "kazi za Arduino" na utapata tovuti za maelezo kama mfano kwenye kiunga hiki: www.tutorialspoint.com/arduino/arduino_functions…..

Tumetumia pia tabo kutenganisha programu hiyo kwa vizuizi vinavyoweza kudhibitiwa.

Vitalu vitatu ambavyo tumetumia vinaweza kuonekana juu ya kila kielelezo cha windows za IDE hapo juu:

  • rahisiRxTx0330Master
  • kawaida
  • maelezo

Hizi ni faili tofauti kabisa ndani ya folda ya programu, kama unaweza kuona katika mwonekano huu wa Windows Explorer wa faili za Programu ya Mtumwa.

Kuna sababu nzuri sana kwanini tumefanya hivi.

  • Tulipokuwa tukijenga programu hiyo tuligundua kuwa programu nyingi kwa Mwalimu ilikuwa sawa na ya Mtumwa.
  • Tuliishia kuvuta sehemu zote za kawaida kwenye kichupo, ambacho kwa hivyo tuliita "kawaida", na kisha kila wakati tulitatua sehemu (tuliijaribu, na tukaridhika kuwa inafanya kazi sawa) tulinakili tu-na-kubandika kichupo chote kutoka Mwalimu hadi Mtumwa, au visa kinyume chake.
  • Tabo za vidokezo pia zinafanana, kwani muundo ni wa kawaida.

Hakuna kazi yoyote inayoitwa kutoka kwa usanidi, zote zinaitwa kutoka kitanzi, kwa hivyo tumeziunda baada ya kusanidi lakini kabla ya kitanzi.

Hatua ya 6: Ubunifu wa Juu Juu

Ni wazo nzuri kubuni mchoro wako ukianza na ufafanuzi wa unachotaka kufanya.

Mara tu unapokuwa na hii unaweza kuanza kufanya mchoro ufanye vitu hivyo. Kwa ujumla ikiwa kuna maelezo ambayo hujui jinsi ya kufanya bado, fanya tu iwe kazi, na uacha uundaji wa kazi hadi baadaye.

Hii inafuata falsafa nzuri ya muundo, inayofundishwa katika Vyuo Vikuu vingi, iitwayo CDIO (Ikiwa hauijui hii unaweza kuiwezesha Google, na upate tovuti kuelezea kama: https://www.cdio.org/s.) Hii kimsingi inasema: Usianze Ubuni kabla ya Dhana kuwa wazi. Usianzishe Utekelezaji mpaka muundo uwe wazi. Usitarajie itafanya kazi kabla haujapata Utekelezaji wazi. C kwanza, halafu D, mimi, na O. Katika kila hatua inayofuata unapunguza (kurudi pande zote), kwa hivyo mara tu utakapofurahi na kitanzi chako cha kwanza cha Kubuni na uangalie kuwa bado inakidhi Dhana, na usasishe C ikiwa unahitaji. Na kadhalika, kwa hivyo hata unapofika kwenye Uendeshaji, nenda kurudi juu, na uone tena jinsi C inavyoonekana sasa, kisha D na mimi, na tengeneza na uangalie yote Pamoja na michoro ya programu hii inafanya kazi sawa tu ikiwa unasanifu wa Juu-Chini.

Hatua ya 7: Dhana na Ubunifu - Sehemu ya 1

Dhana na Ubunifu - Sehemu ya 1
Dhana na Ubunifu - Sehemu ya 1
Dhana na Ubunifu - Sehemu ya 1
Dhana na Ubunifu - Sehemu ya 1

Dhana hapa inaonekana kama mahitaji ya muhtasari yaliyotajwa kwenye kichupo cha 'noti'. '

Ubunifu unaweza kuonekana kama toleo la mapema la kitanzi, linalolingana na kichupo cha maelezo na linaweza kuangalia kitu kama unavyoona kwenye takwimu hii

Angalia jinsi ninapenda kuanza kwa kweli CTRL-C kunakili maoni kwenye kichwa cha kitanzi kwanza, na kisha anza kujaza nafasi zilizoachwa wazi na amri ambazo zitafanya mambo hayo.

Hii inakusanya sawa kama unaweza kuona chini ya skrini kwenye kielelezo. Hiyo inafikia kutoka hatua ya CDIO D hadi mimi, na tunapoendeleza nambari ni wazo nzuri kuendelea kuzunguka kitanzi hiki cha D-I.

Sasa ni wakati wa kwenda kwenye hatua inayofuata, kuna maoni hapo ambayo inasema tutaenda: // kupokea kitu kutoka kwa vifaa vya USB, kisha tutasambaza hiyo kwenye idhaa ya serial ya programu. Tunaandika nambari hii ili kufanya hivyo kutokea - mistari ya 133 hadi 138 imeonyeshwa hapa kwenye mwangaza wa manjano

Hatua ya 8: Dhana na Ubunifu - Sehemu ya 2

Dhana na Ubunifu - Sehemu ya 2
Dhana na Ubunifu - Sehemu ya 2
Dhana na Ubunifu - Sehemu ya 2
Dhana na Ubunifu - Sehemu ya 2

Kazi mbili za kwanza tunazoanzisha hapa ni (recv () na tran () kufanya kupokea kutoka kwa bandari ya vifaa na kupeleka kwenye bandari ya programu - kwa hivyo kuziita na vigezo vya 'hw' au 'sw' vilivyoonyeshwa.

Kwa kuongezea, tumeongeza jaribio juu ya anuwai ya ulimwengu inayoitwa newData. Hii ni bendera ambayo tutaweka ndani ya "batili recv ();" kazi. Wakati ujumbe umepokelewa tofauti hii imeripotiwa kutoka uwongo hadi kweli. Tunafanya hivyo ili tuweze kusambaza ujumbe ikiwa mtu amepokelewa (bendera == kweli) katika laini ya 134. Na mara tu tutakaposambaza ujumbe wetu ambao ni 'kazi imefanywa' kwa hivyo tunaondoa bendera kwa uwongo tena katika mstari wa 137.

Tena tunaweza kuangalia kukusanya (D hadi I), na wakati huu tuna ujumbe wa makosa ambao haujatangazwa (umeonyeshwa). Hii inatuambia hatujatangaza recv (); kazi. Tunapanga kufanya hivi baadaye, kwa hivyo kwa sasa kuturuhusu kupata mkusanyiko safi tunahitaji kuunda dummy au kishikilia nafasi, kama inavyoonyeshwa ifuatayo.

Tena tunaweza kuangalia kukusanya (D hadi I), na wakati huu tuna ujumbe mwingine wa kosa 'ambao haujatangazwa' kwa tran (); kazi. Hii inahitaji ubuni kama huo kuunda. Tena tunaweza kuangalia kukusanya (D hadi I), na wakati huu tutapata hii inafanya kazi kikamilifu; hadi sasa ni nzuri sana.

Hatua ya 9: Maliza Kitanzi Kuu: A) Kupokea Kutoka kwa USB, B) Kupokea Kutoka kwa Mtumwa Arduino

Maliza Kitanzi Kuu: A) Kupokea Kutoka kwa USB, B) Kupokea Kutoka kwa Mtumwa Arduino
Maliza Kitanzi Kuu: A) Kupokea Kutoka kwa USB, B) Kupokea Kutoka kwa Mtumwa Arduino
Maliza Kitanzi Kuu: A) Kupokea Kutoka kwa USB, B) Kupokea Kutoka kwa Mtumwa Arduino
Maliza Kitanzi Kuu: A) Kupokea Kutoka kwa USB, B) Kupokea Kutoka kwa Mtumwa Arduino

Kuna kipande kimoja cha mwisho ambacho tumeongeza kumaliza sehemu hii ambayo ni kuongeza nambari ya utatuzi.

Kuna mwingine anayeweza kufundishwa juu ya michoro za utatuzi ambazo zinaweza kutajwa kuelewa kile tumefanya hapa na kwanini. Rejelea Maagizo "Jinsi ya kujenga na kujaribu michoro ya Arduino mpaka wafanye kazi"

Kwa hivyo mistari hii ya utatuzi [136-139 imeonyeshwa] imeongezwa kwenye kitanzi kuu na, angalia, unaweza kuwajaribu katika mwisho wa Mwalimu kwa kufanya utatuzi wa utatuzi kuwa wa kweli, na Kuandaa (I), basi ikiwa unaunganisha Arduino juu unaweza kupakia, kufungua Monitor Serial na uone ikiwa kile kinachorudi kwenye Monitor Monitor ni kama inavyoonyeshwa hapa (unaona ujumbe wa "DEBUG MODE" umeongezwa?)

Hatua ya 10: Kupokea na Kushughulikia Takwimu katika Mtumwa Arduino

Kupokea na Kushughulikia Takwimu katika Mtumwa Arduino
Kupokea na Kushughulikia Takwimu katika Mtumwa Arduino
Kupokea na Kushughulikia Takwimu katika Mtumwa Arduino
Kupokea na Kushughulikia Takwimu katika Mtumwa Arduino

Kupokea kutoka kwa Mtumwa Arduino

Ongeza nambari inayofaa kwa idhaa ya pili kwenye kitanzi kuu, kipokezi cha serial cha programu kama inavyoonyeshwa - mistari 149 hadi 155.

Je! Unaweza kuona kuwa muundo umeegemea kwa hiari juu ya kile tuliandika hapo juu kwa kesi ya Mwalimu?

Pia utaona kuwa tunapata kosa la mkusanyaji, kazi nyingine isiyojulikana - wakati huu parseData (); - kwa hivyo tunahitaji kufanya kisiki kwa hii pia, kabla ya kuanza kukusanya jaribio lisilo na makosa.

Kushughulikia data katika Mtumwa Arduino

Ongeza nambari kuu ya kitanzi inayohitajika kwa Arduino ikiwa imesanidiwa kama kifaa cha Mtumwa kama inavyoonyeshwa - mistari 163 hadi 174. Je! Unaweza kuona kwamba muundo wake unafanana sana na ule wa idhaa ya kwanza?

Na unapaswa kupata wakati huu inajumuisha vizuri kabisa.

Hatua ya 11: Andika Kazi ya Kupokea

Andika Kazi ya Kupokea
Andika Kazi ya Kupokea

Kazi ya Pokea - batili recv (char kutoka) {} - ina kazi kuu mbili.

1 kupokea kamba ya herufi kutoka kituo cha USB, na

2 kupokea moja kutoka kwa kituo cha Arduino hadi Arduino.

Kwa wa kwanza tutahitaji kutumia kwa sababu inatumia Arduino iliyojengwa katika vifaa vya UART, na kwa pili ikitumia Maktaba ya kawaida ya Arduino: programu ya UART.

Tunapoanza kuongeza nambari kwenye kazi - kuunda kazi inayofanya kitu, badala ya kisiki tu - tunahitaji kukumbuka kuondoa au kutoa maoni juu ya stub inayoibadilisha. Vinginevyo tunapata kosa la kukusanya: ufafanuzi wa 'void lrec (char)'.

Jaribu kupata hitilafu, kisha ujaribu njia yoyote iliyopendekezwa hapo juu kuiondoa.

Anza na kazi ambayo inaonekana kama ile tunayoonyesha hapa ya mistari 75 hadi 88 ya manjano.

Kwa sasa unajua kuwa kuwa na nambari utahitaji kujaribu Operesheni ya Kusanya. Inakupa kosa, kama vile tulikuwa na hapo awali, la aina: jina la kazi halijatangazwa katika wigo huu. Tutahitaji mwanzoni kisiki kingine ili turuhusu kukusanya hitilafu iliyopita, kwa hivyo ongeza moja kama hapo awali, na hakikisha sasa unaweza kupata mkusanyiko bila makosa.

Sasa hebu tuangalie nambari ambayo tumeandika kwa kazi ya recv ().

Ni safi kabisa, unaweza kuona matumizi ya hali ya 'ikiwa' kutoa sehemu mbili za kazi iliyotajwa hapo juu.

Nambari iliyo ndani ya sehemu ya 'sw' na sehemu ya 'hw' ni ya fomu ile ile, na nitaielezea hapa.

Ya kwanza ya jozi ya mistari katika kila kesi ni mwanzo wa kitanzi cha muda. Ikiwa haujui kawaida wakati unaweza kuiona kwenye Arduino.cc/Reference tovuti kwa maelezo na mifano. Hapa tunasubiri 'wakati' kazi ya 'serial' iliyojengwa haijapokea wahusika wowote na kwa sababu tofauti ya NewData imezimwa (i.e. newData == hali ya uwongo ni kweli). Mara tu mhusika - au zaidi ya mhusika mmoja - anapokelewa wakati huo 'utashuka' hadi kwenye laini ya pili katika jozi hii. Hiyo basi itahitaji recAstringChar (char); kazi kushughulikia mhusika wa sasa. Mistari hii baadaye itabadilishana wakati (au kwa muda mrefu) kuna wahusika bado wanahitaji kupokelewa. Mara tu wanapomaliza wakati serikali inaisha, ikiruhusu ikiwa au sivyo ngazi nyingine ifike mwisho, na kwa upande kuruhusu rec (char); kazi hadi mwisho. Kwa hivyo ujumbe kamili sasa umepokea nyuki.

Hatua ya 12: Andika Kitufe cha Kupokea - Sehemu ya 1

Andika kazi ndogo ya Pokea - Sehemu ya 1
Andika kazi ndogo ya Pokea - Sehemu ya 1
Andika kazi ndogo ya Pokea - Sehemu ya 1
Andika kazi ndogo ya Pokea - Sehemu ya 1

Sasa tunahitaji kuandika kazi inayoitwa recAstringChar (char);. Unaona kutoka kwa maoni hadi mstari wa 50 hapa juu, kwamba kazi yake ni kusasisha bafa mbili na nakala za ujumbe wa serial unaoingia. [Ilibadilika wakati nilipokuwa najaribu kufanya hii ifanye kazi kwamba jambo moja nililojifunza ni kwamba nilihitaji bafa mbili tofauti - au angalau hiyo ndiyo njia rahisi ya kupata shida kadhaa, kwa hivyo ilibadilika ikawa inahitaji bafa mbili, kwa hivyo Nimewafanya tu.] Nimeita bafa moja: kupokeaData, na nyingine: imepokeaChars.

Bafa ni anuwai ya ulimwengu, kwa hivyo hutangazwa katika kiwango cha moduli, angalia mistari 9 na 10 ya kichupo cha kawaida. Kuna vigeuzi vingine vilivyotangazwa ndani ya kazi hii ambayo kwa hivyo ina upeo wa ndani-umeonyeshwa kwenye mistari ya 51-54 hapa. Hapa sio mahali pa kuelezea tofauti kati ya ulimwengu na wenyeji, lakini kuna maelezo zaidi juu ya hii katika https://www.arduino.cc/glossary/en/ chini ya Mitaa na Ulimwenguni.

Unaweza pia kujua yote juu ya aina za data na viboreshaji vya aina: tuli, boolean, byte, const, char katika https://www.arduino.cc/reference/en/#variables, zilizoonyeshwa hapa.

Mtiririko kuu wa programu katika kazi hii unadhibitiwa na ikiwa katika laini ya 56 hapa, na nyingine inayolingana kwenye laini ya 74. Hii inahusika na matukio mawili

a) [kutoka mstari wa 74 na kuendelea] wakati ujumbe uliopokelewa umeanza. Hii hufanyika wakati StartMarker inapoonekana - hii imefafanuliwa kama tabia ya '<', ndio sababu kila tunapojaribu mchoro sisi kila wakati tunaanza kamba yetu na mhusika. Ikiwa hatutafanya hivyo hakuna kitakachosindika kama kupokelewa, yote yatapuuzwa tu kana kwamba tunaandika upuuzi kwenye msukumo wa kibodi ya 'Serial Monitor'.

b) [mistari ya 56 hadi 73] ambayo hupokea wahusika wengine wote, vyovyote ilivyo, lakini hushughulika tu na wahusika baada ya kuanza halali kutokea ('' 'imepokelewa kama ilivyo kwenye a) hapo juu.)

Katika mistari hii (kutoka 74 hadi 78) tuliweka ile iliyopokea <katika moja ya bafa (kupokeaData [0]) lakini sio kwa ile nyingine. Tunarekebisha pointer ya bafa (variable: char ndx) kuelekeza kwenye nafasi inayofuata ya bafa ya ziada (kupokeaData [1]) kwa kutumia amri ya baada ya nyongeza (++) kwenye mstari ndx ++;, na tuliweka bendera inayoendelea kuwa kweli.

Mtiririko wa programu katika sehemu hii ya kazi unadhibitiwa na ikiwa katika laini ya 57 hapa, na nyingine inayolingana kwenye laini ya 65. Hii inahusika na hali mbili

a) [kutoka mstari wa 65 na kuendelea] wakati ujumbe uliopokelewa umekamilika. Hii hufanyika wakati endMarker inapoonekana - inaelezewa kama>, ndio sababu kila tunapojaribu mchoro wetu tunamaliza safu yetu na tabia hiyo kila wakati. Moja ya mambo ambayo hufanyika wakati tabia ya mwisho inapokelewa ni kwamba bendera ya ulimwengu (kiufundi kutofautisha) newData imewekwa kweli wakati kazi inamalizika, ili kazi iliyoita kazi yetu ndogo (kazi ya kupiga simu: recv (char);) wanaweza 'kujua' kwamba data mpya halali imepokelewa kamili.

b) [mistari 57 hadi 64] inayopokea herufi zingine zote, vyovyote ilivyo. Inahifadhi tu kwa busara katika safu katika bafa zote mbili.

Hatua ya 13: Andika Sehemu ndogo ya Pokea - Sehemu ya 2

Andika kazi ndogo ya Pokea - Sehemu ya 2
Andika kazi ndogo ya Pokea - Sehemu ya 2
Andika kazi ndogo ya Pokea - Sehemu ya 2
Andika kazi ndogo ya Pokea - Sehemu ya 2

Inaweza kusaidia kutoa mfano wa vipi nyufa 2 zinaonekana wakati zina watu wengi. Ikiwa tungetaka kuingia, buffers zingekuwa na wahusika walioonyeshwa ndani yao:

Kwa hivyo sasa unaweza kuona tuna bafa moja ambayo ni wahusika sawa sawa na tulivyoandika kwanza, na bafa moja ambayo ina tu maadili mawili na koma iliyotenganisha. Sasa tunayo nambari ambayo inaweza kupokea wahusika tunaoandika kwenye kibodi ya Serial Monitor, tunaweza kutoka CDIO awamu ya I hadi O, tukichapa masharti kadhaa na kuona kinachotokea. Pakia nambari kwa Master Arduino, fungua Monitor Monitor na ujaribu kuandika kitu halali, kama kuingia. Je! Unapokea mwangwi kwenye skrini ya Serial Monitor kama ile iliyoonyeshwa hapa?

Hatua ya 14: Andika kazi za Kusambaza na Kupambanua

Andika kazi za Kusambaza na Kupambanua
Andika kazi za Kusambaza na Kupambanua
Andika kazi za Kusambaza na Kupambanua
Andika kazi za Kusambaza na Kupambanua

Kwanza kwa Kusambaza

Kwa hivyo sasa tumepokea kamba, tunaweza kuandika kazi ya kupitisha: tran (char); kuchukua nafasi ya shina lake. Hii itaturuhusu kutuma kamba kutoka kwa Mwalimu kwenda kwa Mtumwa Arduino, kwa hivyo hakikisha vifaa vyote viwili vimechomekwa na kuunganishwa pamoja ili kujaribu utendaji huu mpya.

Ingiza kazi hii kama inavyoonyeshwa hapa kwenye mistari ya 117 hadi 133. Kama utakavyotambua, ina sehemu mbili, moja ya kusambaza kwa kituo cha USB (vifaa vya UART) na moja ya kusambaza kwa Arduino nyingine (programu ya UART.) Hii inapaswa kukusanya hitilafu -bure, na unaweza kupakia mchoro mara moja na uone kinachotokea. Wakati huu nitatuma. Je! Unapata matokeo yaliyoonyeshwa?

Picha ya skrini inafurahisha kwa sababu Kamba iliyopokelewa… inapaswa kuonekana sawa kama hapo awali, na kamba iliyosafirishwa… inapaswa kuonekana sawa. Walakini kumbuka kuwa ubadilishaji kamili haujafanya kazi. Bado kuna nambari zaidi ya kuongeza ili kufanya kazi hiyo.

Hatua ya 15: Andika kazi za Kusambaza na Kupambanua

Andika kazi za Kusambaza na Kupambanua
Andika kazi za Kusambaza na Kupambanua
Andika kazi za Kusambaza na Kupambanua
Andika kazi za Kusambaza na Kupambanua

Halafu kwa kifungu

Hiki ni kipande cha nambari ambacho hutenganisha kamba iliyopokelewa ili kutoa nyuzi za sehemu kadhaa na kuzigeuza kuwa nambari kamili. Ni parseData tupu (); kazi ya kitanzi kuu

Badilisha stub ya kichocheo na nambari iliyoonyeshwa kwenye mistari 98 - 113. Ipakia, na tuone ikiwa shida tuliyokuwa nayo na maadili 2 kamili sasa imerekebishwa. Tujaribu.

Ndio, inafanya kazi, kama inavyoonyeshwa, nambari zilizopatikana ni 49 na 98.

Hatua ya 16: Mwisho

Mwisho!
Mwisho!

Takwimu hizi zimezunguka kitanzi kutoka kwa PC kupitia Mwalimu kupitia mtumwa na kurudi kupitia Mwalimu tena kwa PC tena. Na toleo lililokamilishwa la kawaida lililopakiwa katika mwisho wa Mwalimu na mtumwa, na hali ya utatuzi ikizimwa sasa, tunaweza kuona data iliyopokelewa kwa usahihi katika miisho yote kama inavyoonyeshwa hapa.

Ilipendekeza: