Talaan ng mga Nilalaman:

Baguhin ang Mga Kulay ng LED Gamit ang isang POT at ATTINY85: 3 Mga Hakbang
Baguhin ang Mga Kulay ng LED Gamit ang isang POT at ATTINY85: 3 Mga Hakbang

Video: Baguhin ang Mga Kulay ng LED Gamit ang isang POT at ATTINY85: 3 Mga Hakbang

Video: Baguhin ang Mga Kulay ng LED Gamit ang isang POT at ATTINY85: 3 Mga Hakbang
Video: Lesson 99: Building Arduino Digital Clock using DS3231 LCD and Seven Segment Display 2024, Nobyembre
Anonim
Baguhin ang Mga Kulay ng LED Gamit ang isang POT at ATTINY85
Baguhin ang Mga Kulay ng LED Gamit ang isang POT at ATTINY85
Baguhin ang Mga Kulay ng LED Gamit ang isang POT at ATTINY85
Baguhin ang Mga Kulay ng LED Gamit ang isang POT at ATTINY85
Baguhin ang Mga Kulay ng LED Gamit ang isang POT at ATTINY85
Baguhin ang Mga Kulay ng LED Gamit ang isang POT at ATTINY85

Sa proyektong ito gumagamit kami ng potentiometer (POT) upang baguhin ang mga kulay sa isang LED gamit ang isang ATTINY85.

Ang ilang mga kahulugan -

Ang potensyomiter ay isang aparato na may isang maliit na mekanismo ng turnilyo / pag-ikot na kung saan ay nagbubunga ng iba't ibang mga de-koryenteng resistensya. Maaari mong makita mula sa anotadong imahe sa itaas na ang POT ay may 3 mga pin, katulad ng, +, -, at output. Ang POT ay pinalakas ng pagkonekta sa mga + at - mga pin sa vcc at ground ayon sa pagkakabanggit sa isang supply ng kuryente. Habang nakabukas ang POT turnilyo, nagbabago ang paglaban ng output at naging sanhi ng pagbaba o pagtaas ng intensidad ng LED.. Sa madaling salita, ito ay isang variable risistor. Ginagamit ang mga ito sa mga bagay tulad ng dimmers ng ilaw sa bahay.

LED - Ito ay isang maliit na ilaw na nag-iilaw kapag ang kasalukuyang kuryente ay pumasa kahit na. Sa kasong ito, gagamitin namin ang isang maraming kulay na LED na may 3 mga pin, isang lupa (gitna) at dalawang mga pin na nagpapakita ng berde at pula ayon sa pagkakabanggit kapag na-trigger.

ATTINY85 - ito ay isang maliit na murang maliit na micro-chip na maaari mong programa tulad ng isang Arduino.

Pangkalahatang-ideya - Ang output mula sa POT ay konektado sa ATTINY85. Tulad ng turn ng POT turn, ang isang pagkakaiba sa paglaban ay output bilang isang numero sa pagitan ng 0 at 255. Maaaring sukatin ito ng ATTINY at gumawa ng iba't ibang mga pagkilos depende sa halaga ng paglaban ng POT. Sa kasong ito, nai-program namin ito upang kumonekta sa LED tulad ng sumusunod.

Kung ang bilang ay mas malaki sa 170 ilipat ang LED sa GREEN.

Kung ang bilang ay mas mababa sa 170 ngunit mas malaki sa 85 ilipat ang LED sa RED.

kung ang numero ay mas mababa sa 85 switch sa LED GREEN AND RED na nagreresulta sa ORANGE.

BOM

1 x 3 pin LED1 x ATTINY 85

1 x POT (B100K)

1 x tinapay at mga kable

1 power supply.

Hakbang 1: Programming ang ATTINY85

Sa mga tuntunin ng pagprograma ng ATTINY85, mangyaring sumangguni sa aking dating itinuro -

Ang code ay ipinapakita sa ibaba. Ang ilang mga puntong dapat tandaan ay ang dalawang mga ATTINY na pin, PB3, pisikal na pin 2, PB2, pisikal na pin 7 na konektado, sa digital mode, sa LED upang maapektuhan ang pagbabago ng kulay. Ang ATTINY pin PB4, pisikal na pin 3, ay konektado sa POT sa mode na analogue, na nangangahulugang maaari itong basahin ang mga halaga sa pagitan ng 0 at 254. Na-customize ko ang code na nakita ko sa internet kaya kinikilala ko ang gawaing iyon. -

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 - input para sa POT // pb3 led pin 1 // pb2 led pin 3 // ATTINY 85 frequency frequency set at internal 8 MHz / * ang pagpapaandar na ito ay nagpapasimula sa ADC

Mga Tala ng ADC Prescaler:

Kailangang maitakda ang ADC Prescaler upang ang dalas ng input ng ADC ay nasa pagitan ng 50 - 200kHz.

Para sa karagdagang impormasyon, tingnan ang talahanayan 17.5 "Mga Pagpipilian ng ADC Prescaler" sa kabanata 17.13.2 "ADCSRA - ADC Control at Status Rehistro A" (pahina 140 at 141 sa kumpletong dattheet ng ATtiny25 / 45/85, Rev. 2586M – AVR – 07 / 10)

Mga wastong halaga ng prescaler para sa iba't ibang mga bilis ng orasan

Ang mga magagamit na halaga ng prescaler ng Clock ------------------------------------ 1 MHz 8 (125kHz), 16 (62.5kHz) 4 MHz 32 (125kHz), 64 (62.5kHz) 8 MHz 64 (125kHz), 128 (62.5kHz) 16 MHz 128 (125kHz)

Sa ibaba halimbawa itakda ang prescaler sa 128 para sa mcu na tumatakbo sa 8MHz

(suriin ang datasheet para sa tamang mga halaga ng bit upang maitakda ang prescaler) * /

// 8-bit na resolusyon

// itakda ang ADLAR sa 1 upang paganahin ang resulta ng Left-shift (ang mga bit na ADC9.. ADC2 lamang ang magagamit) // pagkatapos, ang pagbabasa lamang ng ADCH ay sapat para sa mga resulta ng 8-bit (256 na halaga) DDRB | = (1 << PB3); // Pin ay itinakda bilang isang output. DDRB | = (1 << PB2); // Pin ay itinakda bilang isang output. ADMUX = (1 << ADLAR) | // kaliwang resulta ng shift (0 << REFS1) | // Nagtatakda ng ref. boltahe sa VCC, bit 1 (0 << REFS0) | // Nagtatakda ng ref. boltahe sa VCC, bit 0 (0 << MUX3) | // use ADC2 for input (PB4), MUX bit 3 (0 << MUX2) | // use ADC2 for input (PB4), MUX bit 2 (1 << MUX1) | // use ADC2 for input (PB4), MUX bit 1 (0 << MUX0); // use ADC2 for input (PB4), MUX bit 0

ADCSRA =

(1 << ADEN) | // Paganahin ang ADC (1 << ADPS2) | // set prescaler to 64, bit 2 (1 << ADPS1) | // set prescaler to 64, bit 1 (0 << ADPS0); // set prescaler to 64, bit 0}

int main (walang bisa)

{initADC ();

habang (1)

{

ADCSRA | = (1 << ADSC); // simulan ang pagsukat ng ADC habang (ADCSRA & (1 << ADSC)); // maghintay hanggang makumpleto ang conversion

kung (ADCH> 170)

{PORTB | = (1 << PB3); // Pin itakda sa TAAS. PORTB | = (1 << PB2); // Pin itakda sa TAAS. } iba pa kung (ADCH 85) {PORTB | = (1 << PB3); // Pin itakda sa TAAS. PORTB & = ~ (1 << PB2); // Pin set to LOW

} iba pa {

PORTB | = (1 << PB2); // Pin itakda sa TAAS. PORTB & = ~ (1 << PB3); // Pin set to LOW

}

}

ibalik ang 0;

}

Hakbang 2: Circuit

Circuit
Circuit

ATTINY na mga pin

PB3, pisikal na pin 2 - konektado LED pin 1

Ang PB4, pisikal na pin 3, ay konektado sa gitnang pin POT

Ang GND, pisikal na pin 4, ay konektado sa negatibong riles - supply ng kuryente

PB2, pisikal na pin 7 - konektado LED pin 3

Ang VCC, pisikal na pin 8, ay konektado sa positibong riles - suplay ng kuryente

POT

Ang pos at neg pin ay konektado sa kani-kanilang riles - supply ng kuryente.

LED

nakakonekta ang gitnang pin sa negatibong riles - supply ng kuryente

Nag-eksperimento ako gamit ang isang 3 at 3.3 volt power supply at parehong nagtrabaho.

Hakbang 3: Konklusyon

Konklusyon
Konklusyon

Ang kakayahan ng ATTINY85 na lumipat sa pagitan ng analogue at digital mode ay napakalakas at maaaring magamit sa maraming iba't ibang mga application, hal. pagmamaneho variable motor bilis at paglikha ng mga tala ng musikal. I-explore ko ito sa mga instruksyon sa hinaharap. Inaasahan kong nahanap mo itong kapaki-pakinabang.

Inirerekumendang: