Mục lục:
- Bước 1: Các bộ phận và thành phần
- Bước 2: Lập kế hoạch tiến độ của bạn
- Bước 3: Cách sử dụng chiết áp
- Bước 4: Sơ đồ đấu dây cho chiết áp (3x)
- Bước 5: Sử dụng AnalogRead () và các biến
- Bước 6: Sử dụng màn hình nối tiếp với 1 núm
- Bước 7: Sử dụng đèn LED RGB
- Bước 8: Sử dụng chiết áp để điều khiển đèn LED RGB (với một lỗi)
- Bước 9: THƯỞNG: Hàm Map () và Mã Cleaner
Video: Bộ trộn màu với Arduino: 9 bước (có hình ảnh)
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:35
Bởi tliguori330
Giới thiệu: Luôn học hỏi….. Thông tin thêm về tliguori330 »
Bộ trộn màu là một dự án tuyệt vời cho bất kỳ ai làm việc và phát triển với Arduino. Đến cuối phần hướng dẫn này, bạn sẽ có thể trộn và kết hợp hầu hết mọi màu sắc có thể tưởng tượng bằng cách xoay 3 nút. Cấp độ kỹ năng đủ thấp để ngay cả một tân binh hoàn chỉnh cũng có thể hoàn thành nó thành công, nhưng cũng đủ thú vị để thú vị đối với một bác sĩ thú y dày dạn kinh nghiệm. Chi phí của dự án này không đắt và hầu hết các bộ dụng cụ Arduino đều đi kèm với các vật liệu cần thiết. Cốt lõi của mã này là một số chức năng arduino cơ bản mà bất kỳ ai sử dụng arduino đều muốn hiểu. Chúng ta sẽ đi sâu vào các hàm analogRead () và analogWrite () như một hàm thông thường khác được gọi là map (). Các liên kết này đưa bạn đến các trang tham khảo arduino cho các chức năng này.
Bước 1: Các bộ phận và thành phần
Arduino Uno
Chiết áp (x3)
LED RGB
Điện trở 220 ohm (x3)
Dây nhảy (x12)
Bảng bánh mì
Bước 2: Lập kế hoạch tiến độ của bạn
Nó có thể rất hữu ích để lập kế hoạch cách bạn sẽ hoàn thành dự án của mình. Mã hóa là tất cả về tiến trình hợp lý từ bước này sang bước tiếp theo. Tôi đã tạo một lưu đồ phác thảo cách tôi muốn bản phác thảo của mình chạy. Mục tiêu chung là có 3 núm vặn (chiết áp) điều khiển từng màu trong số ba màu của đèn LED RGB. Để thực hiện điều này, chúng ta sẽ cần tạo một bản phác thảo phù hợp với biểu đồ luồng. Chúng tôi sẽ muốn….
1) Đọc 3 chiết áp khác nhau và lưu giá trị của chúng trong các biến.
2) Chúng tôi sẽ chuyển đổi các giá trị đó để phù hợp với phạm vi của đèn LED RGB.
3) Sau đó, cuối cùng chúng ta sẽ viết các giá trị đã chuyển đổi đó thành từng màu của RGB.
Bước 3: Cách sử dụng chiết áp
Một trong những thành phần cơ bản nhất trong bộ dụng cụ điện tử, chiết áp có thể được sử dụng trong nhiều dự án khác nhau. chiết áp hoạt động bằng cách cho phép người dùng thay đổi vật lý điện trở của mạch. Ví dụ điển hình nhất về chiết áp là một bộ điều chỉnh độ sáng. trượt hoặc xoay một núm thay đổi chiều dài của mạch. một con đường dài hơn dẫn đến nhiều kháng cự hơn. Điện trở tăng tỷ lệ nghịch làm giảm dòng điện và ánh sáng mờ đi. Chúng có thể có tất cả các hình dạng và kích thước khác nhau nhưng hầu hết đều có thiết lập cơ bản giống nhau. Một sinh viên đã yêu cầu giúp đỡ sửa cây đàn của mình và chúng tôi phát hiện ra các nút bấm trên nó giống hệt như chiết áp. Nói chung, bạn là chân bên ngoài được kết nối với 5 volt và nối đất và chân giữa đi vào chân analog như A0
Bước 4: Sơ đồ đấu dây cho chiết áp (3x)
Chân nhất bên trái sẽ được kết nối với 5v và chân nhất bên phải sẽ được kết nối với GND. Bạn thực sự có thể đảo ngược hai bước này và nó sẽ không ảnh hưởng nhiều đến dự án. Tất cả những gì sẽ thay đổi là xoay núm hết cỡ sang trái sẽ có độ sáng đầy đủ thay vì tắt hoàn toàn. Chân giữa sẽ được kết nối với một trong các chân analog trên Arduino. Vì chúng ta sẽ có ba nút, chúng ta sẽ muốn tăng gấp ba lần công việc chúng ta vừa làm. Mỗi núm cần 5v và GND để chúng có thể được chia sẻ bằng cách sử dụng bảng mạch. Dải màu đỏ trên bảng bánh mì được kết nối với 5 Volts và dải màu xanh được nối với đất. Mỗi núm cần có chân analog riêng để chúng được kết nối với A0, A1, A2.
Bước 5: Sử dụng AnalogRead () và các biến
Với việc bạn thiết lập chiết áp đúng cách, chúng tôi sẵn sàng đọc các giá trị đó. Khi chúng ta muốn làm điều này, chúng ta sử dụng hàm analogRead (). Cú pháp đúng là analogRead (pin #); vì vậy để đọc chiết áp giữa của chúng tôi, chúng tôi sẽ analogRead (A1); Để làm việc với các số được gửi từ núm đến Arduino, chúng tôi cũng sẽ muốn lưu các số đó trong một biến. Dòng mã sẽ hoàn thành nhiệm vụ này khi chúng ta đọc chiết áp và lưu số hiện tại của nó trong biến số nguyên "val"
int val = analogRead (A0);
Bước 6: Sử dụng màn hình nối tiếp với 1 núm
Hiện tại, chúng tôi có thể lấy các giá trị từ các nút và lưu trữ chúng trong một biến, nhưng sẽ rất hữu ích nếu chúng tôi có thể thấy các giá trị này. Để làm điều này, chúng ta cần sử dụng màn hình nối tiếp được tích hợp sẵn. Đoạn mã dưới đây là bản phác thảo đầu tiên mà chúng tôi thực sự sẽ chạy trong Arduino IDE có thể được tải xuống tại trang web của họ. Trong void setup (), chúng tôi sẽ kích hoạt các chân tương tự được kết nối với mỗi chân giữa như một ĐẦU VÀO và kích hoạt màn hình Nối tiếp bằng cách sử dụng Serial.begin (9600); tiếp theo, chúng tôi chỉ đọc một trong các nút và lưu trữ nó trong một biến như trước. Thay đổi bây giờ là chúng ta đã thêm một dòng in số nào được lưu trữ trong biến. Nếu bạn biên dịch và chạy bản phác thảo, sau đó bạn có thể mở màn hình Nối tiếp của mình và xem các số cuộn trên màn hình. Mỗi khi mã lặp lại, chúng tôi đang đọc và in một số khác. Nếu bạn xoay núm được kết nối với A0, bạn sẽ thấy các giá trị nằm trong khoảng từ 0-1023. sau đó, mục tiêu sẽ là đọc tất cả 3 potntiometers yêu cầu thêm 2 analogRead và 2 biến khác nhau để lưu và in.
void setup () {
pinMode (A0, INPUT); pinMode (A1, INPUT); pinMode (A2, INPUT); Serial.begin (9600); } void loop () {int val = analogRead (A0); Serial.println (val); }
Bước 7: Sử dụng đèn LED RGB
Đèn LED RGB 4 chân i một trong những thành phần yêu thích của tôi cho Arduino. Tôi thấy cách nó có thể tạo ra màu sắc vô tận từ hỗn hợp của 3 màu cơ bản thật hấp dẫn. Việc thiết lập tương tự như bất kỳ đèn LED thông thường nào nhưng ở đây về cơ bản chúng ta có các đèn LED màu đỏ, xanh dương và xanh lá cây được kết hợp với nhau. Mỗi chân ngắn sẽ được điều khiển bởi một trong các chân PWM trên arduino. Chân dài nhất sẽ được kết nối với 5 volt hoặc nối đất, tùy thuộc vào đèn LED cực dương chung hay cực âm chung. Bạn sẽ cần phải thử cả hai cách để giải quyết vấn đề này. Chúng ta sẽ có 5v và GND được kết nối với breadboard nên dễ dàng thay đổi. Sơ đồ trên cho thấy cũng sử dụng 3 điện trở. Tôi thực sự bỏ qua bước này thường xuyên vì tôi chưa làm và đèn LED tắt trên tôi.
Để tạo màu, chúng ta sẽ sử dụng hàm analogWrite () để kiểm soát lượng màu đỏ, xanh lam hoặc xanh lá cây cần thêm. Để sử dụng chức năng này, bạn cần nói mã pin nào mà chúng ta sẽ nói chuyện và một số trong khoảng từ 0-255. 0 hoàn toàn tắt và 255 là số lượng cao nhất của một màu. Cho phép kết nối chân màu đỏ với chân 9, màu xanh lá cây với chân 10 và màu xanh lam với chân 11. Điều này có thể mất một số thử nghiệm và sai sót để tìm ra chân nào là màu nào. Nếu tôi muốn tạo ra một màu tím, tôi có thể chọn nhiều màu đỏ, không có màu xanh lá cây, và có thể bằng một nửa độ mạnh của màu xanh lam. Tôi khuyến khích bạn nên mày mò với những con số này, nó thực sự thú vị. Một số ví dụ phổ biến trong các hình trên
void setup () {
pinMode (9, OUTPUT); pinMode (10, OUTPUT); pinMode (11, OUTPUT); } void loop () {analogWrite (9, 255); analogWrite (10, 0); analogWrite (11, 125)}
Bước 8: Sử dụng chiết áp để điều khiển đèn LED RGB (với một lỗi)
Đã đến lúc bắt đầu hợp nhất hai mã của chúng ta với nhau. Bạn nên có đủ chỗ trên bảng mạch tiêu chuẩn để lắp cả 3 nút và đèn LED RGB. Ý tưởng là thay vì nhập các giá trị cho màu xanh lam đỏ và xanh lục, chúng ta sẽ sử dụng các giá trị được lưu từ mỗi máy đo poteniometer để liên tục thay đổi màu sắc. chúng ta sẽ cần 3 biến trong trường hợp này. redval, greenval, blueval là tất cả các biến khác nhau. Hãy nhớ rằng bạn có thể đặt tên cho các biến này bất cứ thứ gì bạn muốn. nếu bạn xoay núm "màu xanh lá cây" và số lượng màu đỏ thay đổi, bạn có thể chuyển đổi tên để khớp chính xác. bây giờ bạn có thể xoay từng núm và điều khiển màu sắc !!
void setup () {
pinMode (A0, INPUT); pinMode (A1, INPUT); pinMode (A2, INPUT); pinMode (9, OUTPUT); pinMode (10, OUTPUT); pinMode (11, OUTPUT); } void setup () {int redVal = analogRead (A0); int greenVal = analogRead (A1); int blueVal = analogRead (A2); analogWrite (9, redVal); analogWrite (10, greenVal); analogWrite (11, blueVal); }
Bước 9: THƯỞNG: Hàm Map () và Mã Cleaner
Bạn có thể nhận thấy rằng khi bạn bắt đầu xoay núm cho một màu lên, nó sẽ lớn dần và sau đó đột ngột thả xuống để tắt. Mô hình phát triển và sau đó nhanh chóng tắt này lặp lại 4 lần khi bạn xoay núm lên hết cỡ. Nếu bạn nhớ lại chúng tôi đã nói chiết áp có thể đọc các giá trị từ 0 đến 1023. Hàm analogWrite () chỉ chấp nhận các giá trị từ 0 đến 255. một khi chiết áp vượt quá 255 thì về cơ bản nó sẽ bắt đầu lại ở mức 0. Có một chức năng hay để trợ giúp lỗi được gọi là map (). bạn có thể chuyển đổi một dải số thành một dải số khác trong một bước. chúng tôi sẽ chuyển đổi các số từ 0-1023 thành các số từ 0-255. Ví dụ: nếu núm được đặt thành một nửa, nó sẽ đọc khoảng 512. con số đó sẽ được thay đổi thành 126, tức là một nửa cường độ của đèn LED. Trong bản phác thảo cuối cùng này, tôi đặt tên cho các chân bằng tên biến để thuận tiện cho tôi. Bây giờ bạn đã có một máy trộn màu hoàn chỉnh để thử nghiệm !!!
// tên biến cho các chân chiết áp
int redPot = A0; int greenPot = A1; int bluePot = A2 // tên biến cho các chân RGB int redLED = 9; int greenLED = 10; int blueLED = 11; void setup () {pinMode (redPot, INPUT); pinMode (greenPOT, INPUT); pinMode (bluePot, INPUT); pinMode (redLED, OUTPUT); pinMode (greenLED, OUTPUT); pinMode (blueLED, OUTPUT); Nối tiếp, bắt đầu (9600); } void loop () {// đọc và lưu giá trị từ chiết áp int redVal = analogRead (redPot); int greenVal = analogRead (greenPot); int blueVal - analogRead (bluePot); // chuyển đổi các giá trị từ 0-1023 thành 0-255 cho đèn LED RGB redVal = map (redVal, 0, 1023, 0, 255); greenVal = bản đồ (greenVal, 0, 1023, 0, 255); blueVal = map (blueVal, 0, 1023, 0, 255); // ghi các giá trị đã chuyển đổi này thành từng màu của RGB LED analogWrite (redLED, redVal); anaogWrite (greenLED, greenVal); analogWrite (blueLED, blueVal); // hiển thị các giá trị trên Serial monitor Serial.print ("red:"); Serial.print (redVal); Serial.print ("xanh:"); Serial.print (greenVal); Serial.print ("lam:"); Serial.println (blueVal); }
Đề xuất:
NeckLight V2: Dây chuyền phát sáng trong bóng tối với hình dạng, màu sắc và đèn: 10 bước (có hình ảnh)
NeckLight V2: Dây chuyền phát sáng trong bóng tối với hình dạng, màu sắc và đèn: Xin chào tất cả các bạn, Sau bài hướng dẫn đầu tiên: NeckLight mà tôi đã đăng, đó là một thành công lớn đối với tôi, tôi chọn làm phiên bản V2 của nó. V2 là để sửa một số lỗi của V1 và có thêm tùy chọn trực quan. Trong Tài liệu hướng dẫn này, tôi sẽ ví dụ
Xử lý hình ảnh với Raspberry Pi: Cài đặt OpenCV & Tách màu hình ảnh: 4 bước
Xử lý hình ảnh với Raspberry Pi: Cài đặt OpenCV & Tách màu hình ảnh: Bài đăng này là bài đầu tiên trong số một số hướng dẫn xử lý hình ảnh cần tuân theo. Chúng tôi xem xét kỹ hơn các pixel tạo nên hình ảnh, tìm hiểu cách cài đặt OpenCV trên Raspberry Pi và chúng tôi cũng viết các tập lệnh thử nghiệm để chụp ảnh và cũng c
Bộ chọn màu Arduino RGB - Chọn màu từ các đối tượng trong cuộc sống thực: 7 bước (có hình ảnh)
Bộ chọn màu Arduino RGB - Chọn màu từ các đối tượng trong cuộc sống thực: Dễ dàng chọn màu từ các đối tượng vật lý với bộ chọn màu RGB dựa trên Arduino này, cho phép bạn tạo lại màu sắc mà bạn nhìn thấy trong các đối tượng đời thực trên máy tính hoặc điện thoại di động của mình. Chỉ cần nhấn một nút để quét màu của đối tượng bằng TCS347 giá rẻ
Trộn màu LED RGB với Arduino trong Tinkercad: 5 bước (có hình ảnh)
Trộn màu LED RGB với Arduino trong Tinkercad: Hãy tìm hiểu cách điều khiển đèn LED nhiều màu bằng cách sử dụng các đầu ra tương tự của Arduino. Chúng tôi sẽ kết nối đèn LED RGB với Arduino Uno và soạn một chương trình đơn giản để thay đổi màu của nó. Bạn có thể theo dõi hầu như bằng cách sử dụng Mạch Tinkercad. Bạn thậm chí có thể xem cái này
Tạo hình ảnh liền mạch theo chiều ngang hoặc chiều dọc (đối với "GIMP").: 11 bước (với hình ảnh)
Tạo hình ảnh liền mạch theo chiều ngang hoặc chỉ theo chiều dọc (đối với "GIMP"): Nếu bạn dùng thử plugin "Tạo liền mạch" trong GIMP, nó sẽ giúp hình ảnh liền mạch theo cả chiều ngang và chiều dọc cùng một lúc. Nó sẽ không cho phép bạn làm cho nó liền mạch chỉ trong một chiều. Hướng dẫn này sẽ giúp bạn làm cho