INHOUDSOPGAWE:

Verander LED -kleure met 'n POT en ATTINY85: 3 stappe
Verander LED -kleure met 'n POT en ATTINY85: 3 stappe

Video: Verander LED -kleure met 'n POT en ATTINY85: 3 stappe

Video: Verander LED -kleure met 'n POT en ATTINY85: 3 stappe
Video: Using Digispark Attiny85 Mini Arduino boards: Lesson 108 2024, November
Anonim
Verander LED -kleure met 'n POT en ATTINY85
Verander LED -kleure met 'n POT en ATTINY85
Verander LED -kleure met 'n POT en ATTINY85
Verander LED -kleure met 'n POT en ATTINY85
Verander LED -kleure met 'n POT en ATTINY85
Verander LED -kleure met 'n POT en ATTINY85

In hierdie projek gebruik ons 'n potensiometer (POT) om die kleure in 'n LED met 'n ATTINY85 te verander.

Enkele definisies -

'N Potensiometer is 'n toestel met 'n klein skroef- / draaimeganisme wat verskillende elektriese weerstande lewer wanneer dit gedraai word. U kan uit die geannoteerde prent hierbo sien dat die POT 3 penne het, naamlik +, - en uitset. Die POT word aangedryf deur die + en - penne aan te sluit op onderskeidelik vcc en grond op 'n kragtoevoer. As die POT -skroef gedraai word, verander die uitsetweerstand en veroorsaak dat die LED afneem of in intensiteit toeneem.. Met ander woorde, dit is 'n veranderlike weerstand. Dit word gebruik in dinge soos huisligte.

LED - Dit is 'n klein liggie wat brand wanneer elektriese stroom daardeur gaan. In hierdie geval gebruik ons 'n veelkleurige LED met drie penne, een grond (middel) en twee penne wat onderskeidelik groen en rooi vertoon wanneer dit geaktiveer word.

ATTINY85-dit is 'n klein goedkoop mikroskyfie wat u soos 'n Arduino kan programmeer.

Oorsig - Die uitset van die POT is gekoppel aan die ATTINY85. As die POT -skroef gedraai word, word 'n verskilweerstand as 'n getal tussen 0 en 255 uitgevoer. Die ATTINY kan dit meet en verskillende aksies neem, afhangende van die waarde van die POT -weerstand. In hierdie geval het ons dit geprogrammeer om soos volg met die LED aan te sluit.

Skakel die LED na GROEN as die getal groter is as 170.

Skakel die LED na ROOI as die getal minder as 170, maar groter as 85 is.

as die getal minder as 85 is, skakel LED GROEN EN ROOI aan, wat lei tot ORANJE.

BOM

1 x 3 -pins LED1 x ATTINY 85

1 x POT (B100K)

1 x broodbord en kabels

1 kragtoevoer.

Stap 1: Programmering van die ATTINY85

In terme van die programmering van die ATTINY85, verwys na my vorige instruksies-https://www.instructables.com/id/15-Dollar-Attiny8…

Die kode word hieronder getoon. 'N Paar opmerkings is dat twee ATTINY -penne, PB3, fisiese pen 2, PB2, fisiese pen 7, in digitale modus aan die LED gekoppel is om kleurverandering te bewerkstellig. ATTINY -pen PB4, fisiese pen 3, word in die analoogmodus aan die POT gekoppel, wat beteken dat dit waardes tussen 0 en 254 kan lees. Ek het die kode wat ek op die internet gevind het, aangepas, sodat ek die werk erken. -

leegte 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 - invoer vir POT // pb3 led pin 1 // pb2 led pin 3 // ATTINY 85 frekwensie ingestel op interne 8 MHz/* hierdie funksie initialiseer die ADC

ADC Prescaler Notas:

ADC Prescaler moet so ingestel word dat die ADC -invoervrekwensie tussen 50 - 200kHz is.

Vir meer inligting, sien tabel 17.5 "ADC Prescaler Selections" in hoofstuk 17.13.2 "ADCSRA - ADC Control and Status Register A" (bladsye 140 en 141 op die volledige ATtiny25/45/85 datablad, Rev. 2586M – AVR – 07/ 10)

Geldige voorverkoelerwaardes vir verskillende kloksnelhede

Klok Beskikbare voorverkoelerwaardes --------------------------------------- 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)

Stel die voorkalker in die voorbeeld hieronder op 128 vir mcu wat op 8MHz werk

(kyk na die gegewensblad vir die regte bitwaardes om die voorverkoeler in te stel) */

// 8-bis resolusie

// stel ADLAR op 1 om die resultaat na links-skuif moontlik te maak (slegs bisse ADC9.. ADC2 is beskikbaar) // dan is slegs die lees van ADCH voldoende vir 8-bis-resultate (256 waardes) DDRB | = (1 << PB3); // Speld word as uitset gestel. DDRB | = (1 << PB2); // Speld word as uitset gestel. ADMUX = (1 << ADLAR) | // uitslag links skuif (0 << REFS1) | // Stel ref. spanning na VCC, bit 1 (0 << REFS0) | // Stel ref. spanning na VCC, bit 0 (0 << MUX3) | // gebruik ADC2 vir invoer (PB4), MUX bit 3 (0 << MUX2) | // gebruik ADC2 vir invoer (PB4), MUX bit 2 (1 << MUX1) | // gebruik ADC2 vir invoer (PB4), MUX bit 1 (0 << MUX0); // gebruik ADC2 vir invoer (PB4), MUX bit 0

ADCSRA =

(1 << ADEN) | // Aktiveer ADC (1 << ADPS2) | // stel prescaler in op 64, bit 2 (1 << ADPS1) | // stel prescaler op 64, bit 1 (0 << ADPS0); // stel prescaler op 64, bietjie 0}

int main (leeg)

{initADC ();

terwyl (1)

{

ADCSRA | = (1 << ADSC); // begin ADC -meting terwyl (ADCSRA & (1 << ADSC)); // wag totdat die omskakeling voltooi is

as (ADCH> 170)

{PORTB | = (1 << PB3); // Speld gestel op HOOG. PORTB | = (1 << PB2); // Speld gestel op HOOG. } anders as (ADCH 85) {PORTB | = (1 << PB3); // Speld gestel op HOOG. PORTB & = ~ (1 << PB2); // Speld gestel op LAAG

} anders {

PORTB | = (1 << PB2); // Speld gestel op HOOG. PORTB & = ~ (1 << PB3); // Speld gestel op LAAG

}

}

terugkeer 0;

}

Stap 2: Skakel

Kring
Kring

ATTINY penne

PB3, fisiese pen 2 - gekoppelde LED -pen 1

PB4, fisiese pen 3, is gekoppel aan die middelste pen POT

GND, fisiese pen 4, is gekoppel aan die negatiewe spoor - kragtoevoer

PB2, fisiese pen 7 - gekoppelde LED -pen 3

VCC, fisiese pen 8, is gekoppel aan die positiewe spoor - kragtoevoer

POT

pos en neg -pen gekoppel aan die onderskeie relings - kragtoevoer.

LED

middelste pen gekoppel aan die negatiewe spoor - kragtoevoer

Ek het eksperimenteer met 'n 3 en 3.3 volt kragbron en albei het gewerk.

Stap 3: Gevolgtrekking

Afsluiting
Afsluiting

Die ATTINY85 se vermoë om tussen analoog en digitaal af te beweeg, is baie kragtig en kan in 'n aantal verskillende toepassings gebruik word, bv. ry motors met veranderlike snelhede en maak musieknote. Ek sal dit in die toekomstige instruksies ondersoek. Ek hoop dat u dit nuttig gevind het.

Aanbeveel: