İçindekiler:

POT ve ATTINY85 Kullanarak LED Renklerini Değiştirin: 3 Adım
POT ve ATTINY85 Kullanarak LED Renklerini Değiştirin: 3 Adım

Video: POT ve ATTINY85 Kullanarak LED Renklerini Değiştirin: 3 Adım

Video: POT ve ATTINY85 Kullanarak LED Renklerini Değiştirin: 3 Adım
Video: Lesson 99: Building Arduino Digital Clock using DS3231 LCD and Seven Segment Display 2024, Temmuz
Anonim
POT ve ATTINY85 Kullanarak LED Renklerini Değiştirin
POT ve ATTINY85 Kullanarak LED Renklerini Değiştirin
POT ve ATTINY85 Kullanarak LED Renklerini Değiştirin
POT ve ATTINY85 Kullanarak LED Renklerini Değiştirin
POT ve ATTINY85 Kullanarak LED Renklerini Değiştirin
POT ve ATTINY85 Kullanarak LED Renklerini Değiştirin

Bu projede, bir ATTINY85 kullanarak bir LED'deki renkleri değiştirmek için bir potansiyometre (POT) kullanıyoruz.

Bazı tanımlar -

Potansiyometre, döndürüldüğünde farklı elektrik dirençleri veren küçük bir vida / döndürme mekanizmasına sahip bir cihazdır. POT'un +, - ve çıkış olmak üzere 3 pini olduğunu yukarıdaki açıklamalı resimden görebilirsiniz. POT, + ve - pinlerini bir güç kaynağında sırasıyla vcc ve toprağa bağlayarak çalıştırılır. POT vidası çevrildikçe çıkış direnci değişir ve LED'in yoğunluğunun azalmasına veya artmasına neden olur.. Başka bir deyişle, değişken bir dirençtir. Ev ışık dimmerleri gibi şeylerde kullanılırlar.

LED - Bu, içinden elektrik akımı geçtiğinde yanan küçük bir ışıktır. Bu durumda, tetiklendiğinde sırasıyla yeşil ve kırmızı gösteren 3 pimli, bir toprak (orta) ve iki pimli çok renkli bir LED kullanacağız.

ATTINY85 - Bu, Arduino gibi programlayabileceğiniz küçük, düşük maliyetli bir mikro çiptir.

Genel Bakış - POT'tan gelen çıkış ATTINY85'e bağlanır. POT vidası döndürüldüğünde, 0 ile 255 arasında bir sayı olarak bir fark direnci çıkar. ATTINY bunu ölçebilir ve POT direncinin değerine bağlı olarak farklı işlemler yapabilir. Bu durumda led'e bağlanacak şekilde aşağıdaki gibi programladık.

Sayı 170'ten büyükse LED'i YEŞİL olarak değiştirin.

Sayı 170'ten küçük ancak 85'ten büyükse, LED'i KIRMIZI olarak değiştirin.

sayı 85'ten küçükse, YEŞİL VE KIRMIZI LED'i açın, bu da TURUNCU ile sonuçlanır.

malzeme listesi

1 x 3 pin LED1 x ATTINY 85

1 x TENCERE (B100K)

1 x breadboard ve kablolar

1 güç kaynağı.

Adım 1: ATTINY85'in Programlanması

ATTINY85'i programlama açısından, lütfen önceki talimatıma bakın -

Kod aşağıda gösterilmiştir. Dikkat edilmesi gereken bazı noktalar, iki ATTINY piminin, PB3, fiziksel pim 2, PB2, fiziksel pim 7'nin, renk değişimini sağlamak için dijital modda LED'e bağlı olmasıdır. ATTINY pin PB4, fiziksel pin 3 analog modda POT'a bağlı yani 0 ile 254 arasındaki değerleri okuyabiliyor. İnternette bulduğum kodu özelleştirdim, bu yüzden çalıştığını kabul ediyorum. -

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 - POT girişi //pb3 led pin 1 //pb2 led pin 3 // ATTINY 85 dahili 8 MHz frekans ayarlı /* bu işlev ADC'yi başlatır

ADC Ön Ölçekleyici Notları:

ADC Ön Ölçekleyici, ADC giriş frekansı 50 - 200kHz arasında olacak şekilde ayarlanmalıdır.

Daha fazla bilgi için, 17.13.2 "ADCSRA – ADC Kontrol ve Durum Kaydı A" bölümündeki 17.5 "ADC Ön Ölçekleyici Seçimleri" tablosuna bakın (tam ATtiny25/45/85 veri sayfasında sayfa 140 ve 141, Rev. 2586M–AVR–07/ 10)

Çeşitli saat hızları için geçerli ön ölçekleyici değerleri

Saat Mevcut ön ölçekleyici değerleri ------------------------------------------ 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)

Aşağıdaki örnek, 8MHz'de çalışan mcu için ön ölçekleyiciyi 128'e ayarlayın

(ön ölçekleyiciyi ayarlamak için uygun bit değerleri için veri sayfasını kontrol edin) */

// 8 bit çözünürlük

// Sola kaydırma sonucunu etkinleştirmek için ADLAR'ı 1'e ayarlayın (sadece ADC9.. ADC2 bitleri kullanılabilir) // o zaman, 8 bitlik sonuçlar için sadece ADCH'yi okumak yeterlidir (256 değer) DDRB |= (1 << PB3); //Pin çıkış olarak ayarlanır. DDRB |= (1 << PB2); //Pin çıkış olarak ayarlanır. ADMUX = (1 << ADLAR) | // sola kaydırma sonucu (0 << REFS1) | // Referansı ayarlar. VCC'ye voltaj, bit 1 (0 << REFS0) | // Referansı ayarlar. VCC'ye voltaj, bit 0 (0 << MUX3) | // giriş (PB4) için ADC2, MUX bit 3 (0 << MUX2) | // giriş (PB4) için ADC2, MUX bit 2 (1 << MUX1) | // giriş (PB4) için ADC2, MUX bit 1 (0 << MUX0) kullanın; // giriş (PB4) için ADC2, MUX bit 0 kullanın

ADCSRA =

(1 << ADEN) | // ADC'yi Etkinleştir (1 << ADPS2) | // ön ölçekleyiciyi 64'e ayarla, bit 2 (1 << ADPS1) | // ön ölçekleyiciyi 64'e ayarla, bit 1 (0 << ADPS0); // ön ölçekleyiciyi 64'e ayarla, bit 0 }

int ana(boşluk)

{ initADC();

süre(1)

{

ADCSRA |= (1 << ADSC); // ADC ölçümünü başlat while (ADCSRA & (1 << ADSC)); // dönüştürme tamamlanana kadar bekle

eğer (ADCH > 170)

{ PORTB |= (1 << PB3); //Pin YÜKSEK olarak ayarlandı. PORTB |= (1 << PB2); //Pin YÜKSEK olarak ayarlandı. } else if (ADCH 85) { PORTB |= (1 << PB3); //Pin YÜKSEK olarak ayarlandı. PORTB &= ~(1 << PB2); //Pin DÜŞÜK olarak ayarlandı

} Başka {

PORTB |= (1 << PB2); //Pin YÜKSEK olarak ayarlandı. PORTB &= ~(1 << PB3); //Pin DÜŞÜK olarak ayarlandı

}

}

0 döndür;

}

2. Adım: Devre

Devre
Devre

ATTINY pimleri

PB3, fiziksel pin 2 - bağlı LED pin 1

PB4, fiziksel pin 3, orta pin POT'a bağlanır

GND, fiziksel pim 4, negatif raya bağlı - güç kaynağı

PB2, fiziksel pin 7 - bağlı LED pin 3

VCC, fiziksel pim 8, pozitif raya bağlı - güç kaynağı

TENCERE

ilgili raylara bağlı konum ve neg pimi - güç kaynağı.

LED

negatif raya bağlı orta pim - güç kaynağı

3 ve 3,3 voltluk bir güç kaynağı kullanmayı denedim ve ikisi de çalıştı.

3. Adım: Sonuç

Çözüm
Çözüm

ATTINY85'in analog ve dijital mod arasında hareket etme yeteneği çok güçlüdür ve bir dizi farklı uygulamada kullanılabilir, örn. değişken hızlı motorları sürmek ve müzik notaları oluşturmak. Bunu gelecekteki talimatlarda keşfedeceğim. Umarım bunu faydalı bulmuşsunuzdur.

Önerilen: