Sadržaj:

Arduino Datalogger: 8 koraka (sa slikama)
Arduino Datalogger: 8 koraka (sa slikama)

Video: Arduino Datalogger: 8 koraka (sa slikama)

Video: Arduino Datalogger: 8 koraka (sa slikama)
Video: Текстовые LCD дисплей на контроллере HD44780, Уроки Arduino 2024, Juli
Anonim
Arduino Datalogger
Arduino Datalogger
Arduino Datalogger
Arduino Datalogger

U ovom ćemo vodiču napraviti jednostavan zapisnik podataka pomoću Arduina. Poanta je naučiti same osnove korištenja Arduina za hvatanje informacija i ispis na terminalu. Ovu osnovnu postavku možemo koristiti za dovršavanje niza zadataka.

Za početak:

Trebat će vam Tinkercad (www.tinkercad.com) račun. Pređite i prijavite se pomoću svoje e -pošte ili računa na društvenim medijima.

Prijavljivanje vas vodi na Tinkercad kontrolnu ploču. Kliknite "Krugovi" s lijeve strane i odaberite "Kreiraj novi krug". Hajde da počnemo!

Kompletnu datoteku možete pronaći na TInkercad Circuits - Hvala što ste je provjerili!

Korak 1: Dodajte neke komponente

Dodajte neke komponente
Dodajte neke komponente
Dodajte neke komponente
Dodajte neke komponente
Dodajte neke komponente
Dodajte neke komponente

Trebat će vam neke osnovne komponente. Ovo uključuje:

  • Arduino ploča
  • Breadboard

Dodajte ih tako što ćete ih tražiti i kliknuti i povući u srednje područje.

Postavite ploču preko Arduina. Olakšava kasnije pregled veza.

Korak 2: Napomena o oglasnim pločama

Napomena o oglasnim pločama
Napomena o oglasnim pločama

Matična ploča je super koristan uređaj za brzu izradu prototipova. Koristimo ga za povezivanje komponenti. Neke stvari treba napomenuti.

  1. Točke su povezane okomito, ali linija u sredini razdvaja ovu vezu od gornje i donje kolone.
  2. Kolone nisu povezane slijeva nadesno, kao u drugom redu. To znači da bi sve komponente trebale biti povezane preko stupova, a ne okomito prema dolje.
  3. Ako trebate koristiti tipke ili prekidače, spojite ih preko razdora u sredini. Ovo ćemo posjetiti u kasnijem vodiču.

Korak 3: Dodajte dva senzora

Dodajte dva senzora
Dodajte dva senzora

Dva senzora koja koristimo su fotoosjetljivi senzor i temperaturni senzor.

Ovi senzori procjenjuju svjetlost i temperaturu. Koristimo Arduino za čitanje vrijednosti i prikaz na Serijskom monitoru na Arduinu.

Potražite i dodajte dva senzora. Uvjerite se da su postavljeni preko stupaca na matičnoj ploči. Stavite dovoljno prostora između njih kako biste ih lakše vidjeli.

Korak 4: Fotoosjetljivi senzor

Fotoosetljivi senzor
Fotoosetljivi senzor
Fotoosetljivi senzor
Fotoosetljivi senzor
Fotoosetljivi senzor
Fotoosetljivi senzor
Fotoosetljivi senzor
Fotoosetljivi senzor
  1. Za fotoosjetljivi senzor, dodajte žicu sa 5V pina na Arduinu u istu kolonu kao i desna noga na dijelu u ploči. Promijenite boju žice u crvenu.
  2. Spojite lijevu nogu preko pina u istoj koloni na pin A0 (A-nula) na Arduinu. Ovo je analogni pin, koji ćemo koristiti za očitavanje vrijednosti sa senzora. Obojite ovu žicu u žuto ili u nešto drugo osim u crveno ili crno.
  3. Postavite otpornik (pretražite i kliknite i povucite) na ploču. Ovo dovršava krug i štiti senzor i iglu.

    • Okrenite ga tako da ide preko stupova.
    • Spojite jednu nogu u desnu kolonu na ploči
    • Postavite žicu s drugog kraja otpornika na masu

      Promijenite boju žice u crnu

  4. Dvaput provjerite sve veze. Ako nešto nije na pravom mjestu, ovo neće funkcionirati ispravno.

Korak 5: Pokrenite kôd

Pokrenite kôd
Pokrenite kôd
Pokrenite kôd
Pokrenite kôd
Pokrenite kôd
Pokrenite kôd

Pogledajmo kod za ovu komponentu.

Prvo pogledajte treću sliku u ovom koraku. Sadrži kôd s dvije funkcije:

void setup ()

void loop ()

U C ++, sve funkcije pružaju svoj povratni tip, zatim ime, zatim dvije okrugle zagrade koje se mogu koristiti za prosljeđivanje argumenata, obično kao varijable. U ovom slučaju, tip povratka je ništavan ili ništa. Ime je postavljeno i funkcija ne uzima argumente.

Funkcija postavljanja pokreće se jednom prilikom pokretanja Arduina (kada ga priključite ili priključite baterije).

Funkcija petlje radi u konstantnoj petlji od milisekunde koju funkcija postavljanja dovršava.

Sve što stavite u funkciju petlje pokrenut će se kada se pokrene Arduino. Sve izvan toga će se pokrenuti samo kada se pozove. Kao da smo definirali i pozvali drugu funkciju izvan petlje.

Zadatak

Otvorite kodnu ploču s gumbom u Tinkercadu. Promijenite padajući izbornik Blokovi na Tekst. Prihvatite okvir upozorenja koji će se pojaviti. Sada izbrišite sve što vidite osim teksta na trećoj slici u ovom koraku.

Varijable

Za početak moramo dodijeliti neke varijable kako bismo naš kod učinili zaista efikasnim.

Varijable su poput kante koje mogu držati samo jedan objekt (C ++ je ono što nazivamo objektno orijentirano). Da, imamo nizove, ali to su posebne varijable i o njima ćemo kasnije govoriti. Kada dodjeljujemo varijablu, moramo joj reći koje je vrste, a zatim joj dati vrijednost. To izgleda ovako:

int someVar = A0;

Dakle, dodijelili smo varijablu i dali joj tip int. Int je cijeli broj ili cijeli broj.

"Ali niste koristili cijeli broj!", Čujem da govorite. To je istina.

Arduino čini nešto posebno za nas pa možemo koristiti A0 kao cijeli broj, jer u drugoj datoteci definira A0 kao cijeli broj, tako da možemo koristiti konstantu A0 da se pozivamo na ovaj cijeli broj bez da znamo što je to. Kad bismo samo upisali 0, pozvali bismo se na digitalni pin na poziciji 0, koji ne bi funkcionirao.

Dakle, za naš kôd ćemo napisati varijablu za senzor koji smo priključili. Iako preporučujem da mu date jednostavno ime, na vama je.

Vaš kod bi trebao izgledati ovako:

int lightSensor = A0;

void setup () {} void loop () {}

Sada, recimo Arduinu kako se rukuje sa senzorom na tom pinu. Pokrenut ćemo funkciju unutar postavke za postavljanje pin načina i reći Arduinu gdje ga treba tražiti.

int lightSensor = A0;

void setup () {pinMode (lightSensor, INPUT); } void loop () {}

funkcija pinMode govori Arduinu da će se pin (A0) koristiti kao INPUT pin. Obratite pažnju na camelCaseUsed (pogledajte svako prvo slovo veliko, jer u njemu ima grba, dakle … kamila …!) Za varijable i nazive funkcija. Ovo je konvencija i na nju se dobro naviknuti.

Konačno, upotrijebimo funkciju analogRead da bismo dobili neke podatke.

int lightSensor = A0;

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

Vidjet ćete da smo spremili očitanje u varijablu. Ovo je važno jer ga moramo odštampati. Koristimo Serijsku biblioteku (biblioteka je kôd koji možemo dodati u naš kôd kako bismo ubrzali pisanje, samo pozivanjem po svojoj definiciji) za ispis na serijski monitor.

int lightSensor = A0;

void setup () {// Postavljanje pin načina pinMode (lightSensor, INPUT); // Dodavanje serijske biblioteke Serial.begin (9600); } void loop () {// Očitavanje int očitanja senzora = analogRead (lightSensor); // Odštampajte vrijednost na monitoru Serial.print ("Light:"); Serial.println (čitanje); // odgoditi sljedeću petlju sa 3 sekunde kašnjenja (3000); }

Nekoliko novih stvari! Prvo ćete vidjeti ove:

// Ovo je komentar

Koristimo komentare da drugim ljudima kažemo šta radi naš kôd. Ove biste trebali često koristiti. Kompajler ih neće pročitati i pretvoriti u kod.

Sada smo linijom dodali i serijsku biblioteku

Serial.begin (9600)

Ovo je primjer funkcije koja uzima argument. Pozvali ste biblioteku Serial, a zatim pokrenuli funkciju (znamo da je to funkcija zbog okruglih zagrada) i proslijedili cijeli broj kao argument, postavljajući funkciju Serial da radi na 9600baud. Ne brinite zašto - samo znajte da radi, za sada.

Sledeće što smo uradili je štampanje na serijskom monitoru. Koristili smo dvije funkcije:

// Ovaj se ispisuje u seriju bez prijeloma retka (unos na kraju)

Serial.print ("Svjetlo:"); // Ovaj stavlja prelom retka pa svaki put kad čitamo i pišemo, ide na novi red Serial.println (čitanje);

Ono što je važno vidjeti je da svaka od njih ima zasebnu svrhu. Uvjerite se da vaši nizovi koriste dvostruke navodnike i da ostavite razmak nakon dvotočke. To korisniku pomaže u čitljivosti.

Konačno, upotrijebili smo funkciju odgode, kako bismo usporili petlju i učinili da se čita samo jednom u tri sekunde. Ovo je zapisano u hiljadama sekundi. Promijenite ga u čitanje samo jednom svakih 5 sekundi.

Odlično! Idemo!

Korak 6: Simulacija

Simulacija
Simulacija
Simulacija
Simulacija
Simulacija
Simulacija

Uvijek provjerite rade li stvari pokretanjem simulacije. Za ovo kolo, također ćete morati otvoriti simulator da provjerite radi li i provjerite svoje vrijednosti.

Pokrenite simulaciju i provjerite serijski monitor. Promijenite vrijednost svjetlosnog senzora klikom na nju i promijenite vrijednost pomoću klizača. Trebali biste vidjeti promjenu vrijednosti i na serijskom monitoru. Ako se to ne dogodi, ili ako pritisnete gumb Pokreni simulaciju dobijete greške, pažljivo se vratite i provjerite sav svoj kôd.

  • Fokusirajte se na linije označene u crvenom prozoru za otklanjanje grešaka koje će vam biti predstavljene.
  • Ako je vaš kôd ispravan, a simulacija i dalje ne radi, provjerite ožičenje.
  • Ponovo učitajte stranicu - možda imate grešku sistema/servera koja nije povezana.
  • Protresite pesnicom računar i proverite ponovo. Svi programeri to rade. Sve. The. Vrijeme.

Korak 7: Povežite senzor temperature

Povežite senzor temperature
Povežite senzor temperature

Pretpostavit ću da ste sada na pravom putu. Samo naprijed i povežite senzor temperature kao što slika sugerira. Obratite pažnju na postavljanje žica 5V i GND u isti prostor kao i one za svjetlo. Ovo je u redu. To je poput paralelnog kola i neće uzrokovati probleme u simulatoru. U stvarnom krugu, trebali biste upotrijebiti zaštitnu ploču ili štit za bolje upravljanje napajanjem i povezivanjem.

Ajmo sada ažurirati kod.

Kod senzora temperature

Ovo je malo zeznutije, ali samo zato što moramo napraviti matematiku da pretvorimo čitanje. Nije tako loše.

int lightSensor = A0;

int tempSensor = A1; void setup () {// Postavljanje pin načina pinMode (lightSensor, INPUT); // Dodavanje serijske biblioteke Serial.begin (9600); } void loop () {// Temp senzor // Kreiranje dvije varijable u jednoj liniji - oh efikasnost! // Float var za spremanje decimalnog plivajućeg napona, stupnjevaC; // Očitajte vrijednost pina i pretvorite je u očitanje od 0 - 5 // U suštini napon = (5/1023 = 0.004882814); napon = (analogno čitanje (senzor temp.) * 0,004882814); // Pretvori u stupnjeve C stupnjevaC = (napon - 0,5) * 100; // Ispis na serijskom monitoru Serial.print ("Temp:"); Serial.print (stupnjeviC); Serial.println ("oC"); // Očitavanje int očitanja senzora = analogRead (lightSensor); // Odštampajte vrijednost na monitoru Serial.print ("Light:"); Serial.println (čitanje); // odgoditi sljedeću petlju sa 3 sekunde kašnjenja (3000); }

Napravio sam neke izmjene u kodu. Prođimo kroz njih pojedinačno.

Prvo sam dodao liniju

int tempSensor = A1;

Baš kao i lightSensor, moram pohraniti vrijednost u varijablu kako bih kasnije olakšala. Ako moram promijeniti lokaciju ovog senzora (poput ponovnog ožičenja ploče), moram promijeniti samo jedan red koda, a ne pretraživati cijelu bazu kodova da bih promijenio A0 ili A1 itd.

Zatim smo dodali redak za spremanje očitanja i temp u plutajući broj. Obratite pažnju na dvije varijable u jednoj liniji.

plivajući napon, stepeniC;

Ovo je zaista korisno jer smanjuje broj redova koje moram napisati i ubrzava kod. Međutim, pronalaženje grešaka može biti teže.

Sada ćemo pročitati i pohraniti ga, a zatim ga pretvoriti u našu izlaznu vrijednost.

napon = (analogno čitanje (senzor temp.) * 0,004882814);

stupnjeviC = (napon - 0,5) * 100;

Te dvije linije izgledaju teško, ali u prvom uzimamo čitanje i množimo ga sa 0,004 … jer pretvara 1023 (analogno čitanje vraća ovu vrijednost) u očitavanje od 5.

Drugi red tamo množi to čitanje sa 100 za pomicanje decimalnog zareza. To nam daje temperaturu. Uredno!

Korak 8: Testiranje i provjera

Testiranje i provjera
Testiranje i provjera

Sve što se planira, trebali biste imati radni krug. Testirajte pokretanjem simulacije i upotrebom serijskog monitora. Ako imate grešaka, provjerite, provjerite ponovo i odmahnite pesnicom.

Jeste li uspjeli? Podijelite i ispričajte nam svoju priču!

Ovo je posljednji sklop ugrađen za vas, tako da možete igrati/testirati konačnu kreaciju. Hvala što ste završili vodič!

Preporučuje se: