projektas_nr.13
Skirtumai
Čia matote skirtumus tarp pasirinktos versijos ir esamo dokumento.
| Abiejų pusių ankstesnis pataisymasPrevious revisionKitas pataisymas | Previous revision | ||
| projektas_nr.13 [2015/10/25 18:03] – 193.219.47.27 | projektas_nr.13 [2016/01/03 13:20] (esamas) – simonas | ||
|---|---|---|---|
| Linija 1: | Linija 1: | ||
| ====== Projektas Nr. 13. Daugiau šviesos diodų – Postūmio registras 74HC595 ====== | ====== Projektas Nr. 13. Daugiau šviesos diodų – Postūmio registras 74HC595 ====== | ||
| + | |||
| + | **Ką darome?** | ||
| + | Laikas pradėti dirbti su lustais arba integriniais grandynais kaip juos yra įprasta vadinti. Lusto išorė gali būti labai apgaulinga. Pavyzdžiui, | ||
| + | |||
| + | **Grandinės dalys:** | ||
| + | *330 Ω Rezistorius (oranžinis-oranžinis-rudas) x8 | ||
| + | *Postūmio registras 74HC595 x1 | ||
| + | *Jungiamieji laidai x13 | ||
| + | *5mm raudoni/ | ||
| + | |||
| + | **Grandininė schema** | ||
| + | |||
| + | {{:: | ||
| + | |||
| + | **Grandinės šablonas** | ||
| + | |||
| + | {{:: | ||
| + | |||
| + | **Surinkta grandinė** | ||
| + | |||
| + | {{:: | ||
| + | |||
| + | **Šaltiniai** | ||
| + | [[http:// | ||
| + | [[http:// | ||
| + | |||
| + | **Kodas** (Nukopijuokite kodą į IDE atvertą langą). Atsisiųskite kodą iš: ( http:// | ||
| + | |||
| + | < | ||
| + | /* | ||
| + | | ||
| + | | ||
| + | | ||
| + | * | ||
| + | * Mes jau kontroliavome 8LED’us tačiau čia, tai padaroma šiek tiek | ||
| + | * kitaip. Vietoj to kad naudotume 8 kištukus naudosime tik 3 | ||
| + | * ir papildomą lustą. | ||
| + | * | ||
| + | * | ||
| + | */ | ||
| + | |||
| + | |||
| + | // | ||
| + | // | ||
| + | // | ||
| + | //jungtis kuri turi 3 kištukus | ||
| + | intdata = 2; | ||
| + | intclock = 3; | ||
| + | intlatch = 4; | ||
| + | |||
| + | //Naudojama pavienių LED'ų valdymui | ||
| + | intledState = 0; | ||
| + | constintON = HIGH; | ||
| + | constintOFF = LOW; | ||
| + | |||
| + | |||
| + | /* | ||
| + | * setup() - ši funkcija pradeda veikti iš karto, kai tik įjungiate savo „Arduino“ | ||
| + | * Nustatome savo 3 valdomus kaištukus į išeigos rėžimą | ||
| + | */ | ||
| + | voidsetup() | ||
| + | { | ||
| + | pinMode(data, | ||
| + | pinMode(clock, | ||
| + | pinMode(latch, | ||
| + | } | ||
| + | |||
| + | /* | ||
| + | * loop() - ši funkcija prasidės iš karto po nustatymų, o tada kartosis | ||
| + | * nustatome kuriuos LED'us įjungsime, | ||
| + | */ | ||
| + | voidloop() | ||
| + | { | ||
| + | int delayTime = 100; //the number of milliseconds to delay between LED updates | ||
| + | | ||
| + | updateLEDs(i); | ||
| + | delay(delayTime); | ||
| + | } | ||
| + | } | ||
| + | /* | ||
| + | * updateLEDs() - sends the LED states set in ledStates to the 74HC595 | ||
| + | * sequence | ||
| + | */ | ||
| + | void updateLEDs (int value { | ||
| + | digitalWrite(latch, | ||
| + | shiftOut(data, | ||
| + | digitalWrite(latch, | ||
| + | } | ||
| + | |||
| + | /* | ||
| + | * updateLEDsLong() - sends the LED states set in ledStates to the 74HC595 | ||
| + | * sequence. Same as updateLEDs except the shifting out is done in software | ||
| + | * so you can see what is happening. | ||
| + | */ | ||
| + | void updateLEDsLong(intvalue) { | ||
| + | digitalWrite(latch, | ||
| + | for(int i = 0; i < 8;i++) { //Will repeat 8 times(once for each bit) | ||
| + | int bit = value & B10000000; //We usea " | ||
| + | //bit in our number(the one we are addressing this time thro | ||
| + | //ugh | ||
| + | value = value<< | ||
| + | // be | ||
| + | //bit 8 and we will do our math on it | ||
| + | if(bit==128) {digitalWrite(data, | ||
| + | else{digitalWrite(data, | ||
| + | digitalWrite(clock, | ||
| + | delay(1); | ||
| + | digitalWrite(clock, | ||
| + | } | ||
| + | digitalWrite(latch, | ||
| + | } | ||
| + | |||
| + | |||
| + | //These are used in the bit wise math that we use to change individual LED's | ||
| + | //For more details http:// | ||
| + | int bits[] = {B00000001, | ||
| + | int masks[] = {B11111110, | ||
| + | /* | ||
| + | * changeLED(intled, | ||
| + | * LEDsare 0 to 7 andstateiseither 0 - OFFor 1 - ON | ||
| + | */ | ||
| + | void changeLED(intled, | ||
| + | ledState = ledState & masks[led]; | ||
| + | if(state==ON){ledState = ledState | bits[led]; | ||
| + | //dState | ||
| + | updateLEDs(ledState); | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | **Neveikia? | ||
| + | *Arduino galios šviesos diodas užgęsta: | ||
| + | Tai atsitiko mums kelis kartus, taip atsitinka kai lustas įdėtas ne ta puse. Jei pataisysite greitai niekas nesuges. | ||
| + | |||
| + | *Nevisai veikia? | ||
| + | Atsiprašau, | ||
| + | |||
| + | | ||
| + | Atsiųskite mums e-laišką, ši grandinė yra kartu ir paprasta ir sudėtinga tuo pačiu metu. Mes norime išgirsti apie jums kylančias problemas, kad galėtume jas aprašyti ateities leidiniuose. [email protected] | ||
| + | |||
| + | **Padaryti geriau:** | ||
| + | |||
| + | *Daroma sunkiuoju būdu: | ||
| + | | ||
| + | |||
| + | *Individualių LED’ų kontroliavimas: | ||
| + | Laikas pradėti kontroliuoti LED'us panašiai kaip darėme CIRC02. Kadangi 8 LED'ai yra išsaugoti viename baite (8bitai) detalėms kaip tai veikia pabandykite | ||
| + | |||
| + | *Mūsų įgyvendinimas. | ||
| + | Pakeiskite kilpos()kodą su: | ||
| + | < | ||
| + | int delayTime = 100; //the number of milliseconds to delay | ||
| + | //between LED updates | ||
| + | for(int i = 0; i < 8; i++){ | ||
| + | changeLED(i, | ||
| + | delay(delayTime); | ||
| + | } | ||
| + | for(int i = 0; i < 8; i++){ | ||
| + | changeLED(i, | ||
| + | delay(delayTime); | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | Ir įkėlus tai lemputės užsidegs viena po kitos ir užges taip pat. Patikrinkite kodą ir vikipediją, | ||
| + | |||
| + | **Daugiau animacijų: | ||
| + | Dabar darosi įdomiau. Jei pažvelgsite atgal į CIRC02 (8 LED Fun) kodą pamatysite, kad mes keičiame LED'us naudodami < | ||
| + | |||
| [[projektas_nr.14|Paskutinis projektas. Žaidžiame Simonas sako: TAIP]] | [[projektas_nr.14|Paskutinis projektas. Žaidžiame Simonas sako: TAIP]] | ||
| [[arduivadas_projektai|Atgal į projektus]] | [[arduivadas_projektai|Atgal į projektus]] | ||
projektas_nr.13.1445788999.txt.gz · Keista: vartotojo 193.219.47.27
