Orodha ya maudhui:

Datalogger ya Arduino: Hatua 8 (na Picha)
Datalogger ya Arduino: Hatua 8 (na Picha)

Video: Datalogger ya Arduino: Hatua 8 (na Picha)

Video: Datalogger ya Arduino: Hatua 8 (na Picha)
Video: Видеоуроки по Arduino. SD-карты и регистрация данных (11-я серия) 2024, Novemba
Anonim
Datalogger wa Arduino
Datalogger wa Arduino
Datalogger wa Arduino
Datalogger wa Arduino

Katika mafunzo haya, tutafanya kumbukumbu rahisi ya data kutumia Arduino. Jambo ni kujifunza misingi ya kutumia Arduino kukamata habari na kuchapisha kwenye terminal. Tunaweza kutumia usanidi huu wa msingi kukamilisha anuwai ya majukumu.

Ili kuanza:

Utahitaji akaunti ya Tinkercad (www.tinkercad.com). Kichwa juu na ujisajili na barua pepe yako au akaunti ya media ya kijamii.

Kuingia hukupeleka kwenye Dashibodi ya Tinkercad. Bonyeza "Circuits" kushoto na uchague "Unda Mzunguko mpya". Tuanze!

Unaweza kupata faili kamili kwenye Mizunguko ya TInkercad - Asante kwa kuiangalia!

Hatua ya 1: Ongeza Baadhi ya Vipengele

Ongeza Vipengele Vingine
Ongeza Vipengele Vingine
Ongeza Vipengele Vingine
Ongeza Vipengele Vingine
Ongeza Vipengele Vingine
Ongeza Vipengele Vingine

Utahitaji vifaa vya msingi. Hii ni pamoja na:

  • Bodi ya Arduino
  • Bodi ya mkate

Ongeza hizo kwa kuzitafuta na ubonyeze kwenye eneo la katikati.

Weka ubao wa mkate juu ya Arduino. Inafanya iwe rahisi kuona unganisho baadaye.

Hatua ya 2: Ujumbe Kuhusu Bodi za mkate

Ujumbe Kuhusu Bodi za Mkate
Ujumbe Kuhusu Bodi za Mkate

Ubao wa mkate ni kifaa kinachosaidia sana kwa uigaji wa haraka. Tunatumia kuunganisha vifaa. Vitu vingine vya kuzingatia.

  1. Dots zimeunganishwa kwa wima, lakini mstari katikati hutenganisha unganisho huu kutoka kwa safu za juu na za chini.
  2. Nguzo hazijaunganishwa kushoto kwenda kulia, kama ilivyo kwenye safu mlalo. Hii inamaanisha kuwa vifaa vyote vinapaswa kushikamana kwenye nguzo badala ya kuzishusha wima.
  3. Ikiwa unahitaji kutumia vifungo au swichi, ziunganishe katikati ya mapumziko katikati. Tutatembelea hii katika mafunzo ya baadaye.

Hatua ya 3: Ongeza Sensorer mbili

Ongeza Sensorer mbili
Ongeza Sensorer mbili

Sensorer mbili tunazotumia ni sensor ya Pichaensitive na sensor ya Joto.

Sensorer hizi hutathmini mwanga na joto. Tunatumia Arduino kusoma thamani na kuionyesha kwenye mfuatiliaji wa Serial kwenye Arduino.

Tafuta na uongeze sensorer mbili. Hakikisha zimewekwa kwenye nguzo kwenye ubao wa mkate. Weka nafasi ya kutosha kati yao ili iwe rahisi kuwaona.

Hatua ya 4: Sensor Photosensitive

Sensor ya Usikivu
Sensor ya Usikivu
Sensor ya Usikivu
Sensor ya Usikivu
Sensor ya Usikivu
Sensor ya Usikivu
Sensor ya Usikivu
Sensor ya Usikivu
  1. Kwa sensor ya kupendeza, ongeza waya kutoka kwa pini ya 5V kwenye Arduino kwenye safu sawa na mguu wa kulia kwenye sehemu kwenye ubao wa mkate. Badilisha rangi ya waya kuwa nyekundu.
  2. Unganisha mguu wa kushoto kupitia pini kwenye safu sawa na pini ya A0 (A-zero) kwenye Arduino. Hii ndio pini ya analog, ambayo tutatumia kusoma thamani kutoka kwa sensorer. Rangi waya huu manjano au kitu kingine isipokuwa nyekundu au nyeusi.
  3. Weka kipinga (tafuta na ubonyeze) kwenye ubao. Hii inakamilisha mzunguko na inalinda sensor na pini.

    • Igeuze kwa hivyo huenda kwenye nguzo.
    • Unganisha mguu mmoja kwenye safu ya mguu wa kulia kwenye ubao wa mkate
    • Weka waya kutoka mwisho mwingine wa kontena hadi chini

      Badilisha rangi ya waya kuwa nyeusi

  4. Angalia miunganisho yote mara mbili. Ikiwa kitu hakipo mahali pazuri, hii haitafanya kazi kwa usahihi.

Hatua ya 5: Anza Nambari

Anza Nambari
Anza Nambari
Anza Nambari
Anza Nambari
Anza Nambari
Anza Nambari

Wacha tuangalie nambari ya sehemu hii.

Kwanza, angalia picha ya tatu katika hatua hii. Inayo nambari fulani na kazi mbili:

kuanzisha batili ()

kitanzi batili ()

Katika C ++, kazi zote hutoa aina yao ya kurudi, kisha jina, halafu braces mbili za kuzunguka ambazo zinaweza kutumiwa kupitisha kwa hoja, kawaida kama vigeuzi. Katika kesi hii, aina ya kurudi ni batili, au hakuna chochote. Jina ni kuanzisha na kazi haichukui hoja.

Kazi ya usanidi inaendesha mara moja wakati buti za Arduino (unapoziba au unganisha betri).

Kazi ya kitanzi inaendesha kitanzi mara kwa mara kutoka kwa millisecond kazi ya usanidi inakamilisha.

Kila kitu unachoweka kwenye kazi ya kitanzi kitaendesha wakati Arduino anaendesha. Kila kitu nje ambacho kitaendesha tu wakati unaitwa. Kama tunavyoelezea na kuita kazi nyingine nje ya kitanzi.

Kazi

Fungua jopo la Msimbo na kitufe katika Tinkercad. Badilisha ubadilishaji wa Vitalu kuwa Nakala. Kukubaliana na sanduku la onyo ambalo linaibuka. Sasa, futa kila kitu unachokiona isipokuwa maandishi kwenye picha ya tatu katika hatua hii.

Vigezo

Ili kuanza, tunahitaji kupeana vigeuzi kadhaa ili tufanye nambari yetu iwe bora.

Vigezo ni kama ndoo ambazo zinaweza kushikilia kitu kimoja tu (C ++ ndio tunayoiita inayolenga kitu). Ndio, tuna safu, lakini hizi ni vigeuzi maalum na tutazungumza juu yao baadaye. Tunapopeana kutofautisha, tunahitaji kuiambia ni aina gani, kisha tupe thamani. Inaonekana kama hii:

int someVar = A0;

Kwa hivyo, tuligawanya kutofautisha na tukaipa aina int. Nambari ni nambari kamili au nambari nzima.

"Lakini haukutumia nambari nzima!", Nasikia ukisema. Hiyo ni kweli.

Arduino anatufanyia kitu maalum ili tuweze kutumia A0 kama nambari kamili, kwa sababu katika faili nyingine inafafanua A0 kama nambari, kwa hivyo tunaweza kutumia mara kwa mara A0 kurejelea nambari hii bila kujua ni nini. Ikiwa tungeandika tu 0, tungerejelea pini ya dijiti katika nafasi ya 0, ambayo haiwezi kufanya kazi.

Kwa hivyo, kwa nambari yetu tutaandika ubadilishaji wa sensorer tuliyoambatanisha. Wakati ninapendekeza kuipatia jina rahisi, hiyo ni juu yako.

Nambari yako inapaswa kuonekana kama hii:

mwanga lightSensor = A0;

usanidi batili () {} utupu batili () {}

Sasa, wacha tuambie Arduino jinsi ya kushughulikia sensorer kwenye pini hiyo. Tutafanya kazi ndani ya usanidi ili kuweka hali ya pini na kumwambia Arduino ni wapi utafute.

mwanga lightSensor = A0;

kuanzisha batili () {pinMode (lightSensor, INPUT); } kitanzi batili () {}

kazi ya pinMode inamwambia Arduino kwamba pini (A0) itatumika kama pini ya INPUT. Kumbuka camelCaseUsed (tazama kila herufi ya kwanza ni mtaji, kwani ndani yake ina nundu, kwa hivyo… ngamia…!) Kwa anuwai na majina ya kazi. Huu ni mkutano na mzuri kuzoea.

Mwishowe, wacha tutumie kazi ya AnalogRead kupata data.

mwanga lightSensor = A0;

kuanzisha batili () {pinMode (lightSensor, INPUT); } kitanzi batili () {int reading = analogRead (lightSensor); }

Utaona tumehifadhi usomaji kwa kutofautisha. Hii ni muhimu kwani tunahitaji kuichapisha. Wacha tutumie maktaba ya Serial (maktaba ni nambari tunaweza kuongeza kwenye nambari yetu ili kufanya mambo haraka tuandike, kwa kuiita kwa ufafanuzi wake) kuchapisha hii kwa mfuatiliaji wa serial.

mwanga lightSensor = A0;

kuanzisha batili () {// Weka njia za pini pinMode (lightSensor, INPUT); // Ongeza maktaba ya serial Serial.begin (9600); } kitanzi batili () {// Soma sensor int reading = analogRead (lightSensor); // Chapisha thamani kwa mfuatiliaji Serial.print ("Mwanga:"); Serial.println (kusoma); // kuchelewesha kitanzi kinachofuata kwa kuchelewa kwa sekunde 3 (3000); }

Vitu vipya vipya! Kwanza, utaona hizi:

// Haya ni maoni

Tunatumia maoni kuwaambia watu wengine nambari yetu inafanya nini. Unapaswa kuzitumia mara nyingi. Mkusanyaji hatasoma hizi na kuzigeuza kuwa msimbo.

Sasa, pia tumeongeza maktaba ya serial na laini

Kuanzia Serial (9600)

Huu ni mfano wa kazi ambayo inachukua hoja. Uliita serial ya maktaba kisha ukafanya kazi (tunajua ni kazi kwa sababu ya braces pande zote) na kupita kwa nambari kama hoja, kuweka kazi ya Serial kufanya kazi kwa 9600baud. Usijali kwanini - ujue tu inafanya kazi, kwa sasa.

Jambo la pili tulilofanya ni kuchapisha kwa mfuatiliaji wa serial. Tulitumia kazi mbili:

// Hii inachapisha serial bila kuvunja mstari (ingiza mwishoni)

Serial.print ("Mwanga:"); // Huyu anaweka katika kuvunja kwa mstari kila wakati tunaposoma na kuandika, inaendelea na safu mpya ya Serial.println (kusoma);

Kilicho muhimu kuona ni kwamba kila mmoja ana kusudi tofauti. Hakikisha kamba zako zinatumia alama za nukuu mara mbili na unaacha nafasi baada ya koloni. Hiyo inasaidia usomaji kwa mtumiaji.

Mwishowe, tulitumia kazi ya kuchelewesha, kupunguza kitanzi chetu na kuifanya isome tu mara moja kila sekunde tatu. Hii imeandikwa kwa maelfu ya sekunde. Badilisha iwe kusoma mara moja tu kila sekunde 5.

Kubwa! Tunakwenda!

Hatua ya 6: Uigaji

Uigaji
Uigaji
Uigaji
Uigaji
Uigaji
Uigaji

Daima angalia vitu hufanya kazi kwa kuendesha masimulizi. Kwa mzunguko huu, utahitaji pia kufungua simulator ili uangalie inafanya kazi na angalia maadili yako.

Anza masimulizi na angalia mfuatiliaji wa serial. Badilisha thamani ya sensa ya mwanga kwa kubofya na kubadilisha thamani kwa kutumia kitelezi. Unapaswa kuona mabadiliko ya thamani kwenye mfuatiliaji wa serial, pia. Ikiwa haifanyi hivyo, au ikiwa unabonyeza kitufe cha Kuanza Simulation unapata makosa, rudi kwa uangalifu na uangalie nambari yako yote.

  • Zingatia mistari iliyoonyeshwa kwenye dirisha nyekundu ya utatuzi ambayo itawasilishwa kwako.
  • Ikiwa nambari yako ni sawa na uigaji bado haufanyi kazi, angalia wiring yako.
  • Pakia upya ukurasa - unaweza kuwa na hitilafu ya mfumo / seva isiyohusiana.
  • Shika ngumi yako kwenye kompyuta, na angalia tena. Waandaaji programu wote hufanya hivi. Wote. The. Wakati.

Hatua ya 7: Funga waya kwa Sensor ya Muda

Waya Up Sensor ya Muda
Waya Up Sensor ya Muda

Nitaenda kudhani uko kwenye njia sahihi sasa. Endelea na waya juu ya sensorer ya joto kama vile picha inavyoonyesha. Kumbuka kuwekwa kwa waya wa 5V na GND katika nafasi sawa na ile ya taa. Hii ni sawa. Ni kama mzunguko unaofanana na hautasababisha maswala kwenye simulator. Katika mzunguko halisi, unapaswa kutumia bodi ya kuzuka au ngao kutoa usimamizi bora wa nguvu na unganisho.

Sasa, wacha tusasishe nambari hiyo.

Nambari ya sensorer ya muda

Hii ni ngumu zaidi, lakini kwa sababu tu lazima tufanye hesabu kubadilisha usomaji. Sio mbaya sana.

mwanga lightSensor = A0;

tempSensor = A1; kuanzisha batili () {// Weka njia za pini pinMode (lightSensor, INPUT); // Ongeza maktaba ya serial Serial.begin (9600); } kitanzi batili () {// Kitufe cha muda // Kuunda vigeuzi viwili kwenye laini moja - ufanisi wa oh! // Kuelea var kuhifadhi voltage ya kuelea ya decimal, digriiC; // Soma thamani ya pini na ubadilishe usome kutoka 0 - 5 // Kwa kweli voltage = (5/1023 = 0.004882814); voltage = (AnalogSoma (tempSensor) * 0.004882814); // Badilisha kwa Digrii C digrii C = (voltage - 0.5) * 100; // Chapisha kwa serial serial Serial.print ("Temp:"); Printa ya serial (digriiC); Serial.println ("oC"); // Soma sensor int kusoma = AnalogRead (lightSensor); // Chapisha thamani kwa mfuatiliaji Serial.print ("Mwanga:"); Serial.println (kusoma); // kuchelewesha kitanzi kinachofuata kwa kuchelewa kwa sekunde 3 (3000); }

Nimefanya sasisho kwenye nambari. Wacha tuwatembee kupitia kila mmoja.

Kwanza, niliongeza laini

tempSensor = A1;

Kama vile LightSensor, ninahitaji kuhifadhi thamani kwa kutofautisha ili iwe rahisi baadaye. Ikiwa ilibidi nibadilishe eneo la kihisi hiki (kama kuzungusha bodi) basi lazima nibadilishe laini moja tu ya nambari, sio kutafuta kwenye codebase nzima kubadilisha A0 au A1, n.k.

Kisha, tuliongeza mstari wa kuhifadhi usomaji na temp katika kuelea. Kumbuka vigezo viwili kwenye mstari mmoja.

voltage ya kuelea, digrii C;

Hii inasaidia sana kwa sababu inapunguza idadi ya mistari lazima niandike na kuharakisha nambari. Inaweza kuwa ngumu kupata makosa, ingawa.

Sasa, tutafanya usomaji na kuuhifadhi, kisha ubadilishe kuwa thamani yetu ya pato.

voltage = (AnalogSoma (tempSensor) * 0.004882814);

digriiC = (voltage - 0.5) * 100;

Mistari hiyo miwili inaonekana kuwa ngumu, lakini katika ya kwanza tunachukua usomaji na kuuzidisha kwa 0.004… kwa sababu inabadilisha 1023 (usomaji wa Analog unarudisha thamani hii) kuwa usomaji wa 5.

Mstari wa pili hapo huzidisha usomaji huo kwa 100 ili kusonga hatua ya desimali. Hiyo inatupa joto. Nadhifu!

Hatua ya 8: Kupima na Kuangalia

Kupima na Kuangalia
Kupima na Kuangalia

Vitu vyote vitapanga, unapaswa kuwa na mzunguko wa kufanya kazi. Jaribu kwa kuendesha simulation na kutumia mfuatiliaji wa serial. Ikiwa una makosa, angalia, angalia tena na utingize ngumi.

Ulifanya hivyo? Shiriki na utuambie hadithi yako!

Huu ni mzunguko wa mwisho uliopachikwa kwako ili uweze kucheza / kujaribu uundaji wa mwisho. Asante kwa kumaliza mafunzo!

Ilipendekeza: