Sadržaj:

Promijenite LED boje pomoću POT i ATTINY85: 3 koraka
Promijenite LED boje pomoću POT i ATTINY85: 3 koraka

Video: Promijenite LED boje pomoću POT i ATTINY85: 3 koraka

Video: Promijenite LED boje pomoću POT i ATTINY85: 3 koraka
Video: Урок 99. Создание цифровых часов Arduino с использованием ЖК-дисплея DS3231 и семисегментного дисплея. 2024, Srpanj
Anonim
Promijenite LED boje pomoću POT i ATTINY85
Promijenite LED boje pomoću POT i ATTINY85
Promijenite LED boje pomoću POT i ATTINY85
Promijenite LED boje pomoću POT i ATTINY85
Promijenite LED boje pomoću POT i ATTINY85
Promijenite LED boje pomoću POT i ATTINY85

U ovom projektu koristimo potenciometar (POT) za promjenu boja LED diode pomoću ATTINY85.

Neke definicije -

Potenciometar je uređaj s malim mehanizmom za zavrtnje / okretanje koji prilikom okretanja daje različite električne otpore. Na gornjoj označenoj slici možete vidjeti da POT ima 3 pina, naime +, -, i izlaz. POT se napaja spajanjem + i - pinova na vcc i uzemljenje na izvor napajanja. Kako se okreće POT vijak, izlazni otpor se mijenja i uzrokuje smanjenje ili povećanje intenziteta LED diode.. Drugim riječima, radi se o promjenjivom otporniku. Koriste se u stvarima poput prigušivača svjetla kod kuće.

LED - Ovo je malo svjetlo koje svijetli kada električna struja prolazi kroz njega. U ovom slučaju koristit ćemo višebojnu LED diodu koja ima 3 pina, jedan uzemljeni (srednji) i dva pina koji pri pokretanju pokazuju zelenu i crvenu boju.

ATTINY85-ovo je mali jeftini mikročip koji možete programirati poput Arduina.

Pregled - Izlaz s POT -a spojen je na ATTINY85. Kako se POT vijak okreće, razlika otpora izlazi kao broj između 0 i 255. ATTINY to može izmjeriti i poduzeti različite radnje ovisno o vrijednosti POT otpora. U ovom slučaju, programirali smo ga za spajanje na LED na sljedeći način.

Ako je broj veći od 170, LED prebacite u ZELENU.

Ako je broj manji od 170, ali veći od 85, LED prebacite u CRVENU.

ako je broj manji od 85, uključite LED ZELENU I CRVENU što rezultira NARANČASTOM.

BOM

1 x 3 -polna LED1 x ATTINY 85

1 x POT (B100K)

1 x matična ploča i kabeli

1 izvor napajanja.

Korak 1: Programiranje ATTINY85

Što se tiče programiranja ATTINY85, molimo vas da pogledate moje prethodne upute-https://www.instructables.com/id/15-Dollar-Attiny8…

Kôd je prikazan ispod. Treba napomenuti da su dva ATTINY pina, PB3, fizički pin 2, PB2, fizički pin 7 spojeni, u digitalnom načinu, na LED kako bi se izvršila promjena boje. ATTINY pin PB4, fizički pin 3, spojen je na POT u analognom načinu rada, što znači da može čitati vrijednosti između 0 i 254. Prilagodio sam kôd koji sam pronašao na internetu pa potvrđujem da radi. -

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 - ulaz za POT // pb3 led pin 1 // pb2 led pin 3 // frekvencija ATTINY 85 postavljena na unutarnjih 8 MHz/* ova funkcija inicijalizira ADC

Napomene za ADC predskaler:

Predkaler ADC -a potrebno je postaviti tako da ulazna frekvencija ADC -a bude između 50 - 200kHz.

Za više informacija pogledajte tablicu 17.5 "Izbori ADC predskalera" u poglavlju 17.13.2 "ADCSRA - Registar kontrole i statusa ADC -a A" (stranice 140 i 141 na potpunom podatkovnom listu ATtiny25/45/85, Rev. 2586M – AVR – 07/ 10)

Vrijedeće vrijednosti predrazdjelnika za različite brzine takta

Sat Dostupne vrijednosti predkalerara --------------------------------------- 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)

Dolje u primjeru postavite predskaler na 128 za mcu koji radi na 8MHz

(provjerite u tablici ispravne vrijednosti bitova za postavljanje predskalera) */

// 8-bitna razlučivost

// postavimo ADLAR na 1 kako bismo omogućili rezultat pomaka ulijevo (dostupni su samo bitovi ADC9.. ADC2) // tada je samo čitanje ADCH dovoljno za 8-bitne rezultate (256 vrijednosti) DDRB | = (1 << PB3); // Pin je postavljen kao izlaz. DDRB | = (1 << PB2); // Pin je postavljen kao izlaz. ADMUX = (1 << ADLAR) | // rezultat pomaka ulijevo (0 << REFS1) | // Postavi ref. napona na VCC, bit 1 (0 << REFS0) | // Postavi ref. napon na VCC, bit 0 (0 << MUX3) | // koristite ADC2 za ulaz (PB4), MUX bit 3 (0 << MUX2) | // koristimo ADC2 za ulaz (PB4), MUX bit 2 (1 << MUX1) | // koristiti ADC2 za ulaz (PB4), MUX bit 1 (0 << MUX0); // koristimo ADC2 za ulaz (PB4), MUX bit 0

ADCSRA =

(1 << ADEN) | // Omogući ADC (1 << ADPS2) | // namjestite predskaler na 64, bit 2 (1 << ADPS1) | // postavimo predskaler na 64, bit 1 (0 << ADPS0); // namjestite predskaler na 64, bit 0}

int main (void)

{initADC ();

dok (1)

{

ADCSRA | = (1 << ADSC); // pokretanje ADC mjerenja while (ADCSRA & (1 << ADSC)); // čekati dok se konverzija ne dovrši

ako (ADCH> 170)

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

} else {

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

}

}

return 0;

}

Korak 2: Krug

Krug
Krug

ATTINY igle

PB3, fizički pin 2 - spojen LED pin 1

PB4, fizički pin 3, spojen je na srednji pin POT

GND, fizički pin 4, spojen je na negativnu tračnicu - napajanje

PB2, fizički pin 7 - spojen LED pin 3

VCC, fizički pin 8, spojen je na pozitivnu tračnicu - napajanje

LONAC

poz i neg pin spojen na odgovarajuće tračnice - napajanje.

LED

srednji pin spojen na negativnu tračnicu - napajanje

Eksperimentirao sam s napajanjem od 3 i 3,3 volta i oboje je radilo.

Korak 3: Zaključak

Zaključak
Zaključak

Sposobnost ATTINY85 za prelazak s analognog na digitalni način rada vrlo je snažna i može se koristiti u brojnim različitim aplikacijama, npr. upravljanje motorima promjenjive brzine i stvaranje glazbenih nota. Ovo ću istražiti u budućim instrukcijama. Nadam se da vam je ovo bilo korisno.

Preporučeni: