User Tools

Site Tools


projektas_nr.5

Skirtumai

Čia matote skirtumus tarp pasirinktos versijos ir esamo dokumento.

Link to this comparison view

Next revision
Previous revision
projektas_nr.5 [2015/10/25 17:49]
193.219.47.27 sukurtas
projektas_nr.5 [2015/12/03 13:51] (esamas)
valius.benas
Linija 1: Linija 1:
-**Projektas Nr. 5. Spaudziame ​mygtukus – Mygtukai**+====== ​Projektas Nr. 5. Spaudžiame ​mygtukus – Mygtukai ​====== 
 + 
 +**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** 
 +  *CIRC-07 maketo plokštės šablonas x1 
 +  *Dviejų kontaktų kištukai x4 
 +  *Mygtukai x2 
 +  *Laidas x3 
 +  *10kΩ rezistorius (Rudas-juodas-oranžinis) x2 
 +  *560Ω rezistorius (Žalias-mėlynas-rudas) x1 
 +  *Raudonas LED x1 
 + 
 +**Principinė schema** 
 + 
 +{{:​ardu_pro51.jpg?​300|}} 
 + 
 +**Surinkimo šablonas** 
 +   
 +{{:​ardu_pro52.jpg?​300|}} 
 + 
 +**Surinkta grandinė**  
 +  
 +{{:​ardu_pro53.jpg?​600|}} 
 +  
 + 
 +**Šaltiniai** 
 + 
 +[[http://​ardx.org/​BBLS07|Plokštės maketas]] 
 +[[http://​ardx.org/​VIDE07|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|]] 
 + 
 +<​code>​ //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);  
 +  } 
 +}  
 +</​code>​ 
 + 
 + 
 +**Neveikia? Du sprendimo būdai:**  
 +  
 +  *Šviesa neįsijungia - mygtukas yra keturkampis ir dėl šios priežasties yra lengva jį įstatyti ne ta puse. Perstatykite mygtuką 90 laipsnių kampu ir pažiūrėkite ar grandinė veikia. 
 +  
 +  *Šviesa negęsta (nebluksta) - kvailoka klaida, kurią visi kartais padarome, kada pereinate nuo šviesos įjungimo iki jos blukimo, nepamirškite perdėti LED'o laidą iš 13 kaiščio (pin 13) į 9 kaištį(pin 9). 
 + 
 +**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ą į: 
 +<​code>​ 
 +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)  
 +  }  
 +
 +  </​code>​ 
 +Į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ę: ​  
 + 
 +<​code>​ int ledPin = 13; </​code>​ 
 + 
 +Keisime šitaip:  
 + 
 +<​code>​ int ledPin = 9; </​code>​ 
 + 
 +Toliau keičiame - loop() procedūrą.  
 + 
 +<​code> ​  
 +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);  
 +}  
 +</​code>​ 
 +   
 +**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:  
 +<​code>​ 
 +   ​delay(10);​ 
 +</​code>​ 
 + 
 +Įrašome savo norimą skaičių:​ 
 + <​code>​ delay(naujas #); </​code>​ 
 + 
 +Kad padarytumėte šviesos blukimą greitesniu, keiskite numerį į dar mažesnį, lėtumas reikalauja didesnio numerio. 
  
 [[projektas_nr.6|Kitas projektas. Šviesa, fotorezistoriai.]] [[projektas_nr.6|Kitas projektas. Šviesa, fotorezistoriai.]]
 +
 +[[arduivadas_projektai|Atgal į projektus]]
projektas_nr.5.1445788147.txt.gz · Keista: 2015/10/25 17:49 vartotojo 193.219.47.27