Mục lục:

Thay đổi màu LED bằng POT và ATTINY85: 3 bước
Thay đổi màu LED bằng POT và ATTINY85: 3 bước

Video: Thay đổi màu LED bằng POT và ATTINY85: 3 bước

Video: Thay đổi màu LED bằng POT và ATTINY85: 3 bước
Video: DIY Modern LED Car/Truck Tail Light 2022 | With Knight Rider Scanner & Police Flasher Modes 2024, Tháng mười một
Anonim
Thay đổi màu LED bằng POT và ATTINY85
Thay đổi màu LED bằng POT và ATTINY85
Thay đổi màu LED bằng POT và ATTINY85
Thay đổi màu LED bằng POT và ATTINY85
Thay đổi màu LED bằng POT và ATTINY85
Thay đổi màu LED bằng POT và ATTINY85

Trong dự án này, chúng tôi sử dụng một chiết áp (POT) để thay đổi màu sắc trong đèn LED sử dụng ATTINY85.

Một số định nghĩa -

Chiết áp là một thiết bị có cơ cấu vặn / vặn nhỏ mà khi quay sẽ tạo ra các điện trở khác nhau. Bạn có thể thấy từ hình ảnh chú thích ở trên rằng POT có 3 chân, cụ thể là +, - và đầu ra. POT được cấp nguồn bằng cách kết nối các chân + và - với vcc và nối đất tương ứng trên nguồn điện. Khi vặn vít POT, điện trở đầu ra thay đổi và làm cho đèn LED giảm hoặc tăng cường độ.. Nói cách khác, nó là một biến trở. Chúng được sử dụng trong những thứ như bộ điều chỉnh độ sáng đèn gia đình.

Đèn LED - Đây là một đèn nhỏ chiếu sáng khi có dòng điện chạy qua nó. Trong trường hợp này, chúng tôi sẽ sử dụng đèn LED nhiều màu có 3 chân, một chân nối đất (giữa) và hai chân hiển thị màu xanh lá cây và màu đỏ tương ứng khi được kích hoạt.

ATTINY85 - đây là một vi chip nhỏ giá rẻ mà bạn có thể lập trình như Arduino.

Tổng quan - Đầu ra từ POT được kết nối với ATTINY85. Khi vặn vít POT, điện trở chênh lệch được xuất ra dưới dạng một số từ 0 đến 255. ATTINY có thể đo điều này và thực hiện các hành động khác nhau tùy thuộc vào giá trị của điện trở POT. Trong trường hợp này, chúng tôi đã lập trình để nó kết nối với đèn LED như sau.

Nếu số lớn hơn 170, hãy chuyển đèn LED sang XANH.

Nếu số nhỏ hơn 170 nhưng lớn hơn 85, hãy chuyển đèn LED sang ĐỎ.

nếu số lượng nhỏ hơn 85, hãy bật LED XANH VÀ ĐỎ dẫn đến ORANGE.

BOM

1 x 3 pin LED1 x ATTINY 85

1 x POT (B100K)

1 x breadboard và cáp

1 bộ nguồn.

Bước 1: Lập trình ATTINY85

Về lập trình ATTINY85, vui lòng tham khảo tài liệu hướng dẫn trước đây của tôi -

Các mã được hiển thị dưới đây. Một số điểm cần lưu ý là hai chân ATTINY, PB3, chân vật lý 2, PB2, chân vật lý 7 được kết nối, ở chế độ kỹ thuật số, với đèn LED để tạo hiệu ứng thay đổi màu sắc. Chân ATTINY PB4, chân vật lý 3, được kết nối với POT ở chế độ tương tự, có nghĩa là nó có thể đọc các giá trị từ 0 đến 254. Tôi đã tùy chỉnh mã mà tôi tìm thấy trên internet nên tôi xác nhận rằng công việc đó. -

void initADC () {// *** // *** Sơ đồ chân 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 - đầu vào cho POT // pb3 led pin 1 // pb2 led pin 3 // ATTINY 85 tần số đặt ở nội bộ 8 MHz / * chức năng này khởi tạo ADC

Ghi chú của ADC Prescaler:

ADC Prescaler cần được thiết lập để tần số đầu vào ADC nằm trong khoảng 50 - 200kHz.

Để biết thêm thông tin, hãy xem bảng 17.5 "Các lựa chọn bộ lưu trữ ADC" trong chương 17.13.2 "ADCSRA - Thanh ghi trạng thái và điều khiển ADC A" (trang 140 và 141 trên biểu dữ liệu ATtiny25 / 45/85 hoàn chỉnh, Rev. 2586M – AVR – 07 / 10)

Giá trị bộ định mức hợp lệ cho các tốc độ đồng hồ khác nhau

Đồng hồ Giá trị bộ định mức sẵn có --------------------------------------- 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)

Ví dụ dưới đây đặt bộ định mức trước thành 128 cho mcu chạy ở 8MHz

(kiểm tra biểu dữ liệu để biết các giá trị bit thích hợp để đặt bộ định mức) * /

// độ phân giải 8 bit

// đặt ADLAR thành 1 để bật kết quả Dịch trái (chỉ các bit ADC9.. ADC2 khả dụng) // khi đó, chỉ đọc ADCH là đủ cho kết quả 8 bit (256 giá trị) DDRB | = (1 << PB3); // Pin được đặt làm đầu ra. DDRB | = (1 << PB2); // Pin được đặt làm đầu ra. ADMUX = (1 << ADLAR) | // kết quả dịch trái (0 << REFS1) | // Đặt tham chiếu. điện áp đến VCC, bit 1 (0 << REFS0) | // Đặt tham chiếu. điện áp đến VCC, bit 0 (0 << MUX3) | // sử dụng ADC2 cho đầu vào (PB4), MUX bit 3 (0 << MUX2) | // sử dụng ADC2 cho đầu vào (PB4), MUX bit 2 (1 << MUX1) | // sử dụng ADC2 cho đầu vào (PB4), MUX bit 1 (0 << MUX0); // sử dụng ADC2 cho đầu vào (PB4), MUX bit 0

ADCSRA =

(1 << ADEN) | // Bật ADC (1 << ADPS2) | // đặt prescaler thành 64, bit 2 (1 << ADPS1) | // đặt prescaler thành 64, bit 1 (0 << ADPS0); // đặt prescaler thành 64, bit 0}

int main (void)

{initADC ();

trong khi (1)

{

ADCSRA | = (1 << ADSC); // bắt đầu đo ADC while (ADCSRA & (1 << ADSC)); // đợi cho đến khi quá trình chuyển đổi hoàn tất

nếu (ADCH> 170)

{PORTB | = (1 << PB3); // Pin được đặt thành CAO. PORTB | = (1 << PB2); // Pin được đặt thành CAO. } else if (ADCH 85) {PORTB | = (1 << PB3); // Pin được đặt thành CAO. PORTB & = ~ (1 << PB2); // Ghim được đặt thành LOW

} khác {

PORTB | = (1 << PB2); // Pin được đặt thành CAO. PORTB & = ~ (1 << PB3); // Ghim được đặt thành LOW

}

}

trả về 0;

}

Bước 2: Mạch

Mạch điện
Mạch điện

Chân ATTINY

PB3, chân vật lý 2 - chân LED 1 được kết nối

PB4, chân vật lý 3, được kết nối với chân giữa POT

GND, chân vật lý 4, được kết nối với đường ray âm - nguồn điện

PB2, chân vật lý 7 - chân LED 3 được kết nối

VCC, chân vật lý 8, được kết nối với đường sắt dương - nguồn điện

NỒI

chân pos và neg kết nối với ray tương ứng - nguồn điện.

DẪN ĐẾN

chân giữa kết nối với thanh ray âm - nguồn điện

Tôi đã thử nghiệm bằng cách sử dụng nguồn điện 3 và 3,3 volt và cả hai đều hoạt động.

Bước 3: Kết luận

Phần kết luận
Phần kết luận

Khả năng của ATTINY85 để di chuyển giữa chế độ tương tự và kỹ thuật số rất mạnh mẽ và có thể được sử dụng trong một số ứng dụng khác nhau, ví dụ: điều khiển động cơ tốc độ thay đổi và tạo ra các nốt nhạc. Tôi sẽ khám phá điều này trong các tài liệu hướng dẫn trong tương lai. Tôi hy vọng bạn đã tìm thấy điều này hữu ích.

Đề xuất: