Satura rādītājs:
- 1. darbība: pievienojiet dažus komponentus
- 2. darbība. Piezīme par maizes dēļiem
- 3. darbība: pievienojiet divus sensorus
- 4. solis: gaismjutīgs sensors
- 5. darbība: sāciet kodu
- 6. darbība: simulācija
- 7. solis: pievienojiet temperatūras sensoru
- 8. darbība: pārbaude un pārbaude
Video: Arduino datu reģistrators: 8 soļi (ar attēliem)
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:56
Šajā apmācībā mēs izveidosim vienkāršu datu reģistrētāju, izmantojot Arduino. Lieta ir iemācīties pašus Arduino lietošanas pamatus, lai iegūtu informāciju un drukātu terminālī. Mēs varam izmantot šo pamata iestatījumu, lai pabeigtu virkni uzdevumu.
Lai sāktu:
Jums būs nepieciešams Tinkercad (www.tinkercad.com) konts. Dodieties un reģistrējieties, izmantojot savu e -pasta vai sociālo mediju kontu.
Piesakoties, jūs nokļūsit Tinkercad informācijas panelī. Kreisajā pusē noklikšķiniet uz "Ķēdes" un atlasiet "Izveidot jaunu ķēdi". Sāksim!
Pilnu failu varat atrast vietnē TInkercad Circuits - Paldies, ka pārbaudījāt!
1. darbība: pievienojiet dažus komponentus
Jums būs nepieciešami daži pamata komponenti. Tie ietver:
- Arduino dēlis
- Maizes dēlis
Pievienojiet tos, meklējot tos un noklikšķiniet, velkot tos uz vidējo apgabalu.
Novietojiet maizes dēli virs Arduino. Tas atvieglo savienojumu apskatīšanu vēlāk.
2. darbība. Piezīme par maizes dēļiem
Maizes dēlis ir ļoti noderīga ierīce ātrai prototipēšanai. Mēs to izmantojam, lai savienotu komponentus. Jāatzīmē dažas lietas.
- Punkti ir savienoti vertikāli, bet līnija vidū atdala šo savienojumu no augšējās un apakšējās kolonnas.
- Kolonnas nav savienotas no kreisās uz labo pusi, tāpat kā visā rindā. Tas nozīmē, ka visas sastāvdaļas ir jāsavieno pāri kolonnām, nevis vertikāli.
- Ja jums ir jāizmanto pogas vai slēdži, pievienojiet tos pauzei vidū. Mēs to apmeklēsim vēlāk apmācībā.
3. darbība: pievienojiet divus sensorus
Divi mūsu izmantotie sensori ir gaismjutīgs sensors un temperatūras sensors.
Šie sensori novērtē gaismu un temperatūru. Mēs izmantojam Arduino, lai nolasītu vērtību un parādītu to Arduino sērijas monitorā.
Atrodiet un pievienojiet divus sensorus. Pārliecinieties, vai tie ir novietoti pāri maizes dēļa kolonnām. Novietojiet starp tām pietiekami daudz vietas, lai būtu vieglāk tās redzēt.
4. solis: gaismjutīgs sensors
- Gaismas jutīgajam sensoram pievienojiet vadu no 5 V tapas uz Arduino tai pašai kolonnai kā labās kājas maizes dēļa daļā. Mainiet vadu krāsu uz sarkanu.
- Savienojiet kreiso kāju caur tapu tajā pašā kolonnā ar A0 (A-nulle) tapu Arduino. Šī ir analogā tapa, kuru mēs izmantosim, lai nolasītu vērtību no sensora. Krāsojiet šo vadu dzeltenā krāsā vai kaut ko citu, nevis sarkanu vai melnu.
-
Novietojiet rezistoru (meklējiet un noklikšķiniet un velciet) uz tāfeles. Tas pabeidz ķēdi un aizsargā sensoru un tapu.
- Pagrieziet to, lai tas iet pāri kolonnām.
- Savienojiet vienu kāju ar maizes dēļa labo kāju kolonnu
-
Novietojiet vadu no otrā rezistora gala līdz zemei
Mainiet vadu krāsu uz melnu
- Vēlreiz pārbaudiet visus savienojumus. Ja kaut kas nav īstajā vietā, tas nedarbosies pareizi.
5. darbība: sāciet kodu
Apskatīsim šī komponenta kodu.
Vispirms šajā solī apskatiet trešo attēlu. Tajā ir kods ar divām funkcijām:
anulēts iestatījums ()
tukša cilpa ()
Sistēmā C ++ visas funkcijas nodrošina atgriešanās veidu, pēc tam nosaukumu, pēc tam divas apaļās iekavas, kuras var izmantot, lai nodotu argumentus, parasti kā mainīgos. Šajā gadījumā atgriešanas veids nav derīgs vai nav. Nosaukums ir iestatīts, un funkcijai nav argumentu.
Iestatīšanas funkcija darbojas vienu reizi, kad Arduino sāk darboties (kad to pievienojat vai pievienojat baterijas).
Cilpas funkcija darbojas nemainīgā cilpā no milisekundes, kad iestatīšanas funkcija ir pabeigta.
Viss, ko ievietojat cilpas funkcijā, darbosies, kad darbojas Arduino. Viss ārpusē darbosies tikai pēc izsaukuma. Piemēram, ja mēs definētu un izsauktu citu funkciju ārpus cilpas.
Uzdevums
Atveriet paneli Kods ar pogu Tinkercad. Mainiet nolaižamo izvēlni Bloki uz Teksts. Piekrītiet parādītajam brīdinājuma lodziņam. Tagad izdzēsiet visu, ko redzat, izņemot tekstu trešajā attēlā.
Mainīgie
Lai sāktu, mums ir jāpiešķir daži mainīgie, lai padarītu mūsu kodu patiešām efektīvu.
Mainīgie ir kā spaiņi, kuros var ietilpt tikai viens objekts (C ++ ir tas, ko mēs saucam par objektorientētu). Jā, mums ir masīvi, taču tie ir īpaši mainīgie, un mēs par tiem runāsim vēlāk. Kad mēs piešķiram mainīgo, mums tas jāpasaka, kāda veida tas ir, un pēc tam piešķiriet tam vērtību. Tas izskatās šādi:
int someVar = A0;
Tātad, mēs piešķīrām mainīgo un piešķīrām tam veidu int. Int ir vesels skaitlis vai vesels skaitlis.
"Bet jūs neizmantojāt veselu skaitli!", Dzirdu jūs sakām. Tā ir taisnība.
Arduino mums dara kaut ko īpašu, lai mēs varētu izmantot A0 kā veselu skaitli, jo citā failā tas definē A0 kā veselu skaitli, tāpēc mēs varam izmantot A0 konstanti, lai atsauktos uz šo veselu skaitli, nezinot, kas tas ir. Ja mēs vienkārši ierakstītu 0, mēs atsauktos uz ciparu tapu 0 pozīcijā, kas nedarbotos.
Tātad, mūsu kodam mēs uzrakstīsim mainīgo sensoram, kuru esam pievienojuši. Lai gan es iesaku tam piešķirt vienkāršu nosaukumu, tas ir atkarīgs no jums.
Jūsu kodam vajadzētu izskatīties šādi:
int lightSensor = A0;
void setup () {} void loop () {}
Tagad pastāstīsim Arduino, kā rīkoties ar šīs tapas sensoru. Mēs iestatīšanas laikā darbināsim funkciju, lai iestatītu tapas režīmu un pastāstītu Arduino, kur to meklēt.
int lightSensor = A0;
void setup () {pinMode (lightSensor, INPUT); } void loop () {}
funkcija pinMode paziņo Arduino, ka tapa (A0) tiks izmantota kā IEVADES tapa. Ievērojiet mainīgo un funkciju nosaukumus (skatiet katru pirmo burtu ar lielo burtu, jo tajā ir kupris, tātad… kamielis …!). Šī ir konvencija un labi pierast.
Visbeidzot, lai iegūtu dažus datus, izmantosim funkciju analogRead.
int lightSensor = A0;
void setup () {pinMode (lightSensor, INPUT); } void loop () {int reading = analogRead (lightSensor); }
Jūs redzēsit, ka mēs saglabājām rādījumus mainīgā. Tas ir svarīgi, jo mums tas ir jāizdrukā. Izmantosim sērijveida bibliotēku (bibliotēka ir kods, ko mēs varam pievienot savam kodam, lai mēs varētu ātrāk rakstīt, vienkārši nosaucot to pēc definīcijas), lai to izdrukātu sērijas monitorā.
int lightSensor = A0;
void setup () {// Iestatīt tapas režīmus pinMode (lightSensor, INPUT); // Pievienot sērijveida bibliotēku Serial.begin (9600); } void loop () {// Lasīt sensoru int reading = analogRead (lightSensor); // Drukājiet vērtību monitorā Serial.print ("Light:"); Serial.println (lasīšana); // aizkavēt nākamo cilpu par 3 sekunžu aizkavi (3000); }
Dažas jaunas lietas! Pirmkārt, jūs redzēsit šos:
// Šis ir komentārs
Mēs izmantojam komentārus, lai pastāstītu citiem, ko dara mūsu kods. Jums vajadzētu tos bieži lietot. Kompilators tos nelasīs un pārvērtīs kodā.
Tagad mēs arī pievienojām sērijas bibliotēku ar rindiņu
Serial.begin (9600)
Šis ir funkcijas piemērs, kas izmanto argumentu. Jūs nosaucāt bibliotēku par sēriju, pēc tam izpildījāt funkciju (mēs zinām, ka tā ir funkcija apaļo lenču dēļ) un kā argumentu ievadījāt veselu skaitli, nosakot, ka sērijas funkcija darbojas 9600baud. Neuztraucieties, kāpēc - vienkārši ziniet, ka tas darbojas.
Nākamā lieta, ko mēs darījām, bija drukāt uz seriālā monitora. Mēs izmantojām divas funkcijas:
// Šis izdrukā sēriju bez rindas pārtraukuma (ievadiet beigās)
Serial.print ("Gaisma:"); // Šis ievieto rindas pārtraukumu, tāpēc katru reizi, kad lasām un rakstām, tas tiek ievadīts jaunā rindā Serial.println (lasīšana);
Ir svarīgi redzēt, ka katram ir savs mērķis. Pārliecinieties, vai jūsu virknēs ir izmantotas pēdiņas, un atstājiet atstarpi aiz kolu. Tas palīdz lietotājam lasīt.
Visbeidzot, mēs izmantojām aizkaves funkciju, lai palēninātu mūsu cilpu un padarītu to lasāmu tikai reizi trijās sekundēs. Tas ir uzrakstīts tūkstošiem sekundes. Mainiet to uz lasīšanu tikai reizi 5 sekundēs.
Lieliski! Braucam!
6. darbība: simulācija
Vienmēr pārbaudiet, vai viss darbojas, palaižot simulāciju. Šai shēmai jums arī jāatver simulators, lai pārbaudītu tā darbību un pārbaudītu vērtības.
Sāciet simulāciju un pārbaudiet sērijas monitoru. Mainiet gaismas sensora vērtību, noklikšķinot uz tā un mainot vērtību, izmantojot slīdni. Jums vajadzētu redzēt vērtību izmaiņas arī sērijas monitorā. Ja tas nenotiek vai ja, nospiežot pogu Sākt simulāciju, tiek parādītas kļūdas, uzmanīgi atgriezieties un pārbaudiet visu kodu.
- Koncentrējieties uz rindām, kas norādītas sarkanajā atkļūdošanas logā, kas jums tiks parādīts.
- Ja jūsu kods ir pareizs un simulācija joprojām nedarbojas, pārbaudiet elektroinstalāciju.
- Atkārtoti ielādējiet lapu - iespējams, radusies nesaistīta sistēmas/servera kļūda.
- Sakratiet dūri pie datora un pārbaudiet vēlreiz. Visi programmētāji to dara. Visi.. Laiks.
7. solis: pievienojiet temperatūras sensoru
Es pieņemu, ka jūs tagad esat uz pareizā ceļa. Iet uz priekšu un pievienojiet temperatūras sensoru, kā norādīts attēlā. Ievērojiet 5V un GND vadu novietojumu tajā pašā vietā, kur tie ir paredzēti gaismai. Tas ir labi. Tas ir kā paralēla ķēde un neradīs problēmas simulatorā. Faktiskajā shēmā, lai nodrošinātu labāku strāvas pārvaldību un savienojumus, jums vajadzētu izmantot sadalīšanas paneli vai vairogu.
Tagad atjaunināsim kodu.
Temperatūras sensora kods
Tas ir nedaudz sarežģītāk, bet tikai tāpēc, ka mums ir jāveic neliela matemātika, lai pārvērstu rādījumu. Tas nav pārāk slikti.
int lightSensor = A0;
int tempSensor = A1; void setup () {// Iestatīt tapas režīmus pinMode (lightSensor, INPUT); // Pievienot sērijveida bibliotēku Serial.begin (9600); } void loop () {// Temperatūras sensors // Divu mainīgo izveide vienā rindā - ak efektivitāte! // Float var, lai saglabātu decimālo pludiņa spriegumu, grādosC; // Nolasiet tapas vērtību un pārveidojiet to par rādījumu no 0 līdz 5 // Būtībā spriegums = (5/1023 = 0,004882814); spriegums = (analogRead (tempSensor) * 0,004882814); // Pārvērst par grādiem C grādiC = (spriegums - 0,5) * 100; // Drukāt uz seriālo monitoru Serial.print ("Temp:"); Sērijas nospiedums (grādi C); Serial.println ("oC"); // Nolasīt sensoru int reading = analogRead (lightSensor); // Drukājiet vērtību uz monitora Serial.print ("Light:"); Serial.println (lasīšana); // aizkavēt nākamo cilpu par 3 sekunžu aizkavi (3000); }
Esmu veicis dažus koda atjauninājumus. Izstaigāsim tos individuāli.
Pirmkārt, es pievienoju rindu
int tempSensor = A1;
Tāpat kā lightSensor, man ir jāsaglabā vērtība mainīgajā, lai vēlāk būtu vieglāk. Ja man būtu jāmaina šī sensora atrašanās vieta (piemēram, jāpārinstalē tāfele), tad man ir jāmaina tikai viena koda rinda, nevis jāmeklē visā koda bāzē, lai mainītu A0 vai A1 utt.
Pēc tam mēs pievienojām rindiņu, lai lasījumu un temperatūru saglabātu pludiņā. Ievērojiet divus mainīgos vienā rindā.
pludiņa spriegums, grādi C;
Tas ir patiešām noderīgi, jo tas samazina rakstāmo rindu skaitu un paātrina kodu. Tomēr var būt grūtāk atrast kļūdas.
Tagad mēs nolasīsim un saglabāsim to, pēc tam konvertēsim to uz mūsu izvades vērtību.
spriegums = (analogRead (tempSensor) * 0,004882814);
grādiC = (spriegums - 0,5) * 100;
Šīs divas rindiņas izskatās grūti, bet pirmajā vietā mēs ņemam nolasījumu un reizinām to ar 0,004 … jo tas pārvērš 1023 (analogais lasījums atgriež šo vērtību) rādījumā no 5.
Otrā rinda reizina šo rādījumu ar 100, lai pārvietotu decimālo zīmi. Tas dod mums temperatūru. Kārtīgi!
8. darbība: pārbaude un pārbaude
Lai viss būtu plānots, jums vajadzētu būt darba ķēdei. Pārbaudiet, veicot simulāciju un izmantojot seriālo monitoru. Ja jums ir kļūdas, pārbaudiet, pārbaudiet vēlreiz un sakratiet dūri.
Tev izdevās? Kopīgojiet un pastāstiet mums savu stāstu!
Šī ir pēdējā iebūvētā shēma, lai jūs varētu atskaņot/pārbaudīt galīgo izveidi. Paldies, ka pabeidzāt apmācību!
Ieteicams:
Parastais GPS (EEPROM datu reģistrators): 5 soļi
GPS Para Norma (datu reģistrators EEPROM): vienkāršs GPS mājdzīvnieku datu reģistrators, kura pamatā ir arduino un EEPROM ieraksts ================================ ======================== Sencillo datalogger GPS para mascotas basado en arduino y grabacion en memoria EEPROM
Aļaskas datu reģistrators: 5 soļi (ar attēliem)
Aļaskas datu reģistrators: Aļaska atrodas uz klimata pārmaiņu progresēšanas robežas. Tā unikālā atrašanās vieta ar diezgan neskartu ainavu, kas apdzīvota ar dažādām akmeņogļu raktuvju kanārijputniņām, paver daudzas izpētes iespējas. Mūsu draugs Montijs ir arheologs, kurš palīdz
Arduino datu reģistrators ar RTC, Nokia LCD un kodētāju: 4 soļi
Arduino datu reģistrators ar RTC, Nokia LCD un kodētāju: Daļas: Arduino Nano vai Arduino Pro Mini Nokia 5110 84x48 LCD DHT11 temperatūras/mitruma sensors DS1307 vai DS3231 RTC modulis ar iebūvētu AT24C32 EEPROM Lēts kodētājs ar 3 atvienojošiem kondensatoriem un lv
Raspberry Pi Zero W datu reģistrators: 8 soļi (ar attēliem)
Raspberry Pi Zero W datu reģistrators: izmantojot Raspberry Pi Zero W, jūs varat izveidot lētu un viegli lietojamu datu reģistratoru, ko var savienot ar vietējo wifi tīklu vai kalpot kā piekļuves punktu laukā, kas ļauj lejupielādēt datus bezvadu režīmā, izmantojot viedtālruni. Es prezentēju
EAL-Industri4.0-RFID datu paraugu ņemšanas datu bāze: 10 soļi (ar attēliem)
EAL-Industri4.0-RFID datu paraugu ņemšana līdz datubāzei: Dette projekt omhandler opsamling af v æ gtdata, registreering af identiteter vha. RFID, satraucoši dati un lv MySQL datu bāze. mezgls RED, samt fremvisning og behandling af de opsamlede data i et C# program i form af en Windows Form Application