» Electronics » Arduino »Arduino para sa mga nagsisimula

Arduino para sa mga nagsisimula


Arduino ay isang microcontroller board na maaari mong programa upang makontrol ang mga panlabas na aparato. Nakikipag-ugnay ito sa labas ng mundo sa pamamagitan ng mga sensor, motor, LED, speaker, ... at maging sa Internet, ginagawa itong isang nababaluktot na platform para sa iba't ibang mga proyekto. Mayroong kaunting mga microcontroller, ngunit ang Arduino ay popular dahil sa ang katunayan na ang iba't ibang mga proyekto ay napaka-aktibong inilatag at tinalakay sa Internet. Kung naghanap ka sa google o youtube, makakakita ka ng milyun-milyong mga ideya at impormasyon upang simulan ang pag-explore ng iyong Arduino mismo.
Kahit na wala kang karanasan sa mga microcontroller sa programming - kasama ang Arduino ay mabilis mong matututuhan at malaman ang tungkol sa elektronika gamit ang mga eksperimento.

Ano ang kailangan mo upang makapagsimula?
Arduino Uno- 1pc
Usb cable-1pcs
Mga Jumpers 1pc
1pcs development board
Pulang LED 4 na mga PC
220 ohm risistor 4pcs
Resistor 10 silid 1 pc
Pindutan nang hindi nag-aayos
Potentiometer
RGB LED na may karaniwang katod

Ang lahat ng ito ay maaaring mabili sa isang lokal na tindahan ng radyo o iniutos sa Internet.

Ang isang online simulator ay ginamit upang ipakita at gayahin ang mga de-koryenteng circuit.

Ang simulator na ito ay pinakamahusay na gumagana sa browser ng Chrome.
Tingnan natin ang Arduino.

Ang Arduino ay hindi isang malaking computer kung saan maaaring kumonekta ang mga panlabas na circuit. Gumagamit ang Arduino Uno sa Atmega 328P
Ito ang pinakamalaking chip sa board. Ang chip na ito ay nagsasagawa ng mga programa na nakaimbak sa memorya nito. Maaari mong i-download ang programa sa pamamagitan ng usb gamit ang Arduino IDE. Ang usb port ay nagbibigay din ng kapangyarihan sa arduino.

Mayroong isang hiwalay na konektor ng kuryente. Mayroong dalawang mga output sa board, na may label na 5v at 3.3v, na kinakailangan upang mabigyan ng kapangyarihan ang iba't ibang mga aparato. Makakakita ka rin ng mga pin na minarkahan bilang GND, ang mga ito ay mga nangunguna sa lupa (ang lupa ay 0V). Ang platform ng Arduino ay mayroon ding 14 digital na output (pin), minarkahan ng mga numero mula 0 hanggang 13, na konektado sa mga panlabas na node at may dalawang estado, mataas o mababa (sa o off). Ang mga contact na ito ay maaaring gumana bilang mga output o bilang mga pag-input, i. maaari silang magpadala ng ilang data at makontrol ang mga panlabas na aparato, o makatanggap ng data mula sa mga aparato. Ang mga sumusunod na konklusyon sa board ay itinalaga A0-A5. Ito ang mga analog na input na maaaring makatanggap ng data mula sa iba't ibang mga sensor. Lalo na itong maginhawa kapag kailangan mong sukatin ang isang saklaw, tulad ng temperatura. Ang mga analog na input ay may mga karagdagang pag-andar na maaaring paganahin nang hiwalay.


Paano gumamit ng isang breadboard.

Kinakailangan ang isang breadboard upang pansamantalang ikonekta ang mga bahagi, upang suriin kung paano gumagana ang aparato, bago mo ibenta ang lahat.
Ang lahat ng mga sumusunod na halimbawa ay nakolekta sa isang breadboard upang mabilis mong makagawa ng mga pagbabago sa circuit at muling magamit ang mga bahagi nang hindi nakakaabala sa paghihinang.

Ang breadboard ay may mga hilera ng mga butas kung saan maaari kang magpasok ng mga bahagi at wire. Ang ilan sa mga butas na ito ay nakakonekta sa bawat isa.

Ang dalawang itaas at mas mababang mga hilera ay konektado sa serye kasama ang buong board. Ang mga hilera na ito ay ginagamit upang kapangyarihan ang circuit. Maaari itong maging 5v o 3.3v, ngunit sa anumang kaso, ang unang bagay na kailangan mong gawin ay kumonekta sa 5v at GND sa breadboard, tulad ng ipinapakita sa figure. Minsan ang mga koneksyon sa hilera na ito ay maaaring makagambala sa gitna ng board, pagkatapos kung kailangan mo, maaari mong ikonekta ang mga ito, tulad ng ipinapakita sa figure.




Ang natitirang mga butas na matatagpuan sa gitna ng board ay pinagsama sa limang butas. Ginagamit ang mga ito upang ikonekta ang mga bahagi ng circuit.

Ang unang bagay na kumonekta sa aming microcontroller ay ang LED. Ang diagram ng koneksyon sa koryente ay ipinapakita sa larawan.


Bakit kailangan ko ng risistor sa circuit? Sa kasong ito, nililimitahan nito ang kasalukuyang dumadaan sa LED. Ang bawat LED ay dinisenyo para sa isang tiyak na kasalukuyang, at kung ang kasalukuyang ito ay mas malaki, pagkatapos ang LED ay mabibigo. Alamin kung ano ang kahalagahan ng risistor na dapat gamitin ang batas ng Ohm. Para sa mga hindi nakakaalam o nakalimutan, sinabi ng batas ng Ohm na mayroong isang guhit na pag-asa ng kasalukuyang sa boltahe. Iyon ay, kung mas nag-aaplay kami ng boltahe sa risistor, mas maraming dumadaloy sa pamamagitan nito.
V = I * R
Saan V-voltage sa buong risistor
Ako- kasalukuyang sa pamamagitan ng risistor
R- paglaban na matagpuan.
Una, kailangan nating malaman ang boltahe sa buong risistor. Karamihan sa mga 3mm o 5mm LED na gagamitin mo ay may 3V na boltahe sa operating. Kaya, sa risistor kailangan nating bayaran ang 5-3 = 2v.

Pagkatapos ay kinakalkula namin ang kasalukuyang pagdaan sa risistor.
Karamihan sa 3 at 5mm LEDs glow sa buong ningning sa isang kasalukuyang 20mA. Ang isang kasalukuyang higit pa sa ito ay maaaring hindi paganahin ang mga ito, at ang isang kasalukuyang ng mas kaunting lakas ay mabawasan ang kanilang ningning, nang hindi nagiging sanhi ng anumang pinsala.

Kaya, nais naming i-on ang LED sa 5v circuit upang mayroon itong kasalukuyang 20mA. Dahil ang lahat ng mga bahagi ay kasama sa isang circuit, ang risistor ay magkakaroon din ng kasalukuyang ng 20 mA.
Kumuha kami
2V = 20 mA * R
2V = 0.02A * R
R = 100 ohms

Ang 100 Ohms ay ang minimum na pagtutol, mas mahusay na gumamit ng kaunti pa, dahil ang mga LED ay may ilang pagkakaiba-iba sa mga katangian.
Sa halimbawang ito, ginagamit ang isang 220 ohm risistor. Dahil lang sa marami ang may-akda: wink:.

Ipasok ang LED sa mga butas sa gitna ng board upang ang mahabang terminal nito ay konektado sa isa sa mga terminal ng risistor. Ikonekta ang pangalawang dulo ng risistor sa 5V, at ikonekta ang pangalawang output ng LED sa GND. Ang LED ay dapat na sindihan.

Mangyaring tandaan na may pagkakaiba sa kung paano kumonekta sa LED. Kasalukuyang dumadaloy mula sa isang mas mahabang terminal hanggang sa isang mas maikli. Sa diagram maaari mong isipin na ang kasalukuyang daloy sa direksyon kung saan ang tatsulok ay nakadirekta. Subukan ang pag-flip ng LED at makikita mo na hindi ito magagaan.

Ngunit kung paano mo ikokonekta ang risistor, walang pagkakaiba. Maaari mong i-on ito o subukang ikonekta ito sa iba pang output ng LED, hindi ito makakaapekto sa pagpapatakbo ng circuit. Limitahan pa rin nito ang kasalukuyang sa pamamagitan ng LED.

Anatomy ng isang Arduino Sketch.

Ang mga programa para sa Arduino ay tinatawag na sketch. Binubuo sila ng dalawang pangunahing pag-andar. Pag-andar pag-setup at pag-andar loop
sa loob ng function na ito ay itatakda mo ang lahat ng mga pangunahing setting. Ano ang mga konklusyon ay gagana sa input o output, na ang mga aklatan upang kumonekta, simulan ang mga variable. Pag-andar Setup () Magsisimula lamang ito nang isang beses sa sketsa, kung magsisimula ang programa.
ito ang pangunahing pag-andar na naisakatuparan pagkatapos pag-setup (). Sa katunayan, ito mismo ang programa. Ang pagpapaandar na ito ay tatakbo nang walang hanggan hanggang sa i-off ang kapangyarihan.

Arduino kumikislap na LED




Sa halimbawang ito, ikokonekta namin ang isang circuit na may isang LED sa isa sa mga Arduino digital pin at i-on at off ang paggamit ng programa, at matutunan mo rin ang ilang mga kapaki-pakinabang na pag-andar.



- ang function na ito ay ginagamit sa pag-setup () mga bahagi ng programa at nagsisilbi upang simulan ang mga konklusyon na gagamitin mo bilang input (INPUT) o labasan (OUTPUT). Hindi mo mababasa o magsulat ng data mula sa pin hanggang sa naitakda mo ito nang naaayon pinMode. Ang pagpapaandar na ito ay may dalawang argumento: pinNumber- Ito ang numero ng pin na gagamitin mo.

Mode- nagtatakda kung paano gagana ang pin. Sa pasukan (INPUT) o labasan (OUTPUT). Upang magaan ang LED dapat tayong magbigay ng signal Mula sa Arduino Upang gawin ito, isinaayos namin ang pin upang lumabas.
- ang pagpapaandar na ito ay nagsisilbi upang itakda ang estado (estado) pina (pinNumber). Mayroong dalawang pangunahing estado (sa pangkalahatan ay may 3), ang isa ay Mataas, ang pin ay magiging 5v, isa pa Mababa at ang pin ay magiging 0v. Kaya, upang magaan ang LED, kailangan nating magtakda ng isang mataas na antas sa pin na konektado sa LED Mataas.

- pagkaantala. Naglilingkod upang maantala ang programa para sa isang tinukoy na tagal sa ms.
Nasa ibaba ang code na nagiging sanhi ng flash ng LED.
// LED Blink

int ledPin = 7; // Arduino pin kung saan konektado ang LED

walang pag-setup () {
  pinMode (ledPin, OUTPUT); // itakda ang pin bilang EXIT
}

walang bisa na loop () {
  digitalWrite (ledPin, HIGH); // light the LED
  pagkaantala (1000); // pagkaantala ng 1000 ms (1 seg)
  digitalWrite (ledPin, LOW); // I-off ang LED
  pagkaantala (1000); // wait 1 sec
}


Isang maliit na paliwanag sa code.
Ang mga linya na nagsisimula sa "//" ay mga komento ni Arduino na hindi pinapansin ang mga ito.
Ang lahat ng mga utos ay nagtatapos sa isang semicolon; kung nakalimutan mo ang mga ito, makakatanggap ka ng isang mensahe ng error.

pinunoay isang variable. Ginagamit ang mga variable sa mga programa upang maimbak ang mga halaga. Sa halimbawang ito, ang variable pinuno itinalaga ang halaga 7, ito ang pin number ng Arduino. Kapag ang Arduino sa programa ay nakatagpo ng isang string na may variable pinuno , gagamitin nito ang halaga na tinukoy namin kanina.
Kaya record pinMode (ledPin, OUTPUT) katulad sa record pinMode (7, OUTPUT).
Ngunit sa unang kaso, sapat na para sa iyo na baguhin ang variable at magbabago ito sa bawat linya kung saan ginagamit ito, at sa pangalawang kaso, upang mabago ang variable, kailangan mong gumawa ng mga pagbabago sa mga pen sa bawat utos.

sa unang linya ay nagpapahiwatig ng uri ng variable. Kapag nagprograma ng Arduino, mahalaga na palaging ipahayag ang uri ng mga variable. Sa ngayon, sapat na para sa iyo na malaman iyon INT nagpapahayag ng mga negatibo at positibong numero.
Sa ibaba ay ipinakita pagmomolde sketch. Pindutin ang simula upang tingnan ang pagpapatakbo ng circuit.



Tulad ng inaasahan, ang LED ay patayin at mag-ilaw pagkatapos ng isang segundo. Subukang baguhin ang pagkaantala upang makita kung paano ito gumagana.

Pamamahala ng maraming mga LED.

Sa halimbawang ito, malalaman mo kung paano makontrol ang maraming mga LED. Upang gawin ito, mag-install ng 3 higit pang mga LED sa board at ikonekta ang mga ito sa mga resistors at pin ng Arduino, tulad ng ipinakita sa ibaba.



Upang i-on at i-off ang mga LED, kailangan mong sumulat ng isang programa tulad nito:
// Multi LED Blink

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

walang pag-setup () {
  // itakda ang mga pin bilang EXIT
  pinMode (led1Pin, OUTPUT);
  pinMode (led2Pin, OUTPUT);
  pinMode (led3Pin, OUTPUT);
  pinMode (led4Pin, OUTPUT);
}

walang bisa na loop () {
  digitalWrite (led1Pin, HIGH); // light the LED
  pagkaantala (1000); // pagkaantala ng 1 seg
  digitalWrite (led1Pin, LOW); // ilabas ang LED
  pagkaantala (1000); // pagkaantala ng 1 seg

  // gawin ang parehong para sa iba pang 3 LEDs
  digitalWrite (led2Pin, HIGH); // light the LED
  pagkaantala (1000); // pagkaantala ng 1 seg
  digitalWrite (led2Pin, LOW); // ilabas ang LED
  pagkaantala (1000); // pagkaantala ng 1 seg

  digitalWrite (led3Pin, HIGH); // light the LED
  pagkaantala (1000); // pagkaantala ng 1 seg
  digitalWrite (led3Pin, LOW); // ilabas ang LED
  pagkaantala (1000); // pagkaantala ng 1 seg

  digitalWrite (led4Pin, HIGH); // light the LED
  pagkaantala (1000); // pagkaantala ng 1 seg
  digitalWrite (led4Pin, LOW); // ilabas ang LED
  pagkaantala (1000); // pagkaantala ng 1 seg
}


Ang program na ito ay gagana nang maayos, ngunit hindi ito ang pinaka nakapangangatwiran na solusyon. Kailangang mabago ang code. Upang ang programa ay paulit-ulit na gagana, gagamitin namin ang konstruksyon na tinatawag.
Maginhawa ang mga siklo kapag kailangan mong ulitin ang parehong pagkilos nang maraming beses. Sa code sa itaas, inuulit namin ang mga linya

digitalWrite (led4Pin, HIGH);
pagkaantala (1000);
digitalWrite (led4Pin, LOW);
pagkaantala (1000); 

buong sketch code sa kalakip para sa.zip [720 b] (mga pag-download: 1410)

Pagsasaayos ng liwanag ng LED

Minsan kakailanganin mong baguhin ang ningning ng mga LED sa programa. Magagawa ito gamit ang utos analogWrite (). Ang utos na ito ay naka-on at off ang LED nang napakabilis na hindi nakikita ng mata ang flicker na ito. Kung ang LED ay naka-on sa kalahati ng oras at kalahati, ito ay visually lilitaw na ito ay naiilawan sa kalahati ng ningning nito. Ito ay tinatawag na modyul na lapad ng pulso (PWM o PWM sa Ingles). Ang PWM ay ginagamit nang madalas, dahil maaari itong magamit upang makontrol ang sangkap na "analog" gamit ang isang digital code. Hindi lahat ng mga Arduino pin ay angkop para sa mga layuning ito. Ang mga konklusyon lamang sa paligid kung saan ang nasabing pagtatalaga ay iguguhit "~"Makikita mo ito sa tabi ng mga pin 3,5,6,9,10,11.
Ikonekta ang isa sa iyong mga LED sa isa sa mga output ng PWM (para sa may-akda, ito ay pin 9). Ngayon patakbuhin ang sketch na kumikislap na LED, ngunit baguhin muna ang utos digitalWrite () sa analogWrite (). analogWrite () Mayroon itong dalawang argumento: ang una ay ang numero ng pin, at ang pangalawa ay ang halaga ng PWM (0-255), na may kaugnayan sa mga LED na ito ay magiging kanilang ningning, at para sa mga de-koryenteng motor ang bilis ng pag-ikot. Sa ibaba ay isang halimbawa ng code para sa iba't ibang mga ningning ng LED.
// Baguhin ang ningning ng LED

int ledPin = 9; // LED na konektado sa pin na ito
walang pag-setup () {
  pinMode (ledPin, OUTPUT); // pasiunang pin ang output
}

walang bisa na loop () {
  analogWrite (ledPin, 255); // buong ningning (255/255 = 1)
  pagkaantala (1000); // i-pause ang 1 seg
  digitalWrite (ledPin, LOW); // patayin ang LED
  pagkaantala (1000); // i-pause ang 1 seg

  analogWrite (ledPin, 191); // ningning sa 3/4 (191/255 ~ = 0.75)
  pagkaantala (1000); // i-pause ang 1 seg
  digitalWrite (ledPin, LOW); // patayin ang LED
  pagkaantala (1000); // i-pause ang 1 seg

  analogWrite (ledPin, 127); // kalahating ningning (127/255 ~ = 0.5)
  pagkaantala (1000); // i-pause ang 1 seg
  digitalWrite (ledPin, LOW); // patayin ang LED
  pagkaantala (1000); // i-pause ang 1 seg

  analogWrite (ledPin, 63); // quarter light (63/255 ~ = 0.25)
  pagkaantala (1000); // i-pause ang 1 seg
  digitalWrite (ledPin, LOW); // patayin ang LED
  pagkaantala (1000); // i-pause ang 1 seg
}


Subukang baguhin ang halaga ng PWM sa utos analogWrite ()upang makita kung paano nakakaapekto sa ningning.
Susunod, matututunan mo kung paano maayos na maayos ang ningning mula sa buo hanggang zero. Maaari mo, syempre, kopyahin ang isang piraso ng code 255 beses
analogWrite (ledPin, ningning);
pagkaantala (5); // maikling pagkaantala
ningning = ningning + 1;

Ngunit, nauunawaan mo - hindi ito magiging praktikal. Upang gawin ito, pinakamahusay na gamitin ang PARAAN na loop na ginamit dati.
Ang sumusunod na halimbawa ay gumagamit ng dalawang siklo, ang isa upang mabawasan ang ningning mula 255 hanggang 0
para sa (int ningning = 0; ningning = 0; ningning -) {

analogWrite (ledPin, ningning);
pagkaantala (5);

}

pagkaantala (5) ginamit upang mapabagal ang rate ng pagtaas at pagbagsak ng ningning 5 * 256 = 1280 ms = 1.28 sec.)
Ang unang linya ay gumagamit ng "ningning-"upang ang halaga ng ningning ay bumababa ng 1, sa bawat oras na umuulit ang siklo. Mangyaring tandaan na ang ikot ay gagana hangga't ningning> = 0.Pagpalit ng sign > sa tanda >= isinama namin ang 0 sa saklaw ng ningning. Ang sketch na ito ay modelo sa ibaba.
// maayos na baguhin ang ningning

int ledPin = 9; // LED ay konektado sa pin na ito

walang pag-setup () {
  pinMode (ledPin, OUTPUT); // paunang simulan ang pin upang lumabas
}

walang bisa na loop () {
  // unti-unting taasan ang ningning (0-255)
  para sa (int ningning = 0; ningning = 0; ningning -) {
    analogWrite (ledPin, ningning);
    pagkaantala (5);
  }

  pagkaantala (1000); // wait 1 sec
 // maayos na bawasan ang ningning (255 hanggang 0)
  para sa (int ningning = 255; ningning> = 0; ningning -) {
    analogWrite (ledPin, ningning);
    pagkaantala (5);
  }

  pagkaantala (1000); // wait 1 sec
}
}

Hindi ito masyadong nakikita, ngunit malinaw ang ideya.



RGB LED at Arduino

Ang RGB LED ay talagang tatlong LED ng magkakaibang mga kulay sa isang pabahay.



Kasama ang iba't ibang mga LED na may iba't ibang ningning, maaari mong pagsamahin at makakuha ng iba't ibang mga kulay. Para sa Arduino, kung saan ang bilang ng mga gradations ng ningning ay 256, nakakakuha ka ng 256 ^ 3 = 16581375 posibleng mga kulay. Sa katotohanan, siyempre, may mas kaunti sa kanila.
Ang LED na gagamitin namin ay ang pangkaraniwang katod. I.e. lahat ng tatlong mga LED ay istruktura na konektado ng mga cathode sa isang terminal. Ikononekta namin ang pin na ito sa pin ng GND. Ang natitirang mga terminal, sa pamamagitan ng paglilimita sa mga resistor, ay dapat na konektado sa mga terminal ng PWM. Gumamit ang may-akda ng mga konklusyon 9-11. Kaya, posible na kontrolin nang hiwalay ang bawat LED. Ang unang sketch ay nagpapakita kung paano hiwalay ang bawat LED.



// RGB LED - pagsubok

// koneksyon
int pula = 9;
int green = 10;
int asul = 11;

walang pag-setup () {
  pinMode (pula, OUTPUT);
  pinMode (asul, OUTPUT);
  pinMode (berde, OUTPUT);
}

walang bisa na loop () {
  // i-on / i-off ang pulang LED
  digitalWrite (pula, Hataas);
  pagkaantala (500);
  digitalWrite (pula, LOW);
  pagkaantala (500);
  
  // i-on / i-off ang berdeng LED
  digitalWrite (berde, Hataas);
  pagkaantala (500);
  digitalWrite (berde, LOW);
  pagkaantala (500);

  // i-on / i-off ang asul na LED
  digitalWrite (asul, Hataas);
  pagkaantala (500);
  digitalWrite (asul, LOW);
  pagkaantala (500);
}


Ang sumusunod na halimbawa ay gumagamit ng mga utos analogWrite () at upang makakuha ng iba't ibang mga random na halaga ng ningning para sa mga LED. Makakakita ka ng iba't ibang mga kulay na nagbabago nang sapalaran.
// RGB LED - random na mga kulay

// koneksyon
int pula = 9;
int green = 10;
int asul = 11;
walang pag-setup () {
  pinMode (pula, OUTPUT);
  pinMode (asul, OUTPUT);
  pinMode (berde, OUTPUT);
}
walang bisa na loop () {
  // pumili ng isang random na kulay
  analogWrite (pula, random (256));
  analogWrite (asul, random (256));
  analogWrite (berde, random (256));
  pagkaantala (1000); // maghintay ng isang segundo
}


Random (256)-Binalik ang isang random na numero sa saklaw mula 0 hanggang 255.
Sa nakalakip na file mayroong isang sketsa na nagpapakita ng makinis na paglipat ng mga kulay mula pula hanggang berde, pagkatapos ay sa asul, pula, berde, atbp. mga paglilipat.zip [373 b] (mga pag-download: 386)
Ang isang halimbawa ng sketch ay gumagana, ngunit maraming dobleng code. Maaari mong gawing simple ang code sa pamamagitan ng pagsulat ng iyong sariling katulong na katulong, na maayos na magbabago ng isang kulay sa isa pa.
Narito kung ano ang magiging hitsura nito: function.zip [263 b] (pag-download: 420)
Tingnan natin ang kahulugan ng isang function sa mga bahagi. Tinawag na function fader at may dalawang argumento. Ang bawat argumento ay pinaghiwalay ng isang kuwit at may isang uri na ipinahayag sa unang linya ng kahulugan ng pagpapaandar: walang bisa fader (int color1, int color2). Nakita mo na ang parehong mga argumento ay ipinahayag bilang int, at binigyan sila ng mga pangalan kulay1 at kulay2 bilang mga variable na kondisyon para sa pagtukoy ng isang function. Walang bisa nangangahulugan na ang pag-andar ay hindi ibabalik ang anumang mga halaga, ito ay nagpapatupad lamang ng mga utos. Kung kinakailangan na magsulat ng isang function na ibinalik ang resulta ng pagpaparami, ganito ang hitsura nito:
int multiplier (int number1, int number2) {

int produkto = number1 * number2;
ibalik ang produkto;

} 

Pansinin kung paano namin ipinahayag ang Uri int bilang uri ng pagbabalik sa halip
walang bisa.
Sa loob ng pag-andar ay may mga utos na ginamit mo na sa nakaraang sketsa, tanging ang mga numero ng pin ay pinalitan ng kulay1 at kulay2. Tinawag na function fader, ang mga argumento nito ay kinakalkula bilang kulay1 = pula at kulay2 = berde. Ang buong sketch ng archive gamit ang mga function function.zip [392 b] (mga pag-download: 320)

Button

Sa susunod na sketsa, ang isang pindutan na may normal na bukas na mga contact ay gagamitin, nang hindi nag-aayos.

Arduino para sa mga nagsisimula

Nangangahulugan ito na habang ang pindutan ay hindi pinindot, ang kasalukuyang ay hindi dumadaloy sa pamamagitan nito, at pagkatapos ng paglabas, ang pindutan ay bumalik sa orihinal na posisyon nito.
Sa circuit, bilang karagdagan sa pindutan, ginagamit ang isang risistor. Sa kasong ito, hindi nito nililimitahan ang kasalukuyang, ngunit "hinila" ang pindutan sa 0v (GND). I.e. hanggang sa pindutin ang pindutan sa pin ng Arduino kung saan ito konektado, magiging mababa ang antas. Ang risistor na ginamit sa 10 kΩ circuit.

// tukuyin ang pag-click sa pindutan
int buttonPin = 7;
walang pag-setup () {
  pinMode (buttonPin, INPUT); // paunang simulan ang input pin
  Serial.begin (9600); // paunang simulan ang serial port
}
walang bisa na loop () {
  kung (digitalRead (buttonPin) == HIGH) {// kung pinindot ang pindutan
    Serial.println ("pinindot"); // print "pinindot"
  } iba pa {
    Serial.println ("hindi pinigilan"); // kung hindi man "hindi pinigilan"
  }
}

Mayroong maraming mga bagong koponan sa sketch na ito.
-Ang utos na ito ay tumatagal ng halaga Mataas (mataas na antas) at mababa (mababang antas) ng output na sinusuri namin. Dati, sa pag-setup (), ang output na ito ay dapat na-configure para sa pag-input.
; // kung saan ang buttonPin ay ang numero ng pin kung saan nakakonekta ang pindutan.
Pinapayagan ka ng serial port na magpadala ng mga mensahe ng Arduino sa computer, habang ang mismong controller ay nagpapatakbo ng programa. Ito ay kapaki-pakinabang para sa pag-debug ng isang programa, pagpapadala ng mga mensahe sa iba pang mga aparato o application. Upang paganahin ang paglipat ng data sa pamamagitan ng serial port (kilala rin bilang UART o USART), dapat mo munang simulan ito sa pag-setup ()

Serial.begin () ay may isang argumento lamang ang data transfer rate sa pagitan ng Arduino at ang computer.
gumuhit ng plano, isang utos ay ginagamit upang ipakita ang isang mensahe sa screen sa Arduino IDE (Mga tool >> Serial Monitor).
- Pinapayagan ka ng disenyo na kontrolin ang pag-unlad ng programa sa pamamagitan ng pagsasama ng maraming mga tseke sa isang lugar.
Kung (kung) digitalRead ay bumalik HIGH, pagkatapos ang salitang "pinindot" ay ipinapakita sa monitor. Iba pa (kung hindi man) ang salitang "kinatas" ay ipinapakita sa monitor. Ngayon ay maaari mong subukang i-on at off ang LED sa touch ng isang pindutan.
// pindutin ang pindutin ang pindutan na may LED output
int buttonPin = 7;
int ledPin = 8;
walang pag-setup () {
  pinMode (buttonPin, INPUT); // oras na ito ay magtatakda kami ng pindutan ng pin bilang INPUT
  pinMode (ledPin, OUTPUT);
  Serial.begin (9600);
}
walang bisa na loop () {
  kung (digitalRead (buttonPin) == HIGH) {
    digitalWrite (ledPin, HIGH);
    Serial.println ("pinindot");
  } iba pa {
    digitalWrite (ledPin, LOW);
    Serial.println ("hindi pinigilan");
  }
}


Pag-input ng analog.

analogRead nagbibigay-daan sa iyo upang basahin ang data mula sa isa sa mga Arduino analog pin at nagpapakita ng isang halaga sa saklaw mula 0 (0V) hanggang 1023 (5V). Kung ang boltahe sa analog input ay 2.5V, pagkatapos ay 2.5 / 5 * 1023 = 512 ay mai-print
analogRead ay may isang argumento lamang - Ito ang analog input number (A0-A5). Ang sumusunod na sketch ay nagbibigay ng isang code para sa pagbabasa ng boltahe mula sa isang potensyomiter. Upang gawin ito, ikonekta ang isang variable na risistor, ang matinding pin sa mga pin 5V at GND, at ang gitnang pin upang ma-input ang A0.


Patakbuhin ang sumusunod na code at tingnan ang serial monitor kung paano nagbabago ang mga halaga depende sa pag-ikot ng resistor knob.
// input ng analog

int potPin = A0; // ang gitnang output ng potentiometer ay konektado sa pin na ito

walang pag-setup () {
  // ang analog pin ay pinagana sa pamamagitan ng pag-input sa pamamagitan ng default, kaya hindi kinakailangan ang pagsisimula
  Serial.begin (9600);
}

walang bisa na loop () {
  int potVal = analogRead (potPin); // potVal ay isang bilang sa pagitan ng 0 at 1023
  Serial.println (potVal);
}

Ang susunod na sketch ay pinagsasama ang isang button-click sketch at isang LED control control sketch. Ang LED ay i-on mula sa pindutan, at ang potensyomiter ay makokontrol ang ningning ng glow.
// pindutin ang pindutin ang pindutan na may LED output at variable na intensity
int buttonPin = 7;
int ledPin = 9;
int potPin = A0;
walang pag-setup () {
  pinMode (buttonPin, INPUT);
  pinMode (ledPin, OUTPUT);
  Serial.begin (9600);
}
walang bisa na loop () {
  kung (digitalRead (buttonPin) == HIGH) {// kung pinindot ang pindutan
    int analogVal = analogRead (potPin);
    int scaledVal = mapa (analogVal, 0, 1023, 0, 255);
    analogWrite (ledPin, scaledVal); // on on led with intensity set by pot
    Serial.println ("pinindot");
  } iba pa {
    digitalWrite (ledPin, LOW); // patayin kung ang pindutan ay hindi pinindot
    Serial.println ("hindi pinigilan");
  }
}
8.7
9
9

Magdagdag ng isang puna

    • ngitinakangitixaxaok langhindi alamyahoonea
      bosskumamottangaoooo-ooagresibolihim
      sorrysayawsayaw2sayaw3kapatawarantumulonginumin
      humintomga kaibiganmabutigoodgoodsipolswoondila
      usokpumapalakpakkrayolaipahayagnakakainisdon-t_mentionpag-download
      initnakakainistumawa1mdapagpupulongnakikipag-usapnegatibo
      hindi_ipopcornparusahanbasahintakottakotpaghahanap
      panunuyasalamat_youitoto_clueumniktalamaksumang-ayon
      masamabeeeblack_eyeblum3namulamagyabanginip
      censoredkaaya-ayalihim2nagbabantatagumpayyusun_bespectacled
      shokrespektlolnagustuhanmaligayang pagdatingkrutoyya_za
      ya_dobryikatulongne_huliganne_othodimapusokpagbabawalmalapit
4 komentaryo
Ito ay kung paano ito gumagana tulad ng nararapat - // unti-unting taasan ang ningning (0 hanggang 255)
para sa (int ningning = 0; ningning <= 255; ningning ++) {
analogWrite (ledPin, ningning);
pagkaantala (5);
sa compilation ay nagbibigay ng isang error Arduino: 1.6.5 (Windows 7), Lupon "Arduino Nano, ATmega328"

sketch_sep20a: 25: error: inaasahang pagpapahayag bago ang token '}'
inaasahang pagpapahayag bago ang 'tok'
Kinopya ko ang sketch ng maayos na pag-aapoy.
Ang aking LED ay kumikislap nang masakit, ngunit ito ay lumabas nang maayos.

Ipaliwanag mangyaring.
Kinopya ko ang sketch ng maayos na pag-aapoy.
Ang aking LED ay kumikislap nang masakit, ngunit ito ay lumabas nang maayos.

Ipaliwanag mangyaring.

Pinapayuhan ka naming basahin:

Ipasa ito para sa smartphone ...