Sisällysluettelo:

Vaihda LED -värejä POTilla ja ATTINY85: 3 askeleella
Vaihda LED -värejä POTilla ja ATTINY85: 3 askeleella

Video: Vaihda LED -värejä POTilla ja ATTINY85: 3 askeleella

Video: Vaihda LED -värejä POTilla ja ATTINY85: 3 askeleella
Video: Using Digispark Attiny85 Mini Arduino boards: Lesson 108 2024, Heinäkuu
Anonim
Muuta LED -värejä POTilla ja ATTINY85: llä
Muuta LED -värejä POTilla ja ATTINY85: llä
Vaihda LED -värejä POTilla ja ATTINY85: llä
Vaihda LED -värejä POTilla ja ATTINY85: llä
Muuta LED -värejä POTilla ja ATTINY85: llä
Muuta LED -värejä POTilla ja ATTINY85: llä

Tässä projektissa käytämme potentiometriä (POT) LED -valojen värien muuttamiseen ATTINY85: n avulla.

Jotkut määritelmät -

Potentiometri on laite, jossa on pieni ruuvi / kääntömekanismi, joka kääntäessään tuottaa erilaisia sähköresistansseja. Yllä olevasta huomautetusta kuvasta näet, että POT -laitteessa on 3 nastaa, nimittäin +, - ja lähtö. POT saa virtaa kytkemällä + ja - nastat virtalähteeseen ja maadoitettuina virtalähteeseen. Kun POT -ruuvia kierretään, lähtövastus muuttuu ja LED -valo laskee tai kasvaa.. Toisin sanoen se on muuttuva vastus. Niitä käytetään esimerkiksi kodin valon himmentimissä.

LED - Tämä on pieni valo, joka syttyy, kun sähkövirta kulkee sen läpi. Tässä tapauksessa käytämme moniväristä LED -valoa, jossa on 3 nastaa, yksi maadoitus (keskellä) ja kaksi nastaa, jotka näyttävät vihreää ja punaista vastaavasti.

ATTINY85-tämä on pieni edullinen mikrosiru, jonka voit ohjelmoida kuten Arduino.

Yleiskatsaus - POT -laitteen lähtö on kytketty ATTINY85 -laitteeseen. Kun POT -ruuvia kierretään, eroresistanssi annetaan numerona välillä 0 ja 255. ATTINY voi mitata tämän ja tehdä erilaisia toimenpiteitä POT -vastuksen arvon mukaan. Tässä tapauksessa olemme ohjelmoineet sen muodostamaan yhteyden LED -valoon seuraavasti.

Jos luku on suurempi kuin 170, vaihda LED VIHREÄKSI.

Jos luku on alle 170 mutta suurempi kuin 85, vaihda LED PUNAISEKSI.

jos numero on alle 85, kytke päälle vihreä ja punainen LED, jolloin tuloksena on ORANSSI.

BOM

1 x 3 -nastainen LED 1 x ATTINY 85

1 x POT (B100K)

1 x leipälauta ja kaapelit

1 virtalähde.

Vaihe 1: ATTINY85: n ohjelmointi

ATTINY85: n ohjelmoinnin osalta tutustu edelliseen ohjeeseeni-https://www.instructables.com/id/15-Dollar-Attiny8…

Koodi näkyy alla. Huomattakoon, että kaksi ATTINY -nastaa, PB3, fyysinen nasta 2, PB2, fyysinen nasta 7 on kytketty digitaalisessa tilassa LED -valoon värinmuutoksen aikaansaamiseksi. ATTINY -nasta PB4, fyysinen nasta 3, on kytketty POT -laitteeseen analogisessa tilassa, mikä tarkoittaa, että se voi lukea arvot välillä 0 ja 254. Muokasin Internetistä löytämäni koodin, joten tunnustan tämän työn. -

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 - tulo POT: lle // pb3 led -nasta 1 // pb2 led -nasta 3 // ATTINY 85 -taajuus asetettu sisäiselle 8 MHz/* tämä toiminto alustaa ADC: n

ADC Prescaler Huomautuksia:

ADC Prescaler on asetettava siten, että ADC: n tulotaajuus on 50-200 kHz.

Jos haluat lisätietoja, katso taulukko 17.5 "ADC Prescaler Selections" luvussa 17.13.2 "ADCSRA - ADC Control and Status Register A" (sivut 140 ja 141 täydellisessä ATtiny25/45/85 -tietolomakkeessa, Rev. 2586M – AVR -07/ 10)

Kelvolliset esisäätöarvot eri kellonopeuksille

Kello Käytettävissä olevat esivalinta-arvot --------------------------------------- 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)

Alla olevassa esimerkissä aseta esiasetin 128: een 8 MHz: n taajuudella

(tarkista esitteestä oikeat bittiarvot esiasetuksen asettamiseksi) */

// 8-bittinen resoluutio

// aseta ADLAR-arvoksi 1, jotta vasen siirto saadaan käyttöön (vain bitit ADC9.. ADC2 ovat käytettävissä) // sitten vain ADCH-lukeminen riittää 8-bittisille tuloksille (256 arvoa) DDRB | = (1 << PB3); // Nasta on asetettu lähtöön. DDRB | = (1 << PB2); // Nasta on asetettu lähtöön. ADMUX = (1 << ADLAR) | // vasen siirto tulos (0 << REFS1) | // Asettaa viite jännite VCC: hen, bitti 1 (0 << REFS0) | // Asettaa viite jännite VCC: hen, bitti 0 (0 << MUX3) | // käytä ADC2 -tuloa (PB4), MUX -bittiä 3 (0 << MUX2) | // käytä ADC2 -tuloa (PB4), MUX -bittiä 2 (1 << MUX1) | // käytä ADC2 -tuloa (PB4), MUX -bittiä 1 (0 << MUX0); // käytä tuloon ADC2 (PB4), MUX -bitti 0

ADCSRA =

(1 << ADEN) | // Ota ADC käyttöön (1 << ADPS2) | // aseta esiasetin arvoon 64, bitti 2 (1 << ADPS1) | // aseta esiasetin arvoon 64, bitti 1 (0 << ADPS0); // aseta esiasetin arvoon 64, bitti 0}

int main (mitätön)

{initADC ();

samalla (1)

{

ADCSRA | = (1 << ADSC); // aloittaa ADC -mittauksen, kun (ADCSRA & (1 << ADSC)); // odota, kunnes muunnos on valmis

jos (ADCH> 170)

{PORTB | = (1 << PB3); // Nasta asetettu HIGH. PORTB | = (1 << PB2); // Nasta asetettu HIGH. } muu jos (ADCH 85) {PORTB | = (1 << PB3); // Nasta asetettu HIGH. PORTB & = ~ (1 << PB2); // Nasta asetettu LOW

} muuta {

PORTB | = (1 << PB2); // Nasta asetettu HIGH. PORTB & = ~ (1 << PB3); // Nasta asetettu LOW

}

}

palauta 0;

}

Vaihe 2: Piiri

Piiri
Piiri

ATTINY nastat

PB3, fyysinen nasta 2 - kytketty LED -nasta 1

PB4, fyysinen nasta 3, on kytketty keskitappiin POT

GND, fyysinen nasta 4, on kytketty negatiiviseen kiskoon - virtalähteeseen

PB2, fyysinen nasta 7 - kytketty LED -nasta 3

VCC, fyysinen nasta 8, on kytketty positiiviseen kiskoon - virtalähteeseen

POT

pos ja neg -nasta yhdistetty kiskoihin - virtalähde.

LED

keskitappi kytketty negatiiviseen kiskoon - virtalähde

Kokeilin 3 ja 3,3 voltin virtalähdettä ja molemmat toimivat.

Vaihe 3: Johtopäätös

Johtopäätös
Johtopäätös

ATTINY85: n kyky siirtyä analogisen ja digitaalisen tilan välillä on erittäin tehokas ja sitä voidaan käyttää useissa eri sovelluksissa, esim. vaihtelevan nopeuden moottoreiden käyttäminen ja nuottien luominen. Tutkin tätä tulevissa ohjeissa. Toivottavasti olet kokenut tämän hyödylliseksi.

Suositeltava: