projektas_nr.6
Skirtumai
Čia matote skirtumus tarp pasirinktos versijos ir esamo dokumento.
| Kitas pataisymas | Previous revision | ||
| projektas_nr.6 [2015/10/25 17:50] – sukurtas 193.219.47.27 | projektas_nr.6 [2015/12/02 14:11] (esamas) – simonas | ||
|---|---|---|---|
| Linija 1: | Linija 1: | ||
| - | **Projektas Nr. 6. Šviesa – Fotorezistoriai** | + | ====== |
| + | |||
| + | **Ką darysime? | ||
| + | Potenciometras yra puikus įvesties įrankis žmogaus valdomuose bandymuose. Tačiau ką naudosime aplinkos valdomame bandyme? Vietoje pasukimu valdomos varžos (potenciometro) naudosime šviesa valdomą varžą (fotorezistorių). „Arduino“ tiesiogiai nejaučia varžos, tačiau jaučia įtampą, taigi reiks nustatyti įtampos daliklį [[http:// | ||
| + | |||
| + | **Grandinės dalys** | ||
| + | * CIRC-09 Maketo plokštės šablonas x1 | ||
| + | * 2 kištukų kontaktas | ||
| + | * Fotorezistorius x1 | ||
| + | * Laidai x3 | ||
| + | * 10k rezistorius (Rudas-Juodas-Oranžinis) x1 | ||
| + | * 560 rezistorius (Žalias-Mėlynas-Rudas) x1 | ||
| + | * Žalias šviesos diodas x1 | ||
| + | |||
| + | **Principinė schema** | ||
| + | |||
| + | {{: | ||
| + | |||
| + | **Grandinės šablonas** | ||
| + | |||
| + | {{: | ||
| + | |||
| + | **Surinkta grandinė** | ||
| + | |||
| + | {{: | ||
| + | |||
| + | **Šaltiniai** | ||
| + | [[http:// | ||
| + | |||
| + | [[http:// | ||
| + | |||
| + | |||
| + | **Programos kodas** (nereikia visko spausdinti) | ||
| + | Atsisiųsti programos kodą: [[http:// | ||
| + | (nukopijuokite tekstą ir įklijuokite tuščiame | ||
| + | < | ||
| + | /* | ||
| + | * A simple programme that will change the intensity of | ||
| + | * an LED based * on the amount of light incident on | ||
| + | * the photo resistor. | ||
| + | * | ||
| + | */ | ||
| + | |||
| + | // | ||
| + | int lightPin = 0; //the analog pin the photoresistor is | ||
| + | //connected to | ||
| + | //the photoresistor is not calibrated to any units so | ||
| + | //this is simply a raw sensor value (relative light) | ||
| + | //LED Pin | ||
| + | int ledPin = 9; //the pin the LED is connected to | ||
| + | //we are controlling brightness so | ||
| + | //we use one of the PWM (pulse width | ||
| + | // modulation pins) | ||
| + | void setup() | ||
| + | { | ||
| + | pinMode(ledPin, | ||
| + | } | ||
| + | /* | ||
| + | * loop() - this function will | ||
| + | start after setup | ||
| + | * finishes and then repeat | ||
| + | */ | ||
| + | void loop() | ||
| + | { | ||
| + | int lightLevel = analogRead(lightPin); | ||
| + | // lightlevel | ||
| + | | ||
| + | // | ||
| + | // | ||
| + | |||
| + | |||
| + | |||
| + | | ||
| + | // | ||
| + | //0 and 255 | ||
| + | | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | **Neveikia? | ||
| + | |||
| + | Šviesos diodas nešviečia - nuolatinė daroma klaida. Kad tik kas nors pagamintų LED diodą, šviečiantį prijungus bet kuria puse... Apsukite diodą priešingai. | ||
| + | |||
| + | Jis nereaguoja į šviesos kiekio pakitimus - kadangi laidai aplink fotorezistorių arti vienas kito, juos lengva supainioti. Dar kartą įsitikinkite, | ||
| + | |||
| + | Vis dar neveikia? - Kambarys gali būti per šviesus arba per tamsus. Pabandykite pajunginėti šviesas, galbūt padės. Jei turite, pasišvieskite žibintuvėliu. | ||
| + | |||
| + | **Patobulinkime? | ||
| + | |||
| + | **Atvirkščias atsakas:** | ||
| + | Jeigu norite atvirkščio atsako į šviesos pokyčius, pakeiskime kodo eilutę: | ||
| + | |||
| + | < | ||
| + | < | ||
| + | |||
| + | Atsisiųskite į Arduino plokštę ir išbandykite. | ||
| + | |||
| + | **Naktinis apšvietimas: | ||
| + | Vietoje to, kad LED ryškumas kistų nuo šviesos, pabandykime jį įjungti ar išjungti ties pasirinkta slenkstine verte. pakeiskime loop() kodą: | ||
| + | < | ||
| + | void loop(){ | ||
| + | int threshold = 300; | ||
| + | if(analogRead(lightPin) > threshold){ | ||
| + | digitalWrite(ledPin, | ||
| + | }else{ | ||
| + | digitalWrite(ledPin, | ||
| + | } | ||
| + | } </ | ||
| + | |||
| + | **Šviesa kontroliuoja servo variklį: | ||
| + | Išbandykime savo naujus šviesos aptikimo įgūdžius valdydami servo motorą (ir tuo pačiu šiek tiek pažaisdami su Arduino kodu). Prijunkite servą prie kontakto 9 ([[projektas_nr.8|Servo pamoka]]. Atsidarykime valdymo svirtelės (Knob) pavyzdinę programą: < | ||
| + | |||
| + | Išbandykime visas servo galimybes: | ||
| + | Pastebėsite, | ||
| + | < | ||
| + | val = map(val, 0, 1023, 0, 179);</ | ||
| + | Daugiau instrukcijų šia tema rasite [[http:// | ||
| [[projektas_nr.7|Kitas projektas. Matuosime temperatūrą davikliu TMP36]] | [[projektas_nr.7|Kitas projektas. Matuosime temperatūrą davikliu TMP36]] | ||
| + | |||
| + | [[arduivadas_projektai|Atgal į projektus]] | ||
projektas_nr.6.1445788203.txt.gz · Keista: vartotojo 193.219.47.27
