Turinys:

Pakeiskite LED spalvas naudodami puodą ir ATTINY85: 3 žingsniai
Pakeiskite LED spalvas naudodami puodą ir ATTINY85: 3 žingsniai

Video: Pakeiskite LED spalvas naudodami puodą ir ATTINY85: 3 žingsniai

Video: Pakeiskite LED spalvas naudodami puodą ir ATTINY85: 3 žingsniai
Video: Parduodame ŠVIESU PROJEKTORIU SU Bluetooth galite klausytis savo mėgstamos muzikos su spalvomis 2024, Lapkritis
Anonim
Pakeiskite LED spalvas naudodami puodą ir ATTINY85
Pakeiskite LED spalvas naudodami puodą ir ATTINY85
Pakeiskite LED spalvas naudodami puodą ir ATTINY85
Pakeiskite LED spalvas naudodami puodą ir ATTINY85
Pakeiskite LED spalvas naudodami puodą ir ATTINY85
Pakeiskite LED spalvas naudodami puodą ir ATTINY85

Šiame projekte mes naudojame potenciometrą (POT), kad pakeistume šviesos diodo spalvas naudodami ATTINY85.

Kai kurie apibrėžimai -

Potenciometras yra įtaisas su mažu varžtu / tekinimo mechanizmu, kuris pasukus išskiria skirtingą elektros varžą. Iš aukščiau esančio paveikslėlio su anotacija matote, kad POT turi 3 kaiščius, būtent +, - ir išvestį. POT maitinamas prijungus + ir - kištukus prie maitinimo šaltinio atitinkamai prie vcc ir įžeminimo. Pasukus POT varžtą, pasikeičia išėjimo varža ir dėl to šviesos diodas sumažėja arba padidėja.. Kitaip tariant, tai kintamas rezistorius. Jie naudojami tokiuose dalykuose kaip namų šviesos reguliatoriai.

Šviesos diodas - tai maža lemputė, kuri užsidega, kai per ją praeina elektros srovė. Šiuo atveju mes naudosime įvairiaspalvį šviesos diodą, kuris turi 3 kaiščius, vieną įžeminimą (vidurį) ir du kaiščius, kurie paleidžiant rodomi atitinkamai žalia ir raudona.

ATTINY85-tai nedidelė nebrangi mikroschema, kurią galite užprogramuoti kaip „Arduino“.

Apžvalga - POT išvestis prijungta prie ATTINY85. Sukant POT varžtą, atsparumo skirtumui rodomas skaičius nuo 0 iki 255. ATTINY gali tai išmatuoti ir atlikti skirtingus veiksmus, priklausomai nuo POT varžos vertės. Šiuo atveju mes užprogramavome jį prisijungti prie šviesos diodo taip.

Jei skaičius didesnis nei 170, perjunkite šviesos diodą į ŽALIĄ.

Jei skaičius yra mažesnis nei 170, bet didesnis nei 85, perjunkite šviesos diodą į RAUDONĄ.

jei skaičius yra mažesnis nei 85, įjunkite ŽALIĄ IR RAUDONĄ šviesos diodą, todėl atsiranda oranžinė spalva.

BOM

1 x 3 kontaktų šviesos diodas 1 x ATTINY 85

1 x POT (B100K)

1 x duonos lenta ir kabeliai

1 maitinimo šaltinis.

1 žingsnis: ATTINY85 programavimas

Kalbant apie ATTINY85 programavimą, žiūrėkite mano ankstesnį nurodymą-https://www.instructables.com/id/15-Dollar-Attiny8…

Kodas parodytas žemiau. Reikia atkreipti dėmesį į tai, kad du ATTINY kaiščiai, PB3, fizinis kaištis 2, PB2, fizinis kaištis 7 yra prijungti skaitmeniniu režimu prie šviesos diodo, kad būtų pakeista spalva. ATTINY kaištis PB4, fizinis 3 kaištis, yra prijungtas prie POT analoginiu režimu, o tai reiškia, kad jis gali nuskaityti reikšmes nuo 0 iki 254. Aš pritaikiau kodą, kurį radau internete, todėl pripažįstu tą darbą. -

void initADC () {// *** // *** Pinout ATtiny25/45/85: // *** PDIP/SOIC/TSSOP // *** ============= ================================================== ============================= // // // *** (PCINT5/RESET/ADC0/dW) PB5 [1]* [8] VCC // *** (PCINT3/XTAL1/CLKI/OC1B/ADC3) PB3 [2] [7] PB2 (SCK/USCK/SCL/ADC1/T0/INT0/PCINT2) //* ** (PCINT4/XTAL2/CLKO/OC1B/ADC2) PB4 [3] [6] PB1 (MISO/DO/AIN1/OC0B/OC1A/PCINT1) // *** GND [4] [5] PB0 (MOSI/ DI/SDA/AIN0/OC0A/OC1A/AREF/PCINT0) // ** ši funkcija inicijuoja ADC

ADC prescaler Pastabos:

ADC prescaler reikia nustatyti taip, kad ADC įvesties dažnis būtų nuo 50 iki 200 kHz.

Daugiau informacijos rasite 17.13.2 skyriaus „ADCSRA - ADC valdymo ir būsenos registras A“17.5 lentelėje „ADC prescaler Selections“(ADCSRA - ADC valdymo ir būsenos registras A) (140 ir 141 puslapiai visuose ATtiny25/45/85 duomenų lapuose, red. 2586M – AVR – 07/ 10)

Tinkamos išankstinio kalibravimo vertės įvairiems laikrodžio greičiams

Laikrodis Galimos prescaler vertės --------------------------------------- 1 MHz 8 (125kHz), 16 (62,5 kHz) 4 MHz 32 (125 kHz), 64 (62,5 kHz) 8 MHz 64 (125 kHz), 128 (62,5 kHz) 16 MHz 128 (125 kHz)

Žemiau pateiktame pavyzdyje nustatykite prescalerį į 128, kad mcu veiktų 8 MHz dažniu

(patikrinkite, ar duomenų lape yra tinkamų bitų reikšmių, kad nustatytumėte preskalerį) */

// 8 bitų raiška

// nustatykite ADLAR į 1, kad įjungtumėte kairiojo poslinkio rezultatą (galimi tik bitai ADC9.. ADC2) // tada 8 bitų rezultatams pakanka tik nuskaityti ADCH (256 reikšmės) DDRB | = (1 << PB3); // Smeigtukas nustatytas kaip išvestis. DDRB | = (1 << PB2); // Smeigtukas nustatytas kaip išvestis. ADMUX = (1 << ADLAR) | // kairiojo poslinkio rezultatas (0 << REFS1) | // Rinkiniai nuorod. įtampa iki VCC, 1 bitas (0 << REFS0) | // Rinkiniai nuorod. įtampa iki VCC, bitas 0 (0 << MUX3) | // įėjimui naudokite ADC2 (PB4), 3 MUX bitą (0 << MUX2) | // įėjimui naudokite ADC2 (PB4), MUX bitą 2 (1 << MUX1) | // įėjimui naudokite ADC2 (PB4), MUX bitą 1 (0 << MUX0); // įėjimui naudokite ADC2 (PB4), MUX bitą 0

ADCSRA =

(1 << ADEN) | // Įgalinti ADC (1 << ADPS2) | // nustatykite prescaler į 64 bitą 2 (1 << ADPS1) | // nustatykite prescaler į 64 bitą 1 (0 << ADPS0); // nustatykite prescaler į 64, bitą 0}

int main (niekinis)

{initADC ();

kol (1)

{

ADCSRA | = (1 << ADSC); // pradėti ADC matavimą, kol (ADCSRA & (1 << ADSC)); // palaukite, kol konversija bus baigta

jei (ADCH> 170)

{PORTB | = (1 << PB3); // Smeigtukas nustatytas į HIGH. PORTB | = (1 << PB2); // Smeigtukas nustatytas į HIGH. } else if (ADCH 85) {PORTB | = (1 << PB3); // Smeigtukas nustatytas į HIGH. PORTB & = ~ (1 << PB2); // Smeigtukas nustatytas į LOW

} Kitas {

PORTB | = (1 << PB2); // Smeigtukas nustatytas į HIGH. PORTB & = ~ (1 << PB3); // Smeigtukas nustatytas į LOW

}

}

grįžti 0;

}

2 žingsnis: grandinė

Grandinė
Grandinė

ATTINY kaiščiai

PB3, fizinis kaištis 2 - prijungtas LED kaištis 1

PB4, fizinis kaištis 3, yra prijungtas prie vidurinio kaiščio POT

GND, fizinis 4 kaištis, yra prijungtas prie neigiamo bėgio - maitinimo šaltinio

PB2, fizinis kaištis 7 - prijungtas LED kaištis 3

VCC, fizinis 8 kaištis, yra prijungtas prie teigiamo bėgio maitinimo šaltinio

POT

pos ir neg kaištis prijungti prie atitinkamų bėgių - maitinimo šaltinis.

LED

vidurinis kaištis prijungtas prie neigiamo bėgio - maitinimo šaltinis

Eksperimentavau naudodamas 3 ir 3,3 voltų maitinimo šaltinį ir abu pavyko.

3 žingsnis: Išvada

Išvada
Išvada

„ATTINY85“galimybė perjungti iš analoginio į skaitmeninį režimą yra labai galinga ir gali būti naudojama daugelyje skirtingų programų, pvz. vairuoti kintamo greičio variklius ir kurti muzikines natas. Aš tai išnagrinėsiu būsimose instrukcijose. Tikiuosi, kad jums tai buvo naudinga.

Rekomenduojamas: