User Tools

Site Tools


projektas_nr.5

Čia yra sena dokumento versija!



Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in /home/admin/domains/robotikosmokykla.lt/public_html/wiki/inc/parser/handler.php on line 1552

Projektas Nr. 5. Spaudziame mygtukus – Mygtukai

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

projektas_nr.5.1445795942.txt.gz · Keista: 2015/10/25 19:59 vartotojo 193.219.47.27