Čia yra sena dokumento versija!
Ką mes 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 paspaudžiamojo mygtuko. Paspaudžiamojo mygtuko ,,instaliacija“ yra gana paprasta. Tėra vienas komponentas „pakeliamasis rezistorius“(the pull up resistor), kuris gali atrodyti ne savo vietoje. Jis pridedamas todėl, kad „Arduino“ nejaučia taip pat kaip mes (pvz: mygtukas paspaustas, mygtukas nepaspaustas). Vietoje jautimo, rezistorius žiūri į kaiščio(pin) į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 CIRC-07 maketo plokštės šablonas x1 Dviejų kontaktų kištukai x4 Spaudžiamieji mygtukai x2 Laidas x3 10 kΩ rezistorius (Rudas-juodas-oranžinis) x2 560 omų rezistorius (Žalias-mėlynas-rudas) x1 Raudonas LED x1
Grandinės schema
Grandinės šablonas
Surinkta grandinė
Šaltiniai .:Parsisiuntimas:. Iškerpamas plokštės maketas - http://ardx.org/BBLS07
.:Vaizdas:. Surinkimo video - http://ardx.org/VIDE07
Suprasti kodą nėra sudėtinga, galima būtų jį parašyti patiems, tačiau galite jį nukopijuoti, nuo /* iki */ (ARDUINO PROGRAMOJE IŠTRINKITE ŠIUOS ŽENKLUS ! ) (jei norite paieškoti įvairių kūribingų grandinės pavyzdžių ar gerų įdėjų, eikite į arduino.cc internetinį puslapį)
Mygtukas
Įjungia ir išjungia spinduliuojantį šviesos diodą (LED), prijungtą prie 13 skaitmeninio kaiščio(pin_13), kol spaudinėjame stūmoklio mygtuką prijungtą prie 7 kaiščio (pin_ 7).
Grandinė: * Ledas(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 „Arduinos“ 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); }
} */ PABAIGA Neveikia ? (Pabandykite 3 būdus) Šviesa neįsijungia Spaudžiamasis mygtukas yra keturkampis ir dėl šios priežasties yra lengva jį įstatyti ne ta puse. Perstatykite spaudžiamąjį mygtuką 90 laipsnų kampu ir pažiūrėkite ar grandinė veikia. Šviesa negęsta (neblanksta) Kvailoka klaida kurią visi kartais padarome, kada pereinate nuo šviesos įjungimo iki jos blankimo, nepamirškite perdėti ledo(LED) laidą iš 13 kaiščio(pin 13) į 9 kaištį(pin 9). Kodėl gi nepadarius geresnės programos? Įjungimo mygtumas išjungimo mygtukas: Sunkesnis bet irigi įdomus pavyzdys, vienas mygtukas įjungs ledą(LED), kitas išjungs ledą(LED). 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ą (LED).
Blukimas stipryn ir silpnyn: Let’s use the buttons to control an analog signal. To do this you will need to change the wire connecting the LED from pin 13 to pin 9, also change this in code.
int ledPin = 13; ----> int ledPin = 9;
Toliau keičiame - loop() procedūrą. loop – procedūros pavadinimas. 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 grečio keitimas: Jeigu norėtumėte pakeisti ledo(LED) šviesos blukimo greitį iš didesnio į mažesnį arba atvirkščiai, tėra viena eilutė kode, kurią keičiame; delay(10); —→ delay(naujas #); Kad padarytumėte šviesos blukimą greitesniu, keiskite numerį į dar mažesnį, lėtumas reikalauja didesnio numerio. Kitas projektas. Šviesa, fotorezistoriai. Atgal į projektus