Obsah:

Datalogger Arduino: 8 krokov (s obrázkami)
Datalogger Arduino: 8 krokov (s obrázkami)

Video: Datalogger Arduino: 8 krokov (s obrázkami)

Video: Datalogger Arduino: 8 krokov (s obrázkami)
Video: Программирование МК STM32. УРОК 52. Подключаем датчик давления LPS25HB. Часть 4 2024, November
Anonim
Datalogger Arduino
Datalogger Arduino
Datalogger Arduino
Datalogger Arduino

V tomto tutoriáli vytvoríme jednoduchý záznamník údajov pomocou Arduina. Ide o to, naučiť sa úplné základy používania Arduina na zachytávanie informácií a tlač na terminál. Toto základné nastavenie môžeme použiť na dokončenie celého radu úloh.

Začať:

Budete potrebovať účet Tinkercad (www.tinkercad.com). Zamierte hore a zaregistrujte sa pomocou svojho e -mailu alebo účtu sociálnych médií.

Po prihlásení sa dostanete na informačný panel Tinkercad. Vľavo kliknite na „Okruhy“a vyberte „Vytvoriť nový obvod“. Začnime!

Kompletný súbor nájdete na TInkercad Circuits - Ďakujeme, že ste si to skontrolovali!

Krok 1: Pridajte niektoré komponenty

Pridajte niektoré komponenty
Pridajte niektoré komponenty
Pridajte niektoré komponenty
Pridajte niektoré komponenty
Pridajte niektoré komponenty
Pridajte niektoré komponenty

Budete potrebovať niekoľko základných komponentov. Tie obsahujú:

  • Doska Arduino
  • Breadboard

Pridajte ich tak, že ich vyhľadáte a presuniete myšou do strednej oblasti.

Umiestnite dosku na chlieb nad Arduino. Uľahčí vám to neskoršie zobrazenie spojení.

Krok 2: Poznámka o Breadboards

Poznámka o Breadboards
Poznámka o Breadboards

Breadboard je veľmi užitočné zariadenie pre rýchle prototypovanie. Používame ho na pripojenie komponentov. Niektoré veci na vedomie.

  1. Body sú spojené zvisle, ale čiara v strede oddeľuje toto spojenie od horného a dolného stĺpca.
  2. Stĺpce nie sú spojené zľava doprava, ako v celom rade. To znamená, že všetky súčasti by mali byť prepojené naprieč stĺpmi, a nie vertikálne nadol.
  3. Ak potrebujete použiť tlačidlá alebo prepínače, pripojte ich cez prestávku v strede. Navštívime to v neskoršom návode.

Krok 3: Pridajte dva snímače

Pridajte dva snímače
Pridajte dva snímače

Dva senzory, ktoré používame, sú fotosenzitívny snímač a teplotný senzor.

Tieto senzory vyhodnocujú svetlo a teplotu. Arduino používame na čítanie hodnoty a jej zobrazenie v sériovom monitore na Arduine.

Vyhľadajte a pridajte dva senzory. Uistite sa, že sú umiestnené naprieč stĺpcami na doske na chlieb. Medzi nimi umiestnite dostatok priestoru, aby ste ich lepšie videli.

Krok 4: Fotosenzitívny snímač

Fotosenzitívny senzor
Fotosenzitívny senzor
Fotosenzitívny senzor
Fotosenzitívny senzor
Fotosenzitívny senzor
Fotosenzitívny senzor
Fotosenzitívny senzor
Fotosenzitívny senzor
  1. V prípade fotocitlivého senzora pridajte drôt z 5V kolíka na Arduine do rovnakého stĺpca ako pravá noha na časti v doske. Zmeňte farbu drôtu na červenú.
  2. Pripojte ľavú nohu cez kolík v rovnakom stĺpci k kolíku A0 (A-nula) na Arduine. Toto je analógový kolík, ktorý použijeme na čítanie hodnoty zo snímača. Zafarbite tento drôt na žlto alebo na niečo iné ako na červenú alebo čiernu.
  3. Na dosku umiestnite odpor (hľadajte a ťahajte a ťahajte). Tým sa obvod dokončí a ochráni sa snímač a kolík.

    • Otočte to tak, aby to išlo cez stĺpce.
    • Pripojte jednu nohu k pravému stĺpiku nohy na doske
    • Umiestnite drôt z druhého konca odporu k zemi

      Zmeňte farbu drôtu na čiernu

  4. Znova skontrolujte všetky pripojenia. Ak niečo nie je na správnom mieste, nebude to fungovať správne.

Krok 5: Spustite kód

Spustite kód
Spustite kód
Spustite kód
Spustite kód
Spustite kód
Spustite kód

Pozrime sa na kód tohto komponentu.

Najprv sa pozrite na tretí obrázok v tomto kroku. Obsahuje kód s dvoma funkciami:

neplatné nastavenie ()

prázdna slučka ()

V C ++ všetky funkcie poskytujú svoj návratový typ, potom názov, potom dve okrúhle zátvorky, ktoré je možné použiť na odovzdanie argumentov, zvyčajne ako premenné. V tomto prípade je návratový typ neplatný alebo nič. Názov je nastavený a funkcia nevyžaduje žiadne argumenty.

Funkcia nastavenia sa spustí raz pri štarte Arduina (keď ho zapojíte alebo pripojíte batérie).

Funkcia slučky beží v konštantnej slučke od milisekundy, ktorú dokončí funkcia nastavenia.

Všetko, čo vložíte do funkcie slučky, sa spustí, keď pobeží Arduino. Všetko vonku, čo pobeží iba vtedy, ak je to vyvolané. Ako keby sme definovali a zavolali inú funkciu mimo slučky.

Úloha

Otvorte panel Kód pomocou tlačidla v Tinkercad. Zmeňte rozbaľovaciu ponuku Bloky na Text. Súhlasíte s tým, že sa zobrazí výstražné pole. Teraz v tomto kroku odstráňte všetko, čo vidíte, okrem textu na treťom obrázku.

Premenné

Na začiatok musíme priradiť niektoré premenné, aby bol náš kód skutočne efektívny.

Premenné sú ako vedrá, ktoré môžu obsahovať iba jeden objekt (C ++ nazývame objektovo orientovaný). Áno, máme polia, ale sú to špeciálne premenné a povieme si o nich neskôr. Keď priradíme premennú, musíme jej povedať, o aký typ ide, a potom jej dať hodnotu. Vyzerá to takto:

int someVar = A0;

Priradili sme teda premennú a dali sme jej typ int. Int je celé číslo alebo celé číslo.

„Ale nepoužil si celé číslo!“, Počul som, že hovoríte. To je pravda.

Arduino pre nás robí niečo špeciálne, aby sme A0 mohli použiť ako celé číslo, pretože v inom súbore definuje A0 ako celé číslo, takže pomocou konštanty A0 môžeme na toto celé číslo odkazovať bez toho, aby sme museli vedieť, čo to je. Ak by sme zadali iba 0, odkazovali by sme na digitálny pin na pozícii 0, ktorý by nefungoval.

Takže pre náš kód napíšeme premennú pre senzor, ktorý sme pripojili. Aj keď odporúčam pomenovať to jednoducho, je to na vás.

Váš kód by mal vyzerať takto:

int lightSensor = A0;

neplatné nastavenie () {} prázdna slučka () {}

Teraz si povedzme Arduino, ako zaobchádzať so senzorom na tomto kolíku. Spustíme funkciu v nastavení, aby sme nastavili režim pinov a povedali Arduinu, kde ho má hľadať.

int lightSensor = A0;

void setup () {pinMode (lightSensor, INPUT); } prázdna slučka () {}

funkcia pinMode hovorí Arduinu, že pin (A0) bude použitý ako VSTUPNÝ pin. Všimnite si camelCaseUsed (pozri každé prvé písmeno je veľké, pretože má hrby, teda … ťava …!) Pre premenné a názvy funkcií. Je to zvyk a je dobré si naň zvyknúť.

Nakoniec získajme nejaké údaje pomocou funkcie analogRead.

int lightSensor = A0;

void setup () {pinMode (lightSensor, INPUT); } void loop () {int reading = analogRead (lightSensor); }

Uvidíte, že sme údaje uložili do premennej. Je to dôležité, pretože to musíme vytlačiť. Na vytlačenie tohto dokumentu na sériový monitor použijeme sériovú knižnicu (knižnica je kód, ktorý môžeme pridať do nášho kódu, aby sa nám rýchlejšie písalo, len tým, že ho podľa definície nazývame).

int lightSensor = A0;

void setup () {// Nastaviť režimy pinov pinMode (lightSensor, INPUT); // Pridajte sériovú knižnicu Serial.begin (9600); } void loop () {// Načítanie snímača pri čítaní = analogRead (lightSensor); // Vytlačte hodnotu na monitor Serial.print ("Light:"); Serial.println (čítanie); // oneskorenie ďalšej slučky o 3 sekundy oneskorenie (3000); }

Niekoľko nových vecí! Najprv uvidíte tieto:

// Toto je komentár

Pomocou komentárov informujeme ostatných, čo robí náš kód. Mali by ste ich používať často. Kompilátor ich neprečíta a konvertuje na kód.

Teraz sme k riadku pridali aj sériovú knižnicu

Serial.begin (9600)

Toto je príklad funkcie, ktorá vyžaduje argument. Volali ste knižnicu Serial a potom spustili funkciu (vieme, že je to funkcia kvôli okrúhlym zátvorkám) a zadali ste celé číslo ako argument, čím ste nastavili sériovú funkciu na 9600 baudov. Nerobte si starosti prečo - zatiaľ vedzte, že to funguje.

Ďalšia vec, ktorú sme urobili, bolo vytlačenie na sériový monitor. Použili sme dve funkcie:

// Tento sa tlačí do seriálu bez zalomenia riadka (zadanie na konci)

Serial.print ("Svetlo:"); // Tento vloží zalomenie riadka, takže vždy, keď čítame a píšeme, prejde na nový riadok Serial.println (čítanie);

Je dôležité vidieť, že každá z nich má svoj vlastný účel. Zaistite, aby reťazce používali značky v úvodzovkách a aby ste ponechali medzeru za dvojbodkou. Pomáha to čitateľnosti pre používateľa.

Nakoniec sme použili funkciu oneskorenia, aby sme spomalili našu slučku a aby sa čítala iba raz za tri sekundy. Toto sa píše v tisícoch sekundy. Zmeňte ho na čítanie iba raz za 5 sekúnd.

Skvelé! Ideme na to!

Krok 6: Simulácia

Simulácia
Simulácia
Simulácia
Simulácia
Simulácia
Simulácia

Vždy skontrolujte, či veci fungujú, spustením simulácie. V prípade tohto obvodu budete tiež musieť otvoriť simulátor, aby ste zistili, či funguje, a skontrolujte svoje hodnoty.

Spustite simuláciu a skontrolujte sériový monitor. Zmeňte hodnotu svetelného senzora kliknutím naň a zmenou hodnoty pomocou posúvača. Zmenu hodnoty by ste mali vidieť aj na sériovom monitore. Ak sa tak nestane, alebo ak sa po stlačení tlačidla Spustiť simuláciu zobrazia chyby, vráťte sa opatrne a skontrolujte všetok kód.

  • Zamerajte sa na riadky uvedené v červenom okne ladenia, ktoré sa vám zobrazí.
  • Ak je váš kód správny a simulácia stále nefunguje, skontrolujte zapojenie.
  • Znova načítajte stránku - môže ísť o nesúvisiacu chybu systému/servera.
  • Zatraste päsťou do počítača a znova skontrolujte. Robia to všetci programátori. Všetky. The. Čas.

Krok 7: Pripojte snímač teploty

Zapojte snímač teploty
Zapojte snímač teploty

Budem predpokladať, že ste teraz na dobrej ceste. Pokračujte a zapojte snímač teploty, ako naznačuje obrázok. Všimnite si umiestnenia vodičov 5V a GND do rovnakého priestoru ako pre svetlo. Toto je v poriadku. Je to ako paralelný obvod a v simulátore to nespôsobí problémy. V skutočnom obvode by ste mali použiť oddeľovaciu dosku alebo štít, aby ste zaistili lepšiu správu napájania a pripojenia.

Teraz aktualizujme kód.

Kód snímača teploty

Je to trochu zložitejšie, ale iba preto, že musíme urobiť nejakú matematiku, aby sme čítanie mohli previesť. Nie je to také zlé.

int lightSensor = A0;

int tempSensor = A1; void setup () {// Nastaviť režimy pinov pinMode (lightSensor, INPUT); // Pridajte sériovú knižnicu Serial.begin (9600); } void loop () {// Teplotný senzor // Vytváranie dvoch premenných na jednom riadku - efektivita! // Float var na uloženie desatinného plavákového napätia, stupneC; // Prečítajte hodnotu pinu a preveďte ju na hodnotu od 0 do 5 // V podstate napätie = (5/1023 = 0,004882814); napätie = (analogRead (tempSensor) * 0,004882814); // Prevod na stupne C stupneC = (napätie - 0,5) * 100; // Tlač na sériový monitor Serial.print ("Teplota:"); Sériový tlač (stupne C); Serial.println ("oC"); // Prečítajte si čítanie senzora int = analogRead (lightSensor); // Vytlačte hodnotu na monitor Serial.print ("Light:"); Serial.println (čítanie); // oneskorenie ďalšej slučky o 3 sekundy oneskorenie (3000); }

V kóde som vykonal niekoľko aktualizácií. Prejdeme sa nimi jednotlivo.

Najprv som pridal riadok

int tempSensor = A1;

Rovnako ako lightSensor, musím uložiť hodnotu do premennej, aby to bolo neskôr jednoduchšie. Ak by som mal zmeniť umiestnenie tohto senzora (ako je opätovné zapojenie dosky), musím zmeniť iba jeden riadok kódu, nie hľadať v celom kóde, aby som zmenil A0 alebo A1 atď.

Potom sme pridali riadok na uloženie čítania a teploty do plaváka. Všimnite si dvoch premenných na jednom riadku.

plávajúce napätie, stupne C;

To je skutočne užitočné, pretože to znižuje počet riadkov, ktoré musím napísať, a urýchľuje to kód. Nájdenie chýb však môže byť ťažšie.

Teraz urobíme čítanie a uložíme ho a potom ho prevedieme na našu výstupnú hodnotu.

napätie = (analogRead (tempSensor) * 0,004882814);

stupne C = (napätie - 0,5) * 100;

Tieto dva riadky vyzerajú ťažko, ale v prvom čítame čítanie a vynásobíme ho 0,004 … pretože prevádza 1023 (analógové čítanie vracia túto hodnotu) na čítanie z 5.

Druhý riadok tam vynásobí uvedené čítanie číslom 100, aby sa posunula desatinná čiarka. To nám dáva teplotu. Úhľadné!

Krok 8: Testovanie a kontrola

Testovanie a kontrola
Testovanie a kontrola

Všetky veci sa plánujú, mali by ste mať fungujúci obvod. Otestujte spustením simulácie a použitím sériového monitora. Ak máte chyby, skontrolujte ich znova a potriasť päsťou.

Urobil si to? Podeľte sa a povedzte nám svoj príbeh!

Toto je konečný obvod, ktorý je pre vás zabudovaný, aby ste si mohli zahrať/vyskúšať konečné vytvorenie. Ďakujeme za dokončenie tutoriálu!

Odporúča: