User Tools

Site Tools


projektas_nr.10

Skirtumai

Čia matote skirtumus tarp pasirinktos versijos ir esamo dokumento.

Link to this comparison view

Both sides previous revision Previous revision
projektas_nr.10 [2015/11/13 00:22]
simonas
projektas_nr.10 [2015/11/13 00:31] (esamas)
simonas
Linija 1: Linija 1:
 ====== Projektas Nr. 10. Sintezatorius - Jungiame potenciometrą ====== ====== Projektas Nr. 10. Sintezatorius - Jungiame potenciometrą ======
- 
-**Ką darome?** 
-Arduino yra puikus prietaisas, norint ​ tiesiogiai kontroliuoti mažus elektrinius prietaisus pavyzdžiui,​ LED. Tačiau, kai susiduriama su didesniais daiktais (pavyzdžiui,​ žaisliniu varikliu arba skalbimo mašina), išorinis tranzistorius yra privalomas. Tranzistorius yra neįtikėtinai naudingas. Jis keičia srovės stiprumą, naudodamas mažus jos kiekius. Tranzistorius turi 3 smeigtukus. Dėl neigiamo tranzistoriaus tipo (PNP) prijungiate kolektoriaus smeigtuką su apkrova, o emiterį į žemę. Tada, kai maža srovė teka iš bazės į emiterį, srovė tekės per tranzistorius ir jūsų variklis suksis (tai atsitinka, kai mes nustatome mūsų Arduino į HIGH). Yra tūkstančiai skirtingų tipų tranzistorių,​ leidžiančių kiekvieną situacija puikiai suderinti. Mes pasirinkome P2N2222AG gana įprasta bendrosios paskirties tranzistorių. Svarbūs veiksniai, mūsų atveju yra tai, kad jo maksimali įtampa (40V) ir jo maksimali srovė(200 miliamperų) yra pakankamai aukšta mūsų žaisliniam varikliui. (visą informacija galima rasti duomenų lape http://​ardx.org/​2222). 
- 
-**Grandinės dalys** 
-  *2k2 omų rezistorius Raudona- Raudona- Raudona x1 
-  *Diodas (1N4001) x1 
-  *Žaislinis motoras x1 
-  *Tranzistorius TIP120 x1 
-  *Laidas x2 
- 
-**Grandininė schema** 
- 
-{{:​ardu_pro74.jpg?​300|}} 
- 
-**Grandinės šablonas** 
- 
-{{:​ardu_pro75.jpg?​300|}} 
- 
-**Surinkta grandinė** 
- 
-{{:​ardu_pro76.png?​600|}} 
- 
-**Šaltiniai** 
-[[http://​ardx.org/​BBLS03|Maketo plokštės šablonas]] 
-[[http://​ardx.org/​VIDE03|Surinkimo video]] 
- 
-**Programos kodas** (nukopijuokite kodą į IDE atvertą langą). Atsisiųsti programos kodą: [[http://​ardx.org/​CODE03]] (nukopijuokite tekstą ir įklijuokite jį į tuščią Arduino lapą). 
-<​code>​ 
-/*     ​----------------------------------------------------------- 
- ​* ​    ​| ​ Arduino bandymų pavyzdinis kodas                        | 
- ​* ​    ​| ​ CIRC-03.: Sukis, motore, sukis :. (Tranzisotrius ir motoras) ​  | 
- ​* ​    ​----------------------------------------------------------- 
- * 
- * Arduino yra puikus, norint valdyti LED’us, tačiau jeigu mes prijungiame kažką, kas 
-*  reikalauja daugiau galios, mes galime nesunkiai juos  sudeginti. Didesnių detalių 
-*valdymui mums reikės tranzistoriaus pagalbos. Šiame projekte naudosime tranzistorių mažo* 
-žaislinio motoro valdymui. 
- * 
- * 
- * http://​tinyurl.com/​d4wht7 
- * 
-/* 
- 
-int motorPin = 9;  //​Ƴvardinkite kištuką, ƳkurƳƳjungtas motoras 
-                   // (jeigu naudosite 9,10,11 arba 3 kištukus, jūs taip pat galėsite kontroliuoti greitƳ) 
-                    
-/* 
- * setup() –ši funkcija veikia vieną kartą, kai Ƴjungiate Arduino. 
- * Mes nustatėmė motoro kištuko išvestƳƳ aukštą (kištukas +5V)arba žemą (kištukas -GROUND) 
- * O ne ƳvestƳ (tikrinimą ar kištukas yra aukštos ,ar žemos Ƴtampos) 
- */ 
-void setup() 
-{ 
- ​pinMode(motorPin,​ OUTPUT); 
-} 
- 
-/* 
- * loop() –ši funkcija presides, kai pasibaigs funkcija setup , po to ji kartosis. 
- * mes suteikiamia vardą funkcijai pavadinimu motorOnThenOff() 
- */ 
- 
-void loop() ​                    // vykdyti vėl ir vėl iš naujo 
- ​motorOnThenOff();​ 
- //​motorOnThenOffWithSpeed();​ 
- //​motorAcceleration();​ 
-} 
- 
-/* 
- * motorOnThenOff() –Ƴjungia motorą, tada išjungia 
- * (pastaba! Šis kodas yra identiškas,​kurƳ naudojom mirksinčiam LED) 
- * 
- */ 
-void motorOnThenOff(){ 
-  int onTime = 2500;  //laikas milisekundėmis,​ kurƳ motoras Ƴsijungs. ​   int offTime = 1000; 
-//laikas milisekundėmis,​ kurƳ motoras išsijungs. 
- 
-digitalWrite(motorPin,​ HIGH); // Ƴjungia motorą 
-delay(onTime); ​               // palaukia onTime millisekundžių  ​ 
-digitalWrite(motorPin,​ LOW);  // išjungia motorą 
-delay(offTime); ​              // palaukia offTime millisekundžių 
-} 
- 
-/* 
- * motorOnThenOffWithSpeed() - Ƴjungia ir išjungia motorą, naudojamos ir greičio vertės 
- * (pastaba! Šis kodas identiškas,​ kurƳ naudojome mirksinčiam LED) 
- * 
- */ 
-void motorOnThenOffWithSpeed(){ 
-  
-  int onSpeed = 200;  // skaičius tarp 0 (sustabdytas) ir 255 (visas greitis) 
-  int onTime = 2500;  //the number of milliseconds forthe motor to turn on for 
-  ​ 
-  int offSpeed = 50;  // skaičius tarp 0 (sustabdytas) ir 255 (visas greitis) 
-  int offTime = 1000; //​milisekundžių skaičius varikliui išjungti 
-  analogWrite(motorPin,​ onSpeed); ​  //​Ƴjungia motorą 
-  delay(onTime); ​                   // palaukia onTime millisekundžių 
-  analogWrite(motorPin,​ offSpeed); ​ // išjungia motorą 
-  delay(offTime); ​                  // palaukia offTime millisekundžių 
-} 
- 
-/* 
- * motorAcceleration() – motoro greitis didėja iki didžiausio,​ tada atgal iki 0 
-void motorAcceleration(){ 
-  int delayTime = 50; //​millisekundės tarp kiekvieno greičio didėjimo žingsnio 
-  ​ 
-  //Greitina motorą 
-  for(int i = 0; i < 256; i++){ //pereina per visus greičius nuo 0 iki 255 
-    analogWrite(motorPin,​ i);   //​priskiria naują greitƳ 
-    delay(delayTime); ​          // palaukia delayTime millisekundžių 
-  } 
-  
-  //Lėtina motorą 
-  for(int i = 255; i >=0; i--){  //pereina per visus greičius nuo 255 iki 0 
-    analogWrite(motorPin,​ i);   //​priskiria naują greitƳ 
-    delay(delayTime); ​          // palaukia delayTime millisekundžių 
-  } 
- 
-</​code>​ 
- 
-**Neveikia?​** (trys dalykai kuriuos galime padaryti) 
- 
-**Nesisuka motoras?** 
-Nesisuka motoras? Jeigu naudojate savo šaltinio tranzistorių,​ patikrinkite ar jis suderinamas su P2N2222AG ​ (dauguma yra atvirkščiai apsukti). 
- 
-** Vis dar neveikia?** 
-Jeigu tai jūsų motoras patikrinkite ar jis veikia su 5 voltais, įsitikinkite,​ kad jam nereikia daugiau galios. 
- 
-**Ir toliau nesiseka?** 
-Kartais Arduino atsijungia nuo kompiuterio. Pamėginkite iš naujo prijungti USB kištuką. 
- 
-**PADARYTI GERIAU** 
- 
-**Kontroliuojame greitį:** 
- 
-Anksčiau mes žaidėme su Arduino galimybe kontroliuoti LED ryškumą, dabar mes naudosime tą pačią funkciją kontroliuoti mūsų variklio greitį. Arduino, tai daro naudojant vadinamąją pulso pločio moduliaciją (PWM). Tai priklauso nuo Arduino galimybės veikti greitai. Užuot tiesiogiai kontroliuodamas įtampą ateinančią iš kištuko, Arduino ​ perjunginės kištuką iš '(on į off)' labai greitai. Kompiuterių pasaulyje tai vyksta nuo 0 iki 5 voltų, daug kartų per sekundę, bet ir mūsų pasaulyje mes matome tai, kaip įtampa. Pavyzdžiui,​ jei Arduino PWM'​ing 50% matome šviesos blyškius 50%, nes mūsų akys yra nepakankamai greitos, pamatyti jį mirksintį. Ta pati funkcija veikia su tranzistoriais. Netikite manimi? Išbandykite patys. 
-<​code>​ 
-// motorOnThenOff();​ 
-motorOnThenOffWithSpeed();​ 
-//​motorAcceleration();​ 
-</​code>​ 
- 
-Įkelkite į programą. Jūs galite pakeisti greičius keičiant funkcijų '​(onSpeed ir off Speed)'​ duomenis. 
- 
-**Greitėjimas ir lėtėjimas:​** 
-Kodėl sustabdyti,​kodėl nepagreitinti ir vėl sulėtinti motoro? ​ Norint tai atlikti pakeiskite loop() kodą. 
-<​code>​ 
-// motorOnThenOff();​ 
-// motorOnThenOffWithSpeed();​ 
-motorAcceleration();​ 
-</​code>​ 
- 
-Tada įkelkite programą ir stebėkite kaip Jūsų motoras lėtai greitės iki viso greičio, tada pradės lėtėti. Jeigu norite pakeisti greitėjimo greitį, pakeiskite duomenis delayTime (kuo didesnis, tuo ilgesnis greitėjimo laikas). ​ 
- 
  
  
projektas_nr.10.txt · Keista: 2015/11/13 00:31 vartotojo simonas