Sisukord:

LED -värvide muutmine POTi ja ATTINY85 abil: 3 sammu
LED -värvide muutmine POTi ja ATTINY85 abil: 3 sammu

Video: LED -värvide muutmine POTi ja ATTINY85 abil: 3 sammu

Video: LED -värvide muutmine POTi ja ATTINY85 abil: 3 sammu
Video: Я работаю в Страшном музее для Богатых и Знаменитых. Страшные истории. Ужасы. 2024, November
Anonim
Muutke LED -värve poti ja ATTINY85 abil
Muutke LED -värve poti ja ATTINY85 abil
Muutke LED -värve poti ja ATTINY85 abil
Muutke LED -värve poti ja ATTINY85 abil
Muutke LED -värve poti ja ATTINY85 abil
Muutke LED -värve poti ja ATTINY85 abil

Selles projektis kasutame potentsiomeetrit (POT) LED -i värvide muutmiseks ATTINY85 abil.

Mõned määratlused -

Potentsiomeeter on väikese kruvi / pööramismehhanismiga seade, mis pööramisel väljastab erinevaid elektrilisi takistusi. Ülaltoodud märkustega pildilt näete, et POT -il on 3 tihvti, nimelt +, - ja väljund. POT saab toite, ühendades toiteploki + ja - kontaktid vastavalt vcc ja maandusega. POT -kruvi keeramisel muutub väljundtakistus ja LED -valgustugevus väheneb või suureneb.. Teisisõnu, see on muutuv takisti. Neid kasutatakse sellistes asjades nagu koduvalgustid.

LED - see on väike tuli, mis süttib, kui elektrivool sellest läbi läheb. Sel juhul kasutame mitmevärvilist LED -i, millel on 3 tihvti, üks maandus (keskmine) ja kaks tihvti, mis käivitamisel näitavad vastavalt rohelist ja punast.

ATTINY85-see on väike odav mikrokiip, mida saate programmeerida nagu Arduino.

Ülevaade - POT -i väljund on ühendatud ATTINY85 -ga. POT -kruvi keeramisel väljastatakse erinevustakistus arvuna vahemikus 0 kuni 255. ATTINY saab seda mõõta ja teha erinevaid toiminguid sõltuvalt POT -takistuse väärtusest. Sel juhul oleme programmeerinud selle LED -iga ühendamiseks järgmiselt.

Kui arv on suurem kui 170, lülitage LED roheliseks.

Kui arv on väiksem kui 170, kuid suurem kui 85, lülitage LED punasele.

kui arv on väiksem kui 85, lülitage sisse roheline ja punane LED, mille tulemuseks on oranž.

BOM

1 x 3 -pin LED 1 x ATTINY 85

1 x POT (B100K)

1 x leivalaud ja kaablid

1 toiteallikas.

1. samm: ATTINY85 programmeerimine

ATTINY85 programmeerimise osas vaadake palun minu eelmist juhendit-https://www.instructables.com/id/15-Dollar-Attiny8…

Kood on näidatud allpool. Mõned punktid, mida tuleb märkida, on see, et kaks ATTINY tihvti, PB3, füüsiline tihvt 2, PB2, füüsiline tihvt 7 on digitaalrežiimis LED -iga ühendatud, et muuta värv. ATTINY pin PB4, füüsiline tihvt 3, on analoogrežiimis ühendatud POT -iga, mis tähendab, et see suudab lugeda väärtusi vahemikus 0 kuni 254. Ma kohandasin Internetist leitud koodi, nii et tunnistan seda tööd. -

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 - sisend POT // pb3 led pin 1 // pb2 led pin 3 // ATTINY 85 sagedus, mis on seatud sisemisele 8 MHz/* see funktsioon lähtestab ADC

ADC prescaler Märkused:

ADC Prescaler tuleb seadistada nii, et ADC sisendsagedus oleks vahemikus 50 - 200 kHz.

Lisateavet vt tabelist 17.5 "ADC prescaler Selections" peatükis 17.13.2 "ADCSRA - ADC Control and Status Register A" (leheküljed 140 ja 141 täieliku andmelehe ATtiny25/45/85, Rev. 2586M – AVR – 07/ 10)

Kehtivad eelkvaliteedi väärtused erinevate taktsageduste jaoks

Kell Saadaval eelkvalifitseerija väärtused --------------------------------------- 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)

Allpool toodud näites seadistage eelskaalaja 128 -le, kui mcu töötab sagedusel 8 MHz

(kontrollige eelkaala seadistamiseks andmelehelt õigeid bitiväärtusi) */

// 8-bitine eraldusvõime

// seadke ADLAR väärtuseks 1, et lubada vasakpoolse nihke tulemus (saadaval on ainult bitid ADC9.. ADC2) // siis piisab ainult ADCH lugemisest 8-bitiste tulemuste jaoks (256 väärtust) DDRB | = (1 << PB3); // Pin on seatud väljundiks. DDRB | = (1 << PB2); // Pin on seatud väljundiks. ADMUX = (1 << ADLAR) | // vasakpoolse nihke tulemus (0 << REFS1) | // Komplektid viide pinge VCC -le, bit 1 (0 << REFS0) | // Komplektid viide pinge VCC -le, bit 0 (0 << MUX3) | // sisendiks (PB4) kasutage ADC2, MUX bit 3 (0 << MUX2) | // kasuta sisendiks (PB4) ADC2, MUX bit 2 (1 << MUX1) | // kasuta sisendiks (PB4) ADC2, MUX bit 1 (0 << MUX0); // kasutage sisendiks ADC2 (PB4), MUX bit 0

ADCSRA =

(1 << ADEN) | // Luba ADC (1 << ADPS2) | // määrake eelvalija 64, bit 2 (1 << ADPS1) | // määrake eelvalija 64, bit 1 (0 << ADPS0); // määrake eelvalija 64, bit 0}

int main (tühine)

{initADC ();

samas (1)

{

ADCSRA | = (1 << ADSC); // alusta ADC mõõtmist samas (ADCSRA & (1 << ADSC)); // oodake, kuni konversioon on lõpule viidud

kui (ADCH> 170)

{PORTB | = (1 << PB3); // Pin on seatud HIGH. PORTB | = (1 << PB2); // Nööpnõel on seatud HIGH. } muidu kui (ADCH 85) {PORTB | = (1 << PB3); // Nööpnõel on seatud HIGH. PORTB & = ~ (1 << PB2); // Pin on seatud LOW

} muud {

PORTB | = (1 << PB2); // Nööpnõel on seatud HIGH. PORTB & = ~ (1 << PB3); // Pin on seatud LOW

}

}

tagasitulek 0;

}

2. samm: ahel

Vooluring
Vooluring

ATTINY tihvtid

PB3, füüsiline tihvt 2 - ühendatud LED -tihvt 1

PB4, füüsiline tihvt 3, on ühendatud keskmise tihvtiga POT

GND, füüsiline tihvt 4, on ühendatud negatiivse rööpaga - toiteallikaga

PB2, füüsiline tihvt 7 - ühendatud LED -tihvt 3

VCC, füüsiline tihvt 8, on ühendatud positiivse rööpaga - toiteallikaga

POT

pos ja neg pin ühendatud vastavate rööbastega - toiteallikas.

LED

negatiivne rööpaga ühendatud keskmine tihvt - toide

Katsetasin 3 ja 3,3 voldise toiteallikaga ja mõlemad töötasid.

3. samm: järeldus

Järeldus
Järeldus

ATTINY85 võime liikuda analoog- ja digitaalrežiimi vahel on väga võimas ja seda saab kasutada paljudes erinevates rakendustes, nt. muutuva kiirusega mootorite juhtimine ja muusikaliste nootide loomine. Uurin seda tulevastes juhendites. Loodan, et leidsite selle kasulikuks.

Soovitan: