Đã được đăng vào 10/07/2020 @ 09:33
Arduino cơ bản 16: Điều khiển LED 7 đoạn bằng IR Remote sử dụng Arduino
Mục lục
hiện
Trong nội dung bài trước mình đã giới thiệu các bạn làm thế nào để hiển thị dãy số lên LED 7 đoạn.
Tiếp tục trong chuỗi bài viết hôm nay mình sẽ hướng dẫn các bạn cách dùng IR Remote để điều khiển LED 7 đoạn
Để hiểu hơn về bài viết hôm nay các bạn có thể xem lại bài hôm trước để có thể thực hành một cách tốt nhất.
Xem thêm:
- Arduino cơ bản 14: Điều khiển LED bằng IR Remote sử dụng Arduino
- Arduino cơ bản 15: Sơ lược về LED 7 Đoạn ứng dụng làm bộ đếm sản phẩm sử dụng Arduino
IR Remote
Sơ đồ đấu nối
Các linh kiện cần thiết cho dự án
Tên linh kiện | Số lượng |
Arduino Uno R3 | 1 |
Dây cắm | 15 |
Breadboard | 1 |
LED 7 đoạn | 1 |
Trở 220R | 8 |
IR Receiver | 1 |
Điều khiển IR Remote | 1 |
Code
#include <IRremote.h> int RECV_PIN = 11; IRrecv irrecv(RECV_PIN); decode_results results; int currentNumber = 0; long codes[12]= // this array is used to store infrared codes { 0xFD30CF,0xFD08F7, // 0 ,1 0xFD8877,0xFD48B7, // 2 ,3 0xFD28D7,0xFDA857, // 4 ,5 0xFD6897,0xFD18E7, // 6 ,7 0xFD9867,0xFD58A7, // 8 ,9 0xFD20DF,0xFD609F, // advance, move back }; int number[10][8] = //the array is used to store the number 0~9 { {0,0,0,1,0,0,0,1},//0 {0,1,1,1,1,1,0,1},//1 {0,0,1,0,0,0,1,1},//2 {0,0,1,0,1,0,0,1},//3 {0,1,0,0,1,1,0,1},//4 {1,0,0,0,1,0,0,1},//5 {1,0,0,0,0,0,0,1},//6 {0,0,1,1,1,1,0,1},//7 {0,0,0,0,0,0,0,1},//8 {0,0,0,0,1,1,0,1} //9 }; void numberShow(int i) { //this function is used to display numbers for(int pin = 2; pin <= 9 ; pin++){ digitalWrite(pin, number[i][pin - 2]); } } void setup(){ Serial.begin(9600); irrecv.enableIRIn(); for(int pin = 2 ; pin <= 9 ; pin++){ pinMode(pin, OUTPUT); digitalWrite(pin, HIGH); } } void loop() { if (irrecv.decode(&results)) { for(int i = 0; i <= 11; i++){ if(results.value == codes[i]&& i <= 9){ numberShow(i); // display number 0~9 on the digital control currentNumber = i; Serial.println(i); break; } else if(results.value == codes[10]&& currentNumber != 0){ currentNumber--; numberShow(currentNumber); Serial.println(currentNumber); break; } else if(results.value == codes[11]&& currentNumber != 9){ currentNumber++; numberShow(currentNumber); Serial.println(currentNumber); break; } } Serial.println(results.value, HEX); irrecv.resume(); } }
Nguồn: arduinokit.vn
Để lại một bình luận