2025 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2025-01-13 06:58
Trong bài viết này, tôi sẽ tạo một chỉ báo quay của đồng hồ đo potentio bằng cách sử dụng vòng pixel Nano RGB.
Vì vậy, có bao nhiêu vòng quay được thực hiện trên chiết áp sẽ được hiển thị trên vòng RGB
Bước 1: Các thành phần bắt buộc
các thành phần cần thiết để tạo ra nó:
- Arduino Nano v.3
- RGB RIng NeoPixels
- Chiết áp
- Dây nhảy
- USB mini
- Bảng dự án
Bước 2: Sơ đồ mạch
Lắp ráp tất cả các thành phần theo sơ đồ kéo xuống ở trên.
Arduino đến Potensio & Vòng RGB
+ 5V ==> 3. Potensio & VCC
GND ==> 1. Potensio & GND
A0 ==> 2. Potensio
D12 ==> VÀO
Bước 3: Lập trình
Sao chép mã dưới đây và dán vào bản phác thảo của bạn
#include #ifdef _AVR_ #include // Bắt buộc đối với Adafruit Trinket 16 MHz #endif
#define mã PIN 12
#define NUMPIXELS 16
Điểm ảnh Adafruit_NeoPixel (NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
#define DELAYVAL 10
void setup () {
#if được xác định (_ AVR_ATtiny85_) && (F_CPU == 16000000)
clock_prescale_set (clock_div_1); #endif
pixel.begin ();
pixel.setBrightness (10);
Serial.begin (9600); }
void loop ()
{pixel.clear (); int val = analogRead (A0); val = map (val, 0, 1023, 0, 18);
if (val == 1) {for (int i = 0; i <1; i ++) {pixel.setPixelColor (i, pixel. Color (0, 225, 0)); chậm trễ (10); }}
nếu (val == 2)
{for (int i = 0; i <2; i ++) {pixel.setPixelColor (i, pixel. Color (32, 225, 0)); chậm trễ (10); }}
nếu (val == 3)
{for (int i = 0; i <3; i ++) {pixel.setPixelColor (i, pixel. Color (64, 225, 0)); chậm trễ (10); }}
nếu (val == 4)
{for (int i = 0; i <4; i ++) {pixel.setPixelColor (i, pixel. Color (96, 225, 0)); chậm trễ (10); }}
nếu (val == 5)
{for (int i = 0; i <5; i ++) {pixel.setPixelColor (i, pixel. Color (128, 225, 0)); chậm trễ (10); }}
nếu (val == 6)
{for (int i = 0; i <6; i ++) {pixel.setPixelColor (i, pixel. Color (160, 225, 0)); chậm trễ (10); }}
nếu (val == 7)
{for (int i = 0; i <7; i ++) {pixel.setPixelColor (i, pixel. Color (192, 225, 0)); chậm trễ (10); }}
nếu (val == 8)
{for (int i = 0; i <8; i ++) {pixel.setPixelColor (i, pixel. Color (225, 225, 0)); chậm trễ (10); }}
if (val == 9)
{for (int i = 0; i <9; i ++) {pixel.setPixelColor (i, pixel. Color (225, 225, 0)); chậm trễ (10); }}
nếu (val == 10)
{for (int i = 0; i <10; i ++) {pixel.setPixelColor (i, pixel. Color (225, 192, 0)); chậm trễ (10); }}
if (val == 11)
{for (int i = 0; i <11; i ++) {pixel.setPixelColor (i, pixel. Color (225, 160, 0)); chậm trễ (10); }}
if (val == 12)
{for (int i = 0; i <12; i ++) {pixel.setPixelColor (i, pixel. Color (225, 128, 0)); chậm trễ (10); }}
if (val == 13)
{for (int i = 0; i <13; i ++) {pixel.setPixelColor (i, pixel. Color (225, 96, 0)); chậm trễ (10); }}
if (val == 14)
{for (int i = 0; i <14; i ++) {pixel.setPixelColor (i, pixel. Color (225, 64, 0)); chậm trễ (10); }}
nếu (val == 15)
{for (int i = 0; i <15; i ++) {pixel.setPixelColor (i, pixel. Color (225, 32, 0)); chậm trễ (10); }}
if (val == 16)
{for (int i = 0; i <16; i ++) {pixel.setPixelColor (i, pixel. Color (225, 0, 0)); chậm trễ (10); }}
if (val == 17)
{for (int i = 0; i <17; i ++) {pixel.setPixelColor (i, pixel. Color (225, 0, 0)); chậm trễ (10); }}
if (val == 18)
{for (int i = 0; i <18; i ++) {pixel.setPixelColor (i, pixel. Color (225, 0, 0)); chậm trễ (10); }} pixel.show (); trì hoãn (DELAYVAL); }
Có thể tải xuống tệp phác thảo bên dưới:
Bước 4: Kết quả
Đối với kết quả có thể được xem trong video trên.
Vì vậy, mỗi khi xoay chiết áp, số lượng và màu sắc của đèn LED trên vòng sẽ sáng lên theo số lần thực hiện trên chiết áp.