Daftar Isi:

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

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

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

Dalam proyek ini kami menggunakan potensiometer (POT) untuk mengubah warna pada LED menggunakan ATTINY85.

Beberapa definisi -

Potensiometer adalah perangkat dengan sekrup kecil / mekanisme putar yang ketika diputar menghasilkan hambatan listrik yang berbeda. Anda dapat melihat dari gambar beranotasi di atas bahwa POT memiliki 3 pin, yaitu, +, -, dan output. POT diberi daya dengan menghubungkan pin + dan - ke vcc dan ground masing-masing pada catu daya. Saat sekrup POT diputar, resistansi keluaran berubah dan menyebabkan LED berkurang atau bertambah intensitasnya.. Dengan kata lain, ini adalah resistor variabel. Mereka digunakan dalam hal-hal seperti dimmer lampu rumah.

LED - Ini adalah lampu kecil yang menyala ketika arus listrik melewatinya. Dalam hal ini, kita akan menggunakan LED warna-warni yang memiliki 3 pin, satu ground (tengah) dan dua pin yang masing-masing menunjukkan warna hijau dan merah saat dipicu.

ATTINY85 - ini adalah chip mikro kecil berbiaya rendah yang dapat Anda program seperti Arduino.

Tinjauan - Output dari POT terhubung ke ATTINY85. Saat sekrup POT diputar, resistansi perbedaan dihasilkan sebagai angka antara 0 dan 255. ATTINY dapat mengukur ini dan mengambil tindakan berbeda tergantung pada nilai resistansi POT. Dalam hal ini, kami telah memprogramnya untuk terhubung ke LED sebagai berikut.

Jika angkanya lebih besar dari 170, alihkan LED ke HIJAU.

Jika angkanya kurang dari 170 tetapi lebih besar dari 85 alihkan LED ke MERAH.

jika angkanya kurang dari 85 nyalakan LED HIJAU DAN MERAH yang menghasilkan ORANGE.

BOM

1 x 3 pin LED1 x ATTINY 85

1 x POT (B100K)

1 x papan tempat memotong roti dan kabel

1 catu daya.

Langkah 1: Memprogram ATTINY85

Dalam hal pemrograman ATTINY85, silakan merujuk ke instruksi saya sebelumnya -

Kode ditunjukkan di bawah ini. Beberapa hal yang perlu diperhatikan adalah bahwa dua pin ATTINY, PB3, pin fisik 2, PB2, pin fisik 7 terhubung, dalam mode digital, ke LED untuk menghasilkan perubahan warna. ATTINY pin PB4, fisik pin 3, terhubung ke POT dalam mode analog, yang berarti dapat membaca nilai antara 0 dan 254. Saya menyesuaikan kode yang saya temukan di internet jadi saya mengakui bahwa bekerja. -

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

Catatan Prescaler ADC:

Prescaler ADC perlu diatur agar frekuensi input ADC berada di antara 50 - 200kHz.

Untuk informasi lebih lanjut, lihat tabel 17.5 "Pemilihan Prescaler ADC" di bab 17.13.2 "ADCSRA – Kontrol ADC dan Register Status A" (halaman 140 dan 141 pada lembar data ATtiny25/45/85 lengkap, Rev. 2586M–AVR–07/ 10)

Nilai prescaler yang valid untuk berbagai kecepatan clock

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 mengatur prescaler ke 128 untuk mcu yang berjalan pada 8MHz

(periksa lembar data untuk nilai bit yang tepat untuk mengatur prescaler) */

// Resolusi 8-bit

// set ADLAR ke 1 untuk mengaktifkan hasil Left-shift (hanya bit ADC9.. ADC2 yang tersedia) // kemudian, hanya membaca ADCH yang cukup untuk hasil 8-bit (256 nilai) DDRB |= (1 << PB3); //Pin diatur sebagai output. DDRB |= (1 << PB2); //Pin diatur sebagai output. ADMUX = (1 << ADLAR) | // hasil shift kiri (0 << REFS1) | // Setel ref. tegangan ke VCC, bit 1 (0 << REFS0) | // Setel ref. tegangan 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) | // Aktifkan ADC (1 << ADPS2) | // setel prescaler ke 64, bit 2 (1 << ADPS1) | // setel prescaler ke 64, bit 1 (0 << ADPS0); // setel prescaler ke 64, bit 0 }

int utama (kosong)

{ initADC();

sementara(1)

{

ADCSRA |= (1 << ADSC); // memulai pengukuran ADC while (ADCSRA & (1 << ADSC)); // tunggu sampai konversi selesai

jika (ADCH > 170)

{ PORTB |= (1 << PB3); //Sematkan ke TINGGI. PORTB |= (1 << PB2); //Sematkan ke TINGGI. } else if (ADCH 85) { PORTB |= (1 << PB3); //Sematkan ke TINGGI. PORTB &= ~(1 << PB2); //Sematkan pin ke RENDAH

} lain {

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

}

}

kembali 0;

}

Langkah 2: Sirkuit

sirkuit
sirkuit

pin ATTINY

PB3, pin fisik 2 - pin LED terhubung 1

PB4, pin fisik 3, terhubung ke pin tengah POT

GND, pin fisik 4, terhubung ke rel negatif - catu daya

PB2, pin fisik 7 - pin LED terhubung 3

VCC, pin fisik 8, terhubung ke rel positif - catu daya

POT

pos dan pin neg terhubung ke rel masing-masing - catu daya.

LED

pin tengah terhubung ke rel negatif - catu daya

Saya bereksperimen menggunakan catu daya 3 dan 3,3 volt dan keduanya berfungsi.

Langkah 3: Kesimpulan

Kesimpulan
Kesimpulan

Kemampuan ATTINY85 untuk berpindah antara mode analog dan digital sangat kuat dan dapat digunakan di sejumlah aplikasi yang berbeda, mis. mengendarai motor berkecepatan variabel dan membuat not musik. Saya akan mengeksplorasi ini di instruksi mendatang. Saya harap Anda telah menemukan ini berguna.

Direkomendasikan: