» Elektronika » Arduino »Arduino iesācējiem

Arduino iesācējiem


Arduino ir mikrokontrolleru plate, kuru var programmēt, lai vadītu ārējās ierīces. Tas mijiedarbojas ar ārpasauli, izmantojot sensorus, motorus, gaismas diodes, skaļruņus ... un pat internetu, padarot to par elastīgu platformu dažādiem projektiem. Mikrokontrolleru ir diezgan maz, taču Arduino ir populārs tāpēc, ka dažādi projekti ir ļoti aktīvi izlikti un apspriesti internetā. Ja meklējat vietnē google vai youtube, jūs atradīsit miljoniem ideju un informācijas, lai pats sāktu izpētīt Arduino.
Pat ja jums nav pieredzes mikrokontrolleru programmēšanā - ar Arduino jūs ātri iemācīsities un iemācīsities kaut ko par elektronika izmantojot eksperimentus.

Kas jums nepieciešams, lai sāktu?
Arduino Uno- 1gab
USB kabelis - 1gab
Džemperi 1gab
1gab izstrādes valde
Sarkans LED 4 gab
220 omi rezistors 4gab
Rezistors 10 istaba 1 gab
Poga bez fiksācijas
Potenciometrs
RGB gaismas diode ar parasto katodu

To visu var iegādāties vietējā radio veikalā vai pasūtīt internetā.

Lai demonstrētu un simulētu elektriskās ķēdes, tika izmantots tiešsaistes simulators.

Šis simulators vislabāk darbojas pārlūkā Chrome.
Sīkāk apskatīsim Arduino.

Arduino nav liels dators, pie kura var pieslēgties ārējās shēmas. Arduino Uno izmanto Atmega 328P
Šī ir lielākā mikroshēma uz tāfeles. Šī mikroshēma izpilda programmas, kas tiek glabātas tās atmiņā. Programmu var lejupielādēt caur usb, izmantojot Arduino IDE. USB ports arī nodrošina arduino enerģiju.

Ir atsevišķs strāvas savienotājs. Dēlī ir divas izejas, marķētas ar 5v un 3,3v, kas ir vajadzīgas dažādu ierīču barošanai. Jūs atradīsit arī tapas, kas apzīmētas kā GND. Tie ir zemes vadi (zeme ir 0 V). Arduino platformai ir arī 14 digitālās izejas (tapas), kas apzīmētas ar cipariem no 0 līdz 13, kuras ir savienotas ar ārējiem mezgliem un kurām ir divi stāvokļi - augsts vai zems (ieslēgts vai izslēgts). Šie kontakti var darboties kā izejas vai kā izejas, t.i. viņi var vai nu pārsūtīt dažus datus un kontrolēt ārējās ierīces, vai arī saņemt datus no ierīcēm. Šādi tabulas secinājumi ir apzīmēti ar A0-A5. Tās ir analogās ieejas, kas var saņemt datus no dažādiem sensoriem. Tas ir īpaši ērti, ja nepieciešams izmērīt diapazonu, piemēram, temperatūru. Analogajām ieejām ir papildu funkcijas, kuras var aktivizēt atsevišķi.


Kā izmantot maizes dēli.

Pirms visu kopā lodēšanas, lai īslaicīgi savienotu detaļas un pārbaudītu ierīces darbību, ir nepieciešams maizes dēlis.
Visi šie piemēri ir apkopoti uz tāfeles tā, lai jūs varētu ātri veikt izmaiņas shēmā un atkārtoti izmantot detaļas, neraizējoties par lodēšanu.

Maizes plāksnei ir caurumu rindas, kurās varat ievietot detaļas un vadus. Daži no šiem caurumiem ir elektriski savienoti viens ar otru.

Divas augšējās un apakšējās rindas ir savienotas virknē pa visu dēli. Šīs rindas tiek izmantotas ķēdes barošanai. Tas var būt 5v vai 3,3v, bet jebkurā gadījumā pirmais, kas jums jādara, ir savienot 5v un GND ar maizes dēli, kā parādīts attēlā. Dažreiz šos rindu savienojumus var pārtraukt dēļa vidū, tad, ja nepieciešams, varat tos savienot, kā parādīts attēlā.




Atlikušie caurumi, kas atrodas dēļa vidū, ir sagrupēti piecos caurumos. Tos izmanto, lai savienotu ķēdes daļas.

Pirmais, ko mēs savienojam ar mūsu mikrokontrolleri, ir gaismas diode. Elektriskā savienojuma shēma ir parādīta attēlā.


Kāpēc kontūrā ir nepieciešams rezistors? Šajā gadījumā tas ierobežo strāvu, kas iet caur LED. Katra gaismas diode ir paredzēta noteiktai strāvai, un, ja šī strāva ir lielāka, tad gaismas diode neizdosies. Uzziniet, kādai vērtībai vajadzētu būt rezistoram, izmantojot Ohma likumu. Tiem, kuri nezina vai ir aizmirsuši, Ohmas likumā teikts, ka pastāv lineāra strāvas atkarība no sprieguma. Tas ir, jo vairāk mēs pielietosim pretestībai spriegumu, jo vairāk strāvas plūdīs caur to.
V = I * R
Kur V- spriegums visā rezistorā
Es- strāva caur rezistoru
R- jāatrod pretestība.
Pirmkārt, mums jānoskaidro spriegums visā rezistorā. Lielākajai daļai 3 mm vai 5 mm gaismas diožu, kuras jūs izmantosit, ir 3 V darba spriegums. Tātad, uz rezistora mums ir jāatmaksā 5-3 = 2v.

Tad mēs aprēķinām strāvu, kas iet caur rezistoru.
Lielākā daļa 3 un 5 mm gaismas diožu mirdz ar pilnu spilgtumu ar strāvu 20 mA. Vairāk nekā šī strāva var tos atslēgt, un mazāka stipruma strāva samazina to spilgtumu, neradot nekādu kaitējumu.

Tātad, mēs vēlamies ieslēgt LED 5v ķēdē tā, lai tā strāva būtu 20mA. Tā kā visas detaļas ir iekļautas vienā ķēdē, rezistoram būs arī strāva 20 mA.
Mēs iegūstam
2 V = 20 mA * R
2V = 0,02A * R
R = 100 omi

100 omi ir minimālā pretestība, labāk ir izmantot nedaudz vairāk, jo gaismas diodēm ir zināmas variācijas.
Šajā piemērā tiek izmantots 220 omi rezistors. Tikai tāpēc, ka autoram to ir daudz: aci:.

Ievietojiet gaismas diodi caurumos paneļa vidū tā, lai tā garais spailis būtu savienots ar vienu no rezistora spailēm. Pievienojiet rezistora otro galu 5 V, un otro LED izvadi pievienojiet GND. LED vajadzētu iedegties.

Lūdzu, ņemiet vērā, ka ir atšķirība, kā savienot gaismas diodi. Strāva plūst no garāka termināļa uz īsāku. Diagrammā var iedomāties, ka strāva plūst tajā virzienā, kur ir novirzīts trīsstūris. Mēģiniet pagriezt gaismas diodi, un jūs redzēsit, ka tas neiedegsies.

Bet kā jūs savienojat rezistoru, vispār nav atšķirības. Varat to apgriezt vai mēģināt savienot ar otru gaismas diodes izeju, tas neietekmēs ķēdes darbību. Tas joprojām ierobežos strāvu caur LED.

Arduino skices anatomija.

Programmas Arduino sauc par skici. Tās sastāv no divām galvenajām funkcijām. Funkcija iestatīšana un funkcija cilpa
šajā funkcijā jūs iestatīsit visus pamata iestatījumus. Kādi secinājumi darbosies ar ieeju vai izvadi, kuras bibliotēkas savienot, inicializēt mainīgos. Funkcija Iestatīšana () Tas sākas tikai vienu reizi skices laikā, kad sākas programma.
šī ir galvenā funkcija, kas tiek izpildīta pēc iestatīšana (). Faktiski šī ir pati programma. Šī funkcija darbosies uz nenoteiktu laiku, līdz izslēgsit barošanu.

Arduino mirgojoša gaismas diode




Šajā piemērā mēs savienosim ķēdi ar gaismas diodi ar vienu no Arduino digitālajiem tapām un, izmantojot programmu, to ieslēgsim un izslēgsim, kā arī iemācīsities vairākas noderīgas funkcijas.



- šī funkcija tiek izmantota iestatīšana () programmas daļas un kalpo, lai inicializētu secinājumus, kurus izmantosit kā ievadi (IEVADS) vai iziet (REZULTĀTS). Jūs nevarat lasīt vai rakstīt datus no tapas, kamēr neesat to attiecīgi iestatījis pinMode. Šai funkcijai ir divi argumenti: pinNumber- Šis ir PIN kods, kuru izmantosit.

Režīms- nosaka, kā tapa darbosies. Pie ieejas (IEVADS) vai iziet (REZULTĀTS). Lai iedegtos gaismas diode, mums jāsniedz signāls No plkst Arduino Lai to izdarītu, mēs konfigurējam tapu, lai izietu.
- šī funkcija kalpo stāvokļa iestatīšanai (štats) pina (pinNumber). Ir divi galvenie stāvokļi (kopumā ir 3), viens ir Augsts, pin būs 5v, cits ir Zems un tapa būs 0v. Tātad, lai apgaismotu LED, mums ir jāiestata augsts līmenis tapai, kas savienota ar LED Augsts.

- kavēšanās. Kalpo programmas aizkavēšanai uz noteiktu laika posmu, izteiktu ms.
Zemāk ir kods, kura dēļ gaismas diode mirgo.
// LED mirgo

int ledPin = 7; // Arduino tapa, kurai ir pievienota gaismas diode

Nederīga iestatīšana () {
  pinMode (ledPin, OUTPUT); // iestatiet tapu kā EXIT
}

tukšs cilpa () {
  digitalWrite (ledPin, HIGH); // iedegas gaismas diode
  kavēšanās (1000); // kavēšanās 1000 ms (1 sek.)
  digitalWrite (ledPin, LOW); // Izslēdziet LED
  kavēšanās (1000); // jāgaida 1 sek
}


Neliels koda skaidrojums.
Rindas, kas sākas ar “//”, ir Arduino komentāri, kas tos ignorē.
Visas komandas beidzas ar semikolu, un, ja tās aizmirsīsit, tiks parādīts kļūdas ziņojums.

ledpinir mainīgais. Mainīgie tiek izmantoti programmās vērtību saglabāšanai. Šajā piemērā mainīgais ledpin kam piešķirta vērtība 7, tas ir Arduino PIN kods. Kad Arduino programmā sastopas virkni ar mainīgo ledpin , tā izmantos vērtību, kuru mēs iepriekš norādījām.
Tātad ierakstīt pinMode (ledPin, OUTPUT) līdzīgs ierakstam pinMode (7, OUTPUT).
Bet pirmajā gadījumā jums pietiek ar mainīgā mainīšanu, un tas mainīsies katrā rindiņā, kur tas tiek izmantots, un otrajā gadījumā, lai mainīgo mainītu, katrā komandā ir jāmaina pildspalvas.

pirmajā rindā norāda mainīgā veidu. Programmējot Arduino, ir svarīgi vienmēr deklarēt mainīgo veidu. Pagaidām jums tas jāzina tikai INT paziņo negatīvos un pozitīvos skaitļus.
Tālāk ir parādīts modelēšana skice. Nospiediet start, lai apskatītu shēmas darbību.



Kā gaidīts, gaismas diode izslēdzas un iedegas pēc vienas sekundes. Mēģiniet mainīt aizkavēšanos, lai redzētu, kā tā darbojas.

Vairāku gaismas diožu vadība.

Šajā piemērā jūs uzzināsit, kā vadīt vairākas gaismas diodes. Lai to izdarītu, uz dēļa uzstādiet vēl 3 gaismas diodes un pievienojiet tos Arduino rezistoriem un tapām, kā parādīts zemāk.



Lai pēc kārtas ieslēgtu un izslēgtu gaismas diodes, jums jāraksta šāda programma:
// Multi LED mirgo

int led1Pin = 4;
int led2Pin = 5;
int led3Pin = 6;
int led4Pin = 7;

Nederīga iestatīšana () {
  // iestatiet tapas kā EXIT
  pinMode (led1Pin, OUTPUT);
  pinMode (led2Pin, OUTPUT);
  pinMode (led3Pin, OUTPUT);
  pinMode (led4Pin, OUTPUT);
}

tukšs cilpa () {
  digitalWrite (led1Pin, HIGH); // iedegas gaismas diode
  kavēšanās (1000); // kavēšanās 1 sek
  digitalWrite (led1Pin, LOW); // izdzēsiet gaismas diodi
  kavēšanās (1000); // kavēšanās 1 sek

  // rīkojieties tāpat kā pārējiem 3 gaismas diodēm
  digitalWrite (led2Pin, HIGH); // iedegas gaismas diode
  kavēšanās (1000); // kavēšanās 1 sek
  digitalWrite (led2Pin, LOW); // izdzēsiet gaismas diodi
  kavēšanās (1000); // kavēšanās 1 sek

  digitalWrite (led3Pin, HIGH); // iedegas gaismas diode
  kavēšanās (1000); // kavēšanās 1 sek
  digitalWrite (led3Pin, LOW); // izdzēsiet gaismas diodi
  kavēšanās (1000); // kavēšanās 1 sek

  digitalWrite (led4Pin, HIGH); // iedegas gaismas diode
  kavēšanās (1000); // kavēšanās 1 sek
  digitalWrite (led4Pin, LOW); // izdzēsiet gaismas diodi
  kavēšanās (1000); // kavēšanās 1 sek
}


Šī programma darbosies lieliski, taču tas nav racionālākais risinājums. Kods ir jāmaina. Lai programma darbotos atkal un atkal, mēs izmantosim izsaukto konstrukciju.
Cikli ir ērti, ja viena un tā pati darbība ir jāatkārto vairākas reizes. Iepriekš minētajā kodā mēs atkārtojam līnijas

digitalWrite (led4Pin, HIGH);
kavēšanās (1000);
digitalWrite (led4Pin, LOW);
kavēšanās (1000); 

pilns skices kods pielikumā for.zip [720 b] (lejupielādes: 1410)

LED spilgtuma regulēšana

Dažreiz jums būs jāmaina gaismas diožu spilgtums programmā. To var izdarīt, izmantojot komandu analogWrite (). Šī komanda tik ātri ieslēdz un izslēdz gaismas diodi, ka acs neredz šo mirgošanu. Ja gaismas diode tiek ieslēgta pusi reizes un pusi izslēgta, tas vizuāli iedegsies pie puse no tā spilgtuma. To sauc par impulsa platuma modulāciju (angļu valodā PWM vai PWM). PWM tiek izmantots diezgan bieži, jo to var izmantot, lai kontrolētu “analogo” komponentu, izmantojot digitālo kodu. Ne visi Arduino tapas ir piemēroti šiem mērķiem. Tikai tie secinājumi, ap kuriem izdarīts šāds apzīmējums "~"Jūs to redzēsit blakus tapām 3,5,6,9,10,11.
Pievienojiet vienu no gaismas diodēm vienai no PWM izejām (autoram tas ir 9. piespraude). Tagad palaidiet skices mirgojošu gaismas diodi, bet vispirms nomainiet komandu digitalWrite () ieslēgts analogWrite (). analogWrite () Tam ir divi argumenti: pirmais ir tapa skaitlis, un otrais ir PWM vērtība (0–255), ko piemēro gaismas diodēm, tas būs to spilgtums, un elektromotoriem - griešanās ātrums. Zemāk ir dažādu LED spilgtuma kodu piemēri.
// Mainiet gaismas diodes spilgtumu

int ledPin = 9; // LED ir savienots ar šo tapu
Nederīga iestatīšana () {
  pinMode (ledPin, OUTPUT); // inicializē pin izvadīšanai
}

tukšs cilpa () {
  analogWrite (ledPin, 255); // pilns spilgtums (255/255 = 1)
  kavēšanās (1000); // pauze 1 sek
  digitalWrite (ledPin, LOW); // izslēdziet LED
  kavēšanās (1000); // pauze 1 sek

  analogWrite (ledPin, 191); // spilgtums pie 3/4 (191/255 ~ = 0,75)
  kavēšanās (1000); // pauze 1 sek
  digitalWrite (ledPin, LOW); // izslēdziet LED
  kavēšanās (1000); // pauze 1 sek

  analogWrite (ledPin, 127); // puse spilgtuma (127/255 ~ = 0,5)
  kavēšanās (1000); // pauze 1 sek
  digitalWrite (ledPin, LOW); // izslēdziet LED
  kavēšanās (1000); // pauze 1 sek

  analogWrite (ledPin, 63); // ceturtdaļas spilgtums (63/255 ~ = 0,25)
  kavēšanās (1000); // pauze 1 sek
  digitalWrite (ledPin, LOW); // izslēdziet LED
  kavēšanās (1000); // pauze 1 sek
}


Mēģiniet komandā mainīt PWM vērtību analogWrite ()lai redzētu, kā tas ietekmē spilgtumu.
Tālāk jūs uzzināsit, kā vienmērīgi pielāgot spilgtumu no pilnīgas līdz nullei. Jūs, protams, varat 255 reizes nokopēt koda gabalu
analogWrite (ledPin, spilgtums);
kavēšanās (5); // īsa kavēšanās
spilgtums = spilgtums + 1;

Bet, jūs saprotat - tas nebūs praktiski. Lai to izdarītu, vislabāk ir izmantot FOR cilpu, kas tika izmantota iepriekš.
Šajā piemērā izmantoti divi cikli, viens, lai samazinātu spilgtumu no 255 līdz 0
priekš (int spilgtums = 0; spilgtums = 0; spilgtums -) {

analogWrite (ledPin, spilgtums);
kavēšanās (5);

}

kavēšanās (5) izmanto, lai palēninātu spilgtuma pieauguma un krituma ātrumu 5 * 256 = 1280 ms = 1,28 sek.)
Pirmajā rindā tiek izmantots "spilgtums-"tā, ka spilgtuma vērtība samazinās par 1 katru reizi, kad cikls atkārtojas. Lūdzu, ņemiet vērā, ka cikls darbosies tik ilgi, kamēr spilgtums> = 0Zīmes aizstāšana > uz zīmes >= spilgtuma diapazonā mēs iekļāvām 0. Šī skice ir veidota zemāk.
// vienmērīgi mainiet spilgtumu

int ledPin = 9; // Ar šo tapu ir savienota gaismas diode

Nederīga iestatīšana () {
  pinMode (ledPin, OUTPUT); // inicializē tapu, lai izietu
}

tukšs cilpa () {
  // pakāpeniski palieliniet spilgtumu (no 0 līdz 255)
  priekš (int spilgtums = 0; spilgtums = 0; spilgtums -) {
    analogWrite (ledPin, spilgtums);
    kavēšanās (5);
  }

  kavēšanās (1000); // jāgaida 1 sek
 // vienmērīgi samaziniet spilgtumu (no 255 līdz 0)
  priekš (int spilgtums = 255; spilgtums> = 0; spilgtums -) {
    analogWrite (ledPin, spilgtums);
    kavēšanās (5);
  }

  kavēšanās (1000); // jāgaida 1 sek
}
}

Tas nav ļoti redzams, bet ideja ir skaidra.



RGB LED un Arduino

RGB LED faktiski ir trīs dažādu krāsu gaismas diodes vienā korpusā.



Ietverot dažādas gaismas diodes ar atšķirīgu spilgtumu, jūs varat apvienot un iegūt dažādas krāsas. Arduino, kur spilgtuma gradāciju skaits ir 256, tiek iegūtas 256 ^ 3 = 16581375 iespējamās krāsas. Patiesībā, protams, to būs mazāk.
Gaismas diode, kuru mēs izmantosim, ir parastais katods. T. i. visi trīs gaismas diodes ir strukturāli savienoti ar katodiem vienā spailē. Mēs savienosim šo tapu ar GND tapu. Atlikušie spaiļi caur ierobežojošajiem rezistoriem jāpievieno PWM spailēm. Autore izmantojusi secinājumus 9-11, tādējādi būs iespējams kontrolēt katru gaismas diodi atsevišķi. Pirmajā skicē parādīts, kā ieslēgt katru gaismas diodi atsevišķi.



// RGB LED - pārbaude

// tapu savienojumi
int sarkans = 9;
int zaļš = 10;
int zils = 11;

Nederīga iestatīšana () {
  pinMode (sarkans, OUTPUT);
  pinMode (zils, OUTPUT);
  pinMode (zaļš, OUTPUT);
}

tukšs cilpa () {
  // ieslēdziet / izslēdziet sarkano gaismas diodi
  digitalWrite (sarkans, AUGSTS);
  kavēšanās (500);
  digitalWrite (sarkans, LOW);
  kavēšanās (500);
  
  // ieslēdziet / izslēdziet zaļo gaismas diodi
  digitalWrite (zaļa, AUGSTA);
  kavēšanās (500);
  digitalWrite (zaļš, LOW);
  kavēšanās (500);

  // ieslēdziet / izslēdziet zilo gaismas diodi
  digitalWrite (zils, AUGSTS);
  kavēšanās (500);
  digitalWrite (zils, LOW);
  kavēšanās (500);
}


Šajā piemērā tiek izmantotas komandas analogWrite () un iegūt dažādas izlases gaismas diožu spilgtuma vērtības. Jūs redzēsit, ka dažādas krāsas mainās nejauši.
// RGB LED - izlases krāsas

// tapu savienojumi
int sarkans = 9;
int zaļš = 10;
int zils = 11;
Nederīga iestatīšana () {
  pinMode (sarkans, OUTPUT);
  pinMode (zils, OUTPUT);
  pinMode (zaļš, OUTPUT);
}
tukšs cilpa () {
  // izvēlēties nejaušu krāsu
  analogWrite (sarkans, nejaušs (256));
  analogWrite (zils, nejaušs (256));
  analogWrite (zaļš, nejaušs (256));
  kavēšanās (1000); // pagaidiet vienu sekundi
}


Nejaušs (256)-Atgriež nejaušu skaitli diapazonā no 0 līdz 255.
Pievienotajā failā ir skice, kas demonstrē vienmērīgu krāsu pāreju no sarkanas uz zaļu, pēc tam uz zilu, sarkanu, zaļu utt. pārejas.zip [373 b] (lejupielādes: 386)
Darbojas skices piemērs, taču ir ļoti daudz dublikāta koda. Jūs varat vienkāršot kodu, uzrakstot savu palīga funkciju, kas vienmērīgi mainīs vienu krāsu uz citu.
Lūk, kā tas izskatīsies: funkcija.zip [263 b] (lejupielādes: 420)
Apskatīsim funkcijas definīciju pa daļām. Funkcija izsaukta fader un tam ir divi argumenti. Katru argumentu atdala ar komatu, un tā tipam ir noteikts funkcijas definīcijas pirmajā rindā: tukšs faderis (int krāsa1, int krāsa2). Jūs redzat, ka abi argumenti tiek deklarēti kā int, un viņiem tiek doti vārdi krāsa1 un krāsa2 kā nosacītie mainīgie funkcijas noteikšanai. Nederīgs nozīmē, ka funkcija neatgriež nekādas vērtības, tā vienkārši izpilda komandas. Ja būtu nepieciešams uzrakstīt funkciju, kas atgriež reizināšanas rezultātu, tas izskatās šādi:
int reizinātājs (int numurs1, int numurs2) {

int produkts = skaitlis1 * skaitlis2;
atgriezt preci;

} 

Ievērojiet, kā mēs deklarējām Type int kā atgriešanās veids
tukšums.
Funkcijas iekšpusē ir komandas, kuras jūs jau izmantojāt iepriekšējā skicē, tikai tapu numuri tika aizstāti ar krāsa1 un krāsa2. Funkcija izsaukta fader, tā argumenti tiek aprēķināti kā 1. krāsa = sarkana un krāsa2 = zaļa. Arhīva pilna skice, izmantojot funkcijas funkcijas.zip [392 b] (lejupielādes: 320)

Poga

Nākamajā skicē tiks izmantota poga ar parasti atvērtiem kontaktiem bez nostiprināšanas.

Arduino iesācējiem

Tas nozīmē, ka, kamēr poga netiek nospiesta, strāva caur to neplūst, un pēc atlaišanas poga atgriežas sākotnējā stāvoklī.
Ķēdē papildus pogai tiek izmantots rezistors. Šajā gadījumā tas neierobežo strāvu, bet "velk" pogu uz 0v (GND). T. i. līdz poga tiek nospiesta uz Arduino tapu, kurai tā ir pievienota, līmenis būs zems. Rezistors, ko izmanto 10 kΩ ķēdē.

// definējiet pogas klikšķi
int pogaPin = 7;
Nederīga iestatīšana () {
  pinMode (buttonPin, INPUT); // inicializē ievades tapu
  Serial.begin (9600); // inicializē seriālo portu
}
tukšs cilpa () {
  if (digitalRead (buttonPin) == HIGH) {// ja tiek nospiesta poga
    Serial.println ("nospiests"); // drukāt "nospiests"
  } cits {
    Serial.println ("nespiests"); // citādi "unpressed"
  }
}

Šajā skicē ir vairākas jaunas komandas.
-Šai komandai tiek pārbaudīta izejas vērtība Augsta (augsts līmenis) un zems (zems). Iepriekš iestatīšanas laikā šī izvade ir jākonfigurē ievadei.
; // kur buttonPin ir PIN numurs, kur poga ir pievienota.
Sērijas ports ļauj jums nosūtīt Arduino ziņojumus uz datoru, savukārt pats kontrolieris vada programmu. Tas ir noderīgi programmas atkļūdošanai, ziņojumu sūtīšanai uz citām ierīcēm vai lietojumprogrammām. Lai iespējotu datu pārsūtīšanu caur seriālo portu (pazīstams arī kā UART vai USART), tas jāinicializē iestatīšanas laikā ()

Serial.begin () ir tikai viens arguments ir datu pārsūtīšanas ātrums starp Arduino un datoru.
skice, komandu izmanto, lai ekrānā parādītu ziņojumu Arduino IDE (Tools >> Serial Monitor).
- dizains ļauj kontrolēt programmas gaitu, apvienojot vairākas pārbaudes vienā vietā.
Ja (ja) digitalRead atgriežas HIGH, tad monitorā tiek parādīts vārds "nospiests". Pārējā gadījumā monitorā tiek parādīts vārds “izspiests”. Tagad varat mēģināt ieslēgt un izslēgt gaismas diodi, nospiežot tikai vienu taustiņu.
// pogas nospiešanas noteikšana ar LED izvadi
int pogaPin = 7;
int ledPin = 8;
Nederīga iestatīšana () {
  pinMode (buttonPin, INPUT); // šoreiz pogas pin iestatīsim kā INPUT
  pinMode (ledPin, OUTPUT);
  Sērijas.begin (9600);
}
tukšs cilpa () {
  if (digitalRead (buttonPin) == HIGH) {
    digitalWrite (ledPin, HIGH);
    Serial.println ("nospiests");
  } cits {
    digitalWrite (ledPin, LOW);
    Serial.println ("nespiests");
  }
}


Analogā ieeja.

analogRead ļauj nolasīt datus no viena Arduino analogā kontakta un parāda vērtību diapazonā no 0 (0 V) līdz 1023 (5 V). Ja spriegums pie analogās ieejas ir 2,5 V, tad tiks izdrukāts 2,5 / 5 * 1023 = 512
analogRead ir tikai viens arguments - tas ir analogās ieejas numurs (A0-A5). Nākamā skice nodrošina kodu sprieguma nolasīšanai no potenciometra. Lai to izdarītu, pievienojiet mainīgu rezistoru, galējos kontaktus ar tapām 5V un GND un vidējo tapu pie ieejas A0.


Palaidiet šo kodu un seriālajā monitorā paskatieties, kā vērtības mainās atkarībā no rezistora pogas griešanās.
// analogā ieeja

int potPin = A0; // potenciometra centrālā izeja ir savienota ar šo tapu

Nederīga iestatīšana () {
  // analogo tapu pēc noklusējuma iespiež ar ievadi, tāpēc inicializācija nav nepieciešama
  Sērijas.begin (9600);
}

tukšs cilpa () {
  int potVal = analogRead (potPin); // potVal ir skaitlis no 0 līdz 1023
  Serial.println (potVal);
}

Nākamajā skicē ir apvienota pogas noklikšķināšanas skice un LED spilgtuma vadības skice. Gaismas diode ieslēgsies no pogas, un potenciometrs kontrolēs mirdzuma spilgtumu.
// pogas nospiešanas noteikšana ar LED izvadi un mainīgu intensitāti
int pogaPin = 7;
int ledPin = 9;
int potPin = A0;
Nederīga iestatīšana () {
  pinMode (buttonPin, INPUT);
  pinMode (ledPin, OUTPUT);
  Sērijas.begin (9600);
}
tukšs cilpa () {
  if (digitalRead (buttonPin) == HIGH) {// ja tiek nospiesta poga
    int analogVal = analogRead (potPin);
    int scaledVal = karte (analogVal, 0, 1023, 0, 255);
    analogWrite (ledPin, scaledVal); // ieslēdziet led ar pot intensitāti
    Serial.println ("nospiests");
  } cits {
    digitalWrite (ledPin, LOW); // izslēdziet, ja poga netiek nospiesta
    Serial.println ("nespiests");
  }
}
8.7
9
9

Pievienojiet komentāru

    • smaidismaidaxaxalabinezinuYahoonea
      priekšniekssaskrāpētmuļķisjājā-jāagresīvsslepeni
      žēldejotdeja2deja3apžēlošanapalīdzētdzērieni
      apstātiesdraugilabilabsirdīgssvilpegulbismēle
      smēķētaplaudēkrauklispaziņodrausmīgsdon-t_mentionlejupielādēt
      karstumsdrausmīgssmieties1mdasapulceņirgāšanāsnegatīvs
      not_ipopkornssodītlasītnobiedētbiedēmeklēt
      ņurdētpaldiesšoto_clueumņikakūtapiekrītu
      sliktibēmelnā acsblum3sarktlielītiesgarlaicība
      cenzētspleasantryslepens2draudētuzvarajusun_bespectacled
      šoksrespektlolprevedlaipni gaidītikrutojsya_za
      ya_dobryipalīgsne_huliganne_othodifludsaizliegumstuvu
4 komentārs
Tas darbojas, kā vajadzētu - // pakāpeniski palieliniet spilgtumu (no 0 līdz 255)
priekš (int spilgtums = 0; spilgtums <= 255; spilgtums ++) {
analogWrite (ledPin, spilgtums);
kavēšanās (5);
kompilācijā dod kļūdu Arduino: 1.6.5 (Windows 7), valde "Arduino Nano, ATmega328"

sketch_sep20a: 25: kļūda: paredzamais paziņojums pirms marķiera '}'
gaidāmā deklarācija pirms '}' marķiera
Es nokopēju vienmērīgas aizdedzes skici.
Mana gaismas diode strauji iedegas, bet tā vienmērīgi izdziest.

Lūdzu, paskaidrojiet.
Es nokopēju vienmērīgas aizdedzes skici.
Mana gaismas diode strauji iedegas, bet tā vienmērīgi izdziest.

Lūdzu, paskaidrojiet.

Mēs iesakām izlasīt:

Nododiet to viedtālrunim ...