Sisukord:

Arduino andmebaas: 8 sammu (piltidega)
Arduino andmebaas: 8 sammu (piltidega)

Video: Arduino andmebaas: 8 sammu (piltidega)

Video: Arduino andmebaas: 8 sammu (piltidega)
Video: Исправлена проблема с драйвером USB для Windows 8.1 и Windows 10 - Robojax 2024, Juuli
Anonim
Arduino andmebaas
Arduino andmebaas
Arduino andmebaas
Arduino andmebaas

Selles õpetuses valmistame Arduino abil lihtsa andmelogija. Mõte on õppida Arduino kasutamise põhitõed teabe kogumiseks ja terminali printimiseks. Seda põhiseadistust saame kasutada mitmesuguste ülesannete täitmiseks.

Alustamiseks tehke järgmist.

Teil on vaja Tinkercadi (www.tinkercad.com) kontot. Minge üle ja registreeruge oma e -posti või sotsiaalmeedia kontoga.

Sisselogimine viib teid Tinkercadi juhtpaneelile. Klõpsake vasakul "Ahelad" ja valige "Loo uus ahel". Alustame!

Täieliku faili leiate saidilt TInkercad Circuits - Täname selle kontrollimise eest!

Samm: lisage mõned komponendid

Lisage mõned komponendid
Lisage mõned komponendid
Lisage mõned komponendid
Lisage mõned komponendid
Lisage mõned komponendid
Lisage mõned komponendid

Teil on vaja mõningaid põhikomponente. Need sisaldavad:

  • Arduino plaat
  • Leivalaud

Lisage need, otsides neid ja klõpsates neid keskmisele alale.

Asetage leivalaud Arduino kohale. See hõlbustab hiljem ühenduste vaatamist.

2. samm. Märkus leivaplaatide kohta

Märkus leivalaudade kohta
Märkus leivalaudade kohta

Leivalaud on väga kasulik seade kiireks prototüüpimiseks. Me kasutame seda komponentide ühendamiseks. Mõned asjad, mida tähele panna.

  1. Punktid on ühendatud vertikaalselt, kuid keskel olev joon eraldab selle ühenduse ülemisest ja alumisest veerust.
  2. Veerud ei ole ühendatud vasakult paremale, nagu kogu reas. See tähendab, et kõik komponendid tuleks ühendada veergude vahel, mitte vertikaalselt allapoole.
  3. Kui peate kasutama nuppe või lüliteid, ühendage need keskel asuva katkestusega. Külastame seda hilisemas õpetuses.

Samm: lisage kaks andurit

Lisage kaks andurit
Lisage kaks andurit

Kaks andurit, mida me kasutame, on valgustundlik andur ja temperatuuriandur.

Need andurid hindavad valgust ja temperatuuri. Me kasutame Arduino väärtuse lugemiseks ja selle kuvamiseks Arduino seeriamonitoris.

Otsige üles ja lisage kaks andurit. Veenduge, et need asetseksid leivalaua veergude kohal. Pange nende vahele piisavalt ruumi, et neid oleks lihtsam näha.

Samm: valgustundlik andur

Valgustundlik andur
Valgustundlik andur
Valgustundlik andur
Valgustundlik andur
Valgustundlik andur
Valgustundlik andur
Valgustundlik andur
Valgustundlik andur
  1. Valgustundliku anduri jaoks lisage Arduino 5V pinni juhe samasse veergu, kus on leivaplaadi osa parem jalg. Muutke traadi värv punaseks.
  2. Ühendage vasak jalg sama veeru tihvti kaudu Arduino A0 (A-null) tihvtiga. See on analoogtapp, mida kasutame andurilt väärtuse lugemiseks. Värvige see traat kollaseks või muuks kui punaseks või mustaks.
  3. Asetage tahvlile takisti (otsige ja klõpsake-lohistage). See lõpetab vooluringi ja kaitseb andurit ja tihvti.

    • Pöörake see ümber, nii et see läheb üle veergude.
    • Ühendage üks jalg leivaplaadi parema jala veeruga
    • Asetage traat takisti teisest otsast maapinnale

      Muutke traadi värv mustaks

  4. Kontrollige veel kord kõiki ühendusi. Kui midagi pole õiges kohas, ei tööta see õigesti.

Samm: käivitage kood

Käivitage kood
Käivitage kood
Käivitage kood
Käivitage kood
Käivitage kood
Käivitage kood

Vaatame selle komponendi koodi.

Kõigepealt vaadake selle sammu kolmandat pilti. See sisaldab koodi, millel on kaks funktsiooni:

tühine seadistus ()

tühine tsükkel ()

C ++ puhul annavad kõik funktsioonid oma tagastustüübi, seejärel nime, seejärel kaks ümmargust sulgu, mida saab kasutada argumentides, tavaliselt muutujatena. Sel juhul on tagastuse tüüp tühine või mitte midagi. Nimi on seadistatud ja funktsioon ei võta argumente.

Seadistusfunktsioon töötab üks kord Arduino käivitamisel (kui ühendate selle või ühendate patareid).

Silmusfunktsioon töötab konstantse tsüklina millisekundist, mil seadistusfunktsioon lõpeb.

Kõik, mida silmusfunktsiooni panete, töötab Arduino käivitamisel. Kõik väljaspool seda töötab ainult siis, kui seda kutsutakse. Nagu siis, kui me määratleksime ja kutsuksime välja teise funktsiooni väljaspool silmust.

Ülesanne

Avage koodipaneel Tinkercadis oleva nupuga. Muutke rippmenüü Blokid tekstiks. Nõustuge kuvatava hoiatuskastiga. Nüüd kustutage kõik, mida näete, välja arvatud selle sammu kolmanda pildi tekst.

Muutujad

Alustuseks peame määrama mõned muutujad, et muuta meie kood tõeliselt tõhusaks.

Muutujad on nagu ämbrid, kuhu mahub ainult üks objekt (C ++ on see, mida me nimetame objektorienteeritudks). Jah, meil on massiive, kuid need on erilised muutujad ja me räägime neist hiljem. Muutuja määramisel peame talle ütlema, mis tüüpi see on, seejärel andke sellele väärtus. See näeb välja selline:

int someVar = A0;

Niisiis määrasime muutuja ja andsime sellele tüübi int. Int on täisarv või täisarv.

"Aga te ei kasutanud täisarvu!", Kuulen teid ütlemas. See on tõsi.

Arduino teeb meie jaoks midagi erilist, et saaksime kasutada A0 täisarvuna, sest teises failis määratleb see A0 täisarvuna, nii et saame kasutada täisarvule viitamiseks konstanti A0, ilma et peaksime teadma, mis see on. Kui me lihtsalt kirjutaksime 0, viitaksime asendis 0 olevale digitaalsele tihvtile, mis ei töötaks.

Niisiis, meie koodi jaoks kirjutame lisatud anduri jaoks muutuja. Kuigi soovitan anda sellele lihtsa nime, on see teie otsustada.

Teie kood peaks välja nägema selline:

int lightSensor = A0;

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

Nüüd ütleme Arduinole, kuidas selle tihvti andurit käsitseda. Käivitame seadistuses funktsiooni, et määrata pin -režiim ja öelda Arduinole, kust seda otsida.

int lightSensor = A0;

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

funktsioon pinMode ütleb Arduinole, et tihvti (A0) kasutatakse sisendpistikuna. Pange tähele muutujate ja funktsioonide nimede jaoks camelCaseUsed (vt iga esimene täht on suurtähtedega, kuna selles on küürud, seega … kaamel …!). See on kokkulepe ja sellega on hea harjuda.

Lõpuks kasutame andmete hankimiseks funktsiooni analogRead.

int lightSensor = A0;

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

Näete, et salvestasime näidu muutujale. See on oluline, kuna peame selle printima. Kasutame jadakogule printimiseks jadaraamatukogu (raamatukogu on kood, mille saame oma koodile lisada, et meil oleks kiirem kirjutada, lihtsalt nimetades seda selle määratluse järgi).

int lightSensor = A0;

void setup () {// Määra pin -režiimid pinMode (lightSensor, INPUT); // Lisa jadakogu Serial.begin (9600); } void loop () {// Anduri lugemine int reading = analogRead (lightSensor); // Prindi väärtus monitorile Serial.print ("Light:"); Serial.println (lugemine); // viivitada järgmist tsüklit 3 sekundilise viivitusega (3000); }

Paar uut asja! Esiteks näete neid:

// See on kommentaar

Me kasutame kommentaare, et öelda teistele inimestele, mida meie kood teeb. Peate neid sageli kasutama. Kompilaator ei loe neid ja teisendab need koodiks.

Nüüd lisasime reaga ka seeriaraamatukogu

Serial.begin (9600)

See on näide funktsioonist, mis võtab argumendi. Te nimetasite raamatukogu seriaaliks, seejärel käivitasite funktsiooni (me teame, et see on ümarate klambrite tõttu) ja andsite argumendina täisarvu, määrates seeriafunktsiooni väärtuseks 9600baud. Ärge muretsege, miks - lihtsalt teadke, et see töötab praegu.

Järgmisena printisime jadamonitorile. Kasutasime kahte funktsiooni:

// See prindib seeriasse ilma reavaheteta (sisestus lõpus)

Serial.print ("Valgus:"); // See paneb reavahe sisse, nii et iga kord, kui me loeme ja kirjutame, läheb see uuele reale Serial.println (lugemine);

Oluline on näha, et igal neist on oma eesmärk. Veenduge, et stringid kasutaksid jutumärke ja jätaksite koolonist tühiku. See aitab kasutajal lugeda.

Lõpuks kasutasime viivitusfunktsiooni, et aeglustada silmust ja panna see lugema ainult üks kord iga kolme sekundi tagant. See on kirjutatud tuhandete sekunditega. Muutke see lugemiseks ainult üks kord iga 5 sekundi järel.

Suurepärane! Lähme!

6. samm: simulatsioon

Simulatsioon
Simulatsioon
Simulatsioon
Simulatsioon
Simulatsioon
Simulatsioon

Simulatsiooni käivitamisega kontrollige alati, kas asjad toimivad. Selle vooluahela jaoks peate ka simulaatori avama, et kontrollida selle toimimist ja oma väärtusi.

Alustage simulatsiooni ja kontrollige jadamonitori. Muutke valgusanduri väärtust, klõpsates sellel ja muutes väärtust liuguri abil. Samuti peaksite nägema väärtuste muutumist jadamonitoris. Kui ei, või kui vajutate nuppu Simulatsiooni käivitamine, kuvatakse tõrkeid, minge ettevaatlikult tagasi ja kontrollige kogu oma koodi.

  • Keskenduge punasele silumisaknas näidatud ridadele, mis teile esitatakse.
  • Kui teie kood on õige ja simulatsioon ikka ei tööta, kontrollige juhtmestikku.
  • Laadige leht uuesti - teil võib olla seotud süsteemi/serveri viga.
  • Raputage rusikat arvuti poole ja kontrollige uuesti. Seda teevad kõik programmeerijad. Kõik.. Aeg.

Samm: ühendage temperatuuriandur juhtmega

Ühendage temperatuuriandur juhtmega
Ühendage temperatuuriandur juhtmega

Eeldan, et olete praegu õigel teel. Jätkake ja ühendage temperatuuriandur, nagu pildil soovitatud. Pange tähele 5V ja GND juhtmete paigutamist samasse ruumi kui valgusti juhtmed. See on okei. See on nagu paralleelring ja ei tekita simulaatoris probleeme. Tegelikus vooluringis peaksite parema toitehalduse ja ühenduste tagamiseks kasutama katkestusplaati või kilpi.

Nüüd värskendame koodi.

Temperatuurianduri kood

See on natuke keerulisem, kuid ainult seetõttu, et peame näidu teisendamiseks arvutama. Pole hullu.

int lightSensor = A0;

int tempSensor = A1; void setup () {// Määra pin -režiimid pinMode (lightSensor, INPUT); // Lisa jadakogu Serial.begin (9600); } void loop () {// Tempoandur // Kahe muutuja loomine ühele reale - oh efektiivsust! // Float var kümnendkoha ujukipinge salvestamiseks, kraadC; // Lugege tihvti väärtust ja teisendage see väärtuseks 0 - 5 // Põhimõtteliselt pinge = (5/1023 = 0,004882814); pinge = (analooglugemine (tempSensor) * 0,004882814); // Teisenda kraadideks C kraadidC = (pinge - 0,5) * 100; // Trüki jadamonitorile Serial.print ("Temp:"); Jadaprint (kraadidC); Serial.println ("oC"); // Anduri lugemine int reading = analogRead (lightSensor); // Prindi väärtus monitorile Serial.print ("Light:"); Serial.println (lugemine); // viivitada järgmist tsüklit 3 sekundilise viivitusega (3000); }

Olen koodi uuendanud. Käime neist individuaalselt läbi.

Esiteks lisasin rea

int tempSensor = A1;

Täpselt nagu lightSensor, pean ka selle väärtuse muutujale salvestama, et seda hiljem hõlbustada. Kui ma peaksin selle anduri asukohta muutma (näiteks tahvli uuesti ühendama), siis pean muutma ainult ühte koodirida, mitte otsima kogu koodibaasi, et muuta A0 või A1 jne.

Seejärel lisasime rea, et salvestada näit ja temperatuur ujukisse. Pange tähele kahte muutujat ühel real.

ujukpinge, kraadC;

See on tõesti kasulik, kuna see vähendab kirjutatavate ridade arvu ja kiirendab koodi. Siiski võib vigade leidmine olla raskem.

Nüüd teeme lugemise ja salvestame selle, seejärel teisendame selle oma väljundväärtuseks.

pinge = (analooglugemine (tempSensor) * 0,004882814);

kraadiC = (pinge - 0,5) * 100;

Need kaks rida tunduvad keerulised, kuid esimesena võtame näidu ja korrutame selle 0,004 -ga … sest see teisendab 1023 (analoognäitaja tagastab selle väärtuse) lugemiseks viiest.

Teine rida korrutab selle näidu 100 -ga, et teisaldada koma. See annab meile temperatuuri. Korralik!

8. samm: testimine ja kontrollimine

Testimine ja kontrollimine
Testimine ja kontrollimine

Kui kõik plaanitakse, peaks teil olema töötav ring. Testige simulatsiooni käivitamise ja jadamonitori abil. Kui teil on vigu, kontrollige, kontrollige uuesti ja raputage rusikat.

Kas saite hakkama? Jagage ja rääkige meile oma lugu!

See on teie jaoks sisseehitatud viimane vooluring, et saaksite lõplikku loomingut mängida/testida. Täname õpetuse lõpetamise eest!

Soovitan: