Čia yra sena dokumento versija!
Ką darome Iki šio momento mes visiškai susitelkdavome į išvestis, laikas priversti „Arduino“ klausyti mūsų, žiūrėkite ir pajauskite. Pradėsime nuo paprasto mygtuko, kurio panaudojimas yra gana nesudėtingas. Jungiant mygtuką prie „Arduino“ reikės tik vieno papildomo komponeno - „pakeliamojo“ rezistoriaus (the pull up resistor), kuris gali atrodyti ne savo vietoje, tačiau yra kritiškai reikalingas. Jis pridedamas todėl, kad „Arduino“ „jaučia“ kitaip nei mes (pvz: mygtukas paspaustas, mygtukas nepaspaustas). „Arduino“ „jaučia“ kaiščio (pin), kurį mes naudojame kaip įvestį, įtampą ir nusprendžia ar ji aukšta(HIGH), ar žema(LOW). Mygtukas kontakto įtampą nustato kaip žemą (LOW) kada jis yra paspaustas, tačiau, kada mygtukas yra nepaspaustas, kaiščio(pin) įtampa „plūduriuos“ (sukeldama atsitiktinių problemų). Kad „Arduino“ patikimai nuskaitytų kaiščio(pin) įtampą kaip aukštą(HIGH) mygtukui esant nepaspaustam, mes pridedame pakeliamąjį rezistorių (the pull up resistor). (Pastaba: pirmajame pavyzdyje naudojamas tiktai vienas mygtukas iš dviejų)
Grandinės dalys
Principinė schema
Surinkimo šablonas
Surinkta grandinė
Šaltiniai
Plokštės maketas Surinkimo video
Suprasti kodą nėra sudėtinga, galima būtų jį parašyti patiems, bet mes jį jau pateikėme jums žemiau. (jei norite paieškoti įvairių kūribingu grandinės pavyzdžių ar gerų įdėjų, eikite į arduino.cc internetinį puslapį)
Nuspaudus mygtukas, prijungtą prie 2 kaiščio (pin 2), išjungia šviesos diodą (LED), prijungtą prie 13 skaitmeninio kaiščio (pin 13), o mygtuką atleidus šviesos diodas vėl įsižiebs.
Grandinė:
LED prijungtas iš 13 kaiščio (pin 13) į neigiamą šaltinio polių
Mygtukas – kurį spausime, pridėtas prie antrojo kaiščio (pin 2) iš (+5V)
10K rezistorius pridėtas prie 2 kaiščio (pin 2) ir eina iš neigiamo šaltinio poliaus (įžeminimo)
Pastaba: daugelyje „Arduino“ schemų jau yra ledas (LED) ant „lentos“ prijungtas į 13 kaištį (pin 13).
http://www.arduino.cc/en/Tutorial/Button
//PRADEDAME KOPIJUOTI // konstantos nekis, jos naudojamos pakeisti kaiščių „rodmenis“ : const int buttonPin = 2; // the number of the pushbutton pin const int ledPin = 13; // the number of the LED pin // kintamieji pasikeis: int buttonState = 0; // kintamasis spaudžiamajo mygtuko nuskaitymui ir būsenai. void setup() { // Inicijuojame ledo(LED) kaištį(pin) kaip išeigą: pinMode(ledPin, OUTPUT); // Inicijuojame ledo(LED) kaištį(pin) kaip įeigą: pinMode(buttonPin, INPUT); } void loop(){ // perskaitome spaudžiamojo mygtuko vertės būklę: buttonState = digitalRead(buttonPin); // patinkriname ar spaudžiamasis mygtukas yra paspaustas. // jeigu jis paspaustas, spaudžiamojo mygtuko būsena yra aukšta(HIGH): if (buttonState == HIGH) { // Įjungiame ledą(LED): digitalWrite(ledPin, HIGH); } else { // Kitais atvejais išjungiame ledą(LED): digitalWrite(ledPin, LOW); } }
Neveikia? Du sprendimo būdai:
Kodėl gi nepadarius geresnės programos? Įjungimo mygtukas išjungimo mygtukas: Sunkesnis bet irgi įdomus pavyzdys, vienas mygtukas įjungs LED'ą, kitas išjungs. Pakeiskite kodą į:
int ledPin = 13; // pasirinkite kaištį (pin) ledui (LED) int inputPin1 = 3; // mygtukas 1 int inputPin2 = 2; // mygtukas 2 void setup() { pinMode(ledPin, OUTPUT); // declare LED as output pinMode(inputPin1, INPUT); // make button 1 an input pinMode(inputPin2, INPUT); // make button 2 an input } void loop(){ if (digitalRead(inputPin1) == LOW) { digitalWrite(ledPin, LOW); // išjungiame ledą (LED) } else if (digitalRead(inputPin2) == LOW) { digitalWrite(ledPin, HIGH); // įjungiame ledą (LED) } }
Įkelkite kodą į savo programos lauką ir pradėkite perjunginėti LED.
Blukimas stipryn ir silpnyn: Mygtukus galime panaudoti analoginio signalo valdymui. Tam reiks pakeisti LED'o laidą iš pin 13 į pin 9, taip pat pakeisti kodo eilutę:
int ledPin = 13;
Keisime šitaip:
int ledPin = 9;
Toliau keičiame - loop() procedūrą.
int value = 0; void loop(){ if (digitalRead(inputPin1) == LOW) { value--; } else if (digitalRead(inputPin2) == LOW) { value++; } value = constrain(value, 0, 255); analogWrite(ledPin, value); delay(10); }
Blukimo greičio keitimas: Jeigu norėtumėte pakeisti LED'o šviesos blukimo greitį iš didesnio į mažesnį arba atvirkščiai, yra viena eilutė kode, kurią keičiame:
delay(10);
Įrašome savo norimą skaičių:
delay(naujas #);
Kad padarytumėte šviesos blukimą greitesniu, keiskite numerį į dar mažesnį, lėtumas reikalauja didesnio numerio.