Isi kandungan:

Tukar Warna LED Menggunakan POT dan ATTINY85: 3 Langkah
Tukar Warna LED Menggunakan POT dan ATTINY85: 3 Langkah

Video: Tukar Warna LED Menggunakan POT dan ATTINY85: 3 Langkah

Video: Tukar Warna LED Menggunakan POT dan ATTINY85: 3 Langkah
Video: simple electronic project RGB Attiny85 Digspark✔ rgb led rgb lights 2024, Julai
Anonim
Tukar Warna LED Menggunakan POT dan ATTINY85
Tukar Warna LED Menggunakan POT dan ATTINY85
Tukar Warna LED Menggunakan POT dan ATTINY85
Tukar Warna LED Menggunakan POT dan ATTINY85
Tukar Warna LED Menggunakan POT dan ATTINY85
Tukar Warna LED Menggunakan POT dan ATTINY85

Dalam projek ini kami menggunakan potensiometer (POT) untuk mengubah warna dalam LED menggunakan ATTINY85.

Beberapa definisi -

Potensiometer adalah peranti dengan mekanisme skru / putar kecil yang apabila dipusingkan menghasilkan ketahanan elektrik yang berbeza. Anda dapat melihat dari gambar yang dijelaskan di atas bahawa POT mempunyai 3 pin, iaitu, +, -, dan output. POT dikuasakan dengan menghubungkan pin + dan - ke vcc dan arde masing-masing pada bekalan kuasa. Semasa skru POT dipusingkan, rintangan output berubah dan menyebabkan LED menurun atau meningkat dalam intensiti.. Dengan kata lain, ia adalah perintang yang berubah-ubah. Mereka digunakan dalam perkara seperti peredup cahaya rumah.

LED - Ini adalah cahaya kecil yang menyala ketika arus elektrik melaluinya. Dalam kes ini, kita akan menggunakan LED pelbagai warna yang mempunyai 3 pin, satu tanah (tengah) dan dua pin yang masing-masing menunjukkan hijau dan merah ketika dicetuskan.

ATTINY85 - ini adalah cip mikro kos rendah yang boleh anda atur seperti Arduino.

Gambaran Keseluruhan - Keluaran dari POT disambungkan ke ATTINY85. Semasa skru POT dipusingkan, rintangan perbezaan dihasilkan sebagai angka antara 0 dan 255. ATTINY dapat mengukur ini dan mengambil tindakan yang berbeza bergantung pada nilai rintangan POT. Dalam kes ini, kami telah memprogramkannya untuk menyambung ke LED seperti berikut.

Sekiranya bilangannya lebih besar daripada 170, tukar LED ke HIJAU.

Sekiranya bilangannya kurang dari 170 tetapi lebih besar dari 85, tukar LED ke MERAH.

jika bilangannya kurang dari 85 hidupkan LED HIJAU DAN MERAH yang menghasilkan ORANGE.

BOM

1 x 3 pin LED1 x PERHATIAN 85

1 x POT (B100K)

1 x papan roti dan kabel

1 bekalan kuasa.

Langkah 1: Memprogram ATTINY85

Dari segi pengaturcaraan ATTINY85, sila rujuk arahan saya sebelumnya -

Kodnya ditunjukkan di bawah. Beberapa perkara yang perlu diperhatikan ialah dua pin ATTINY, PB3, pin fizikal 2, PB2, pin fizikal 7 disambungkan, dalam mod digital, ke LED untuk mempengaruhi perubahan warna. ATTINY pin PB4, pin fizikal 3, disambungkan ke POT dalam mod analog, yang bermaksud bahawa ia dapat membaca nilai antara 0 dan 254. Saya menyesuaikan kod yang saya dapati di internet sehingga saya mengakui kerjanya. -

batal 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 untuk POT // pb3 led pin 1 // pb2 led pin 3 // ATTINY 85 frekuensi ditetapkan pada internal 8 MHz / * fungsi ini memulakan ADC

Nota ADC Prescaler:

ADC Prescaler perlu diatur supaya frekuensi input ADC antara 50 - 200kHz.

Untuk maklumat lebih lanjut, lihat jadual 17.5 "Pilihan ADC Prescaler" dalam bab 17.13.2 "ADCSRA - ADC Control and Status Register A" (halaman 140 dan 141 pada lembar data ATtiny25 / 45/85 lengkap, Rev. 2586M – AVR – 07 / 10)

Nilai prescaler yang sah untuk pelbagai kelajuan jam

Jam nilai prescaler yang tersedia --------------------------------------- 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)

Contoh di bawah ini menetapkan prescaler ke 128 untuk mcu berjalan pada 8MHz

(periksa lembar data untuk nilai bit yang tepat untuk menetapkan preskalaer) * /

// Resolusi 8-bit

// tetapkan ADLAR ke 1 untuk mengaktifkan hasil Pergeseran Kiri (hanya bit ADC9.. ADC2 yang tersedia) // kemudian, hanya membaca ADCH yang mencukupi untuk hasil 8-bit (256 nilai) DDRB | = (1 << PB3); // Pin ditetapkan sebagai output. DDRB | = (1 << PB2); // Pin ditetapkan sebagai output. ADMUX = (1 << ADLAR) | // hasil pergeseran kiri (0 << REFS1) | // Set rujukan voltan ke VCC, bit 1 (0 << REFS0) | // Set rujukan voltan ke VCC, bit 0 (0 << MUX3) | // gunakan ADC2 untuk input (PB4), MUX bit 3 (0 << MUX2) | // gunakan ADC2 untuk input (PB4), MUX bit 2 (1 << MUX1) | // gunakan ADC2 untuk input (PB4), MUX bit 1 (0 << MUX0); // gunakan ADC2 untuk input (PB4), MUX bit 0

ADCSRA =

(1 << ADEN) | // Dayakan ADC (1 << ADPS2) | // tetapkan prescaler ke 64, bit 2 (1 << ADPS1) | // tetapkan prescaler ke 64, bit 1 (0 << ADPS0); // tetapkan prescaler ke 64, bit 0}

int utama (tidak sah)

{initADC ();

semasa (1)

{

ADCSRA | = (1 << ADSC); // mulakan pengukuran ADC sementara (ADCSRA & (1 << ADSC)); // tunggu sehingga penukaran selesai

jika (ADCH> 170)

{PORTB | = (1 << PB3); // Pin ditetapkan ke TINGGI. PORTB | = (1 << PB2); // Pin ditetapkan ke TINGGI. } lain jika (ADCH 85) {PORTB | = (1 << PB3); // Pin ditetapkan ke TINGGI. PORTB & = ~ (1 << PB2); // Pin ditetapkan ke RENDAH

} lain {

PORTB | = (1 << PB2); // Pin ditetapkan ke TINGGI. PORTB & = ~ (1 << PB3); // Pin ditetapkan ke RENDAH

}

}

pulangan 0;

}

Langkah 2: Litar

Litar
Litar

PIN ATTINY

PB3, pin fizikal 2 - pin LED bersambung 1

PB4, pin fizikal 3, disambungkan ke POT pin tengah

GND, pin fizikal 4, disambungkan ke rel negatif - bekalan kuasa

PB2, pin fizikal 7 - pin LED bersambung 3

VCC, pin fizikal 8, disambungkan ke rel positif - bekalan kuasa

POT

pin pos dan neg disambungkan ke rel masing-masing - bekalan kuasa.

LED

pin tengah disambungkan ke rel negatif - bekalan kuasa

Saya bereksperimen menggunakan bekalan kuasa 3 dan 3.3 volt dan kedua-duanya berfungsi.

Langkah 3: Kesimpulannya

Kesimpulannya
Kesimpulannya

Keupayaan ATTINY85 untuk bergerak antara mod analog dan digital sangat hebat dan dapat digunakan dalam sejumlah aplikasi yang berbeza, mis. memandu motor laju berubah dan mencipta nota muzik. Saya akan menerangkannya dalam pengajaran yang akan datang. Saya harap anda dapati ini berguna.

Disyorkan: