İçindekiler:
Video: POT ve ATTINY85 Kullanarak LED Renklerini Değiştirin: 3 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:20
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
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ç
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:
M5stick-C ile Neopixel Ws2812 Gökkuşağı LED Glow - Rainbow'u Arduino IDE Kullanarak M5stack M5stick C Kullanarak Neopixel Ws2812 Üzerinde Çalıştırmak: 5 Adım
M5stick-C ile Neopixel Ws2812 Gökkuşağı LED Glow | Rainbow'u Neopixel Ws2812'de M5stack M5stick C Kullanarak Arduino IDE Kullanarak Çalıştırmak: Merhaba arkadaşlar bu talimatta Arduino IDE ile neopixel ws2812 LED'lerini veya led şerit veya led matrisi veya led halkayı m5stack ile m5stick-C geliştirme kartını nasıl kullanacağımızı öğreneceğiz ve bunu yapacağız. onunla bir gökkuşağı deseni
AVR Mikrodenetleyici. Bir Basmalı Düğme Anahtarı Kullanarak LED'leri Değiştirin. Düğmeden Zıplamadan Çıkarma: 4 Adım
AVR Mikrodenetleyici. Bir Basmalı Düğme Anahtarı Kullanarak LED'leri Değiştirin. Basmalı Düğme Geri Dönme.: Bu bölümde, bir düğme anahtarından gelen girişe göre üç LED'in durumunu değiştirmek için ATMega328PU için program C kodunu nasıl yapacağımızı öğreneceğiz. Ayrıca, 'Switch Bounce' sorununa bir çözüm araştırdık. Genellikle olduğu gibi, biz
Normal Torchlight için Kendi LED Ampulünüzü Değiştirin: 4 Adım
Normal Torchlight için Kendi LED Ampulünüzü Değiştirin: LED fener bu günlerde oldukça yaygındır, ancak 100 yıllık bir teknolojiye dayanan akkor flamanlı bir ampulünüz varsa, 8000 yıllık LED ile güncelleme şansınız var! (eğer akkor bir insan ömrüne sahipse)
Kendin Yap - ~ 200 $ Tasarruf Edin ve Dash Küme Ampullerini LED'lerle Değiştirin: 8 Adım
Kendin Yap - ~ 200$ Tasarruf Edin ve Gösterge Grubu Ampullerini LED'lerle Değiştirin: Araba satıcısı, 2001 Voyager'ımızın gösterge panelindeki ampulleri değiştirmek için 200,00$'ın üzerinde (Parça ve İşçilik - çoğu işçilik) istedi. Bu talimatları izlerseniz, zamanınızın yaklaşık 20 dakikasını ve ~22.90 ABD Doları'nı kendiniz yapabilirsiniz
Alçak Gerilim Bi-Pin Halojenleri LED'lerle Değiştirin: 6 Adım (Resimlerle)
Düşük Voltajlı Bi-Pin Halojenleri LED'lerle Değiştirin: Bu Eğitilebilirlik, düşük voltajlı (12V) bi-pin halojen armatürün yüksek güçlü LED "ampul" ile nasıl kolayca güçlendirileceğini ayrıntılarıyla anlatır. daha az güç kullanacak (<10W), daha uzun süre dayanacak (50.000 saat) ve yaklaşık olarak aynı ışık çıkışını verecek (~300 lümen