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ų (GND) per 560Ω rezistorių
Mygtukas – kurį spausime, prijungtas prie antrojo kaiščio (pin 2) iš (GND)
10K rezistorius pridėtas prie 2 kaiščio (pin 2) ir eina iš +5V
Pastaba: daugelyje „Arduino“ jau yra šviesos diodas (LED) pačioje plokštėje ir prijungtas prie 13 kaiščio (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 mygtuko nuskaitymui ir būsenai. void setup() { // Inicijuojame šviesos diodo(LED) kaištį(pin) kaip išeigą: pinMode(ledPin, OUTPUT); // Inicijuojame mygtuko kaištį(pin) kaip įeigą: pinMode(buttonPin, INPUT); } void loop(){ // nuskaitome mygtuko būklę: buttonState = digitalRead(buttonPin); // patinkriname ar mygtukas yra paspaustas. // jeigu jis paspaustas, mygtuko būsena yra žema (LOW): if (buttonState == HIGH) { // Įjungiame šviesos diodą(LED): digitalWrite(ledPin, HIGH); } else { // Kitais atvejais išjungiame šviesos diodą(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, kai vienas mygtukas įjungs LED'ą, o 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.