Kazalo:

Spremenite barve LED z uporabo POT in ATTINY85: 3 koraki
Spremenite barve LED z uporabo POT in ATTINY85: 3 koraki

Video: Spremenite barve LED z uporabo POT in ATTINY85: 3 koraki

Video: Spremenite barve LED z uporabo POT in ATTINY85: 3 koraki
Video: Урок 99. Создание цифровых часов Arduino с использованием ЖК-дисплея DS3231 и семисегментного дисплея. 2024, Julij
Anonim
Spremenite barve LED z uporabo POT in ATTINY85
Spremenite barve LED z uporabo POT in ATTINY85
Spremenite barve LED z uporabo POT in ATTINY85
Spremenite barve LED z uporabo POT in ATTINY85
Spremenite barve LED z uporabo POT in ATTINY85
Spremenite barve LED z uporabo POT in ATTINY85

V tem projektu uporabljamo potenciometer (POT) za spreminjanje barv v LED z uporabo ATTINY85.

Nekaj definicij -

Potenciometer je naprava z majhnim vijačnim / obračalnim mehanizmom, ki ob obračanju oddaja različne električne upore. Na zgornji označeni sliki lahko vidite, da ima POT 3 zatiči, in sicer +, -, in izhod. POT se napaja s priključitvijo zatičev + in - na vcc oziroma ozemljitev na napajalnik. Ko vrtite vijak POT, se izhodni upor spremeni in povzroči, da se LED zmanjša ali poveča intenzivnost.. Z drugimi besedami, gre za spremenljiv upor. Uporabljajo se pri takšnih stvareh, kot so zatemnilniki svetlobe na domu.

LED - To je majhna lučka, ki sveti, ko skozi njo prehaja električni tok. V tem primeru bomo uporabili večbarvno LED, ki ima 3 zatiči, en ozemljitveni (srednji) in dva zatiča, ki ob sprožitvi pokažeta zeleno oziroma rdečo.

ATTINY85-to je majhen poceni mikročip, ki ga lahko programirate kot Arduino.

Pregled - Izhod iz POT je priključen na ATTINY85. Ko je vijak POT obrnjen, se razlika upornosti prikaže kot število med 0 in 255. ATTINY lahko to izmeri in izvede različna dejanja, odvisno od vrednosti upora POT. V tem primeru smo ga programirali za povezavo z LED na naslednji način.

Če je število večje od 170, preklopite LED na ZELENO.

Če je število manjše od 170, vendar večje od 85, preklopite LED na RDEČO.

če je število manjše od 85, vklopite LED ZELENO IN RDEČO, kar ima za posledico ORANŽNO.

BOM

1 x 3 -polna LED 1 x ATTINY 85

1 x POT (B100K)

1 x plošča in kabli

1 napajalnik.

1. korak: Programiranje ATTINY85

Kar zadeva programiranje ATTINY85, glejte moja prejšnja navodila-https://www.instructables.com/id/15-Dollar-Attiny8…

Koda je prikazana spodaj. Nekaj točk, ki jih je treba omeniti, je, da sta dva zatiča ATTINY, PB3, fizični pin 2, PB2, fizični zatič 7 v digitalnem načinu priključena na LED, da se spremeni barva. ATTINY pin PB4, fizični pin 3, je v analognem načinu priključen na POT, kar pomeni, da lahko bere vrednosti med 0 in 254. Prilagodil sem kodo, ki sem jo našel na internetu, zato priznavam to delo. -

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) // *** // pb4 - vhod za POT // pb3 led pin 1 // pb2 led pin 3 // frekvenca ATTINY 85 nastavljena na notranjih 8 MHz/* ta funkcija inicializira ADC

Opombe predkalerja ADC:

Predkaler ADC je treba nastaviti tako, da je vhodna frekvenca ADC med 50 - 200kHz.

Za več informacij glejte tabelo 17.5 "Izbire predkalerja ADC" v poglavju 17.13.2 "ADCSRA - Register krmiljenja in stanja ADC A" (strani 140 in 141 na celotnem podatkovnem listu ATtiny25/45/85, Rev. 2586M – AVR – 07/ 10)

Veljavne vrednosti prednapenjalnika za različne takte

Ura Razpoložljive vrednosti predkalerja --------------------------------------- 1 MHz 8 (125 kHz), 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)

Spodnji primer nastavite predkaler na 128 za mcu, ki deluje na 8MHz

(v podatkovnem listu preverite pravilne vrednosti bitov za nastavitev predkalerja) */

// 8-bitna ločljivost

// nastavite ADLAR na 1, da omogočite rezultat premika v levo (na voljo so le bitovi ADC9.. ADC2) // potem, samo branje ADCH zadostuje za 8-bitne rezultate (256 vrednosti) DDRB | = (1 << PB3); // Pin je nastavljen kot izhod. DDRB | = (1 << PB2); // Pin je nastavljen kot izhod. ADMUX = (1 << ADLAR) | // rezultat premika v levo (0 << REFS1) | // Kompleti ref. napetost do VCC, bit 1 (0 << REFS0) | // Kompleti ref. napetost do VCC, bit 0 (0 << MUX3) | // uporabite ADC2 za vhod (PB4), MUX bit 3 (0 << MUX2) | // uporabite ADC2 za vhod (PB4), MUX bit 2 (1 << MUX1) | // uporabite ADC2 za vhod (PB4), MUX bit 1 (0 << MUX0); // uporabite ADC2 za vhod (PB4), MUX bit 0

ADCSRA =

(1 << ADEN) | // Omogoči ADC (1 << ADPS2) | // nastavite predkaler na 64, bit 2 (1 << ADPS1) | // nastavimo predkaler na 64, bit 1 (0 << ADPS0); // nastavite predkaler na 64, bit 0}

int main (void)

{initADC ();

medtem ko (1)

{

ADCSRA | = (1 << ADSC); // zažene merjenje ADC medtem ko (ADCSRA & (1 << ADSC)); // počakajte, da se pretvorba konča

če (ADCH> 170)

{PORTB | = (1 << PB3); // Pin nastavljen na HIGH. PORTB | = (1 << PB2); // Pin nastavljen na HIGH. } če if (ADCH 85) {PORTB | = (1 << PB3); // Pin nastavljen na HIGH. PORTB & = ~ (1 << PB2); // Pin nastavljen na LOW

} drugo {

PORTB | = (1 << PB2); // Pin nastavljen na HIGH. PORTB & = ~ (1 << PB3); // Pin nastavljen na LOW

}

}

vrnitev 0;

}

2. korak: Vezje

Vezje
Vezje

ATTINY zatiči

PB3, fizični pin 2 - priključen LED pin 1

PB4, fizični zatič 3, je priključen na srednji zatič POT

GND, fizični zatič 4, je priključen na negativno vodilo - napajalnik

PB2, fizični pin 7 - priključen LED pin 3

VCC, fizični zatič 8, je priključen na pozitivno vodilo - napajalnik

POT

poz in neg pin priključena na ustrezne tirnice - napajanje.

LED

srednji zatič, povezan z negativno tirnico - napajalnik

Poskusil sem z napajanjem 3 in 3,3 volta in oboje je delovalo.

3. korak: Zaključek

Zaključek
Zaključek

Sposobnost ATTINY85 za premikanje med analognim in digitalnim načinom je zelo močna in se lahko uporablja v številnih različnih aplikacijah, npr. vožnja motorjev s spremenljivo hitrostjo in ustvarjanje glasbenih not. To bom raziskal v prihodnjih navodilih. Upam, da se vam je to zdelo koristno.

Priporočena: