Bài đăng nổi bật

Cảm biến siêu âm HC-SR04 kết nối với Arduino

Thứ Tư, 24 tháng 2, 2016

Led 7 đoạn hiển thị số khi nhấn nút nhấn

Chào các bạn, hôm nay mình xin giới thiệu về led 7 đoạn
Led 7 đoạn là loại led có hình số 8 được ghép lại từ 7 đoạn thẳng, led 7 có nhiều tác dụng khác nhau, có thể dùng làm đồng hồ đêm ngược, đếm thời gian, đồng hồ vạn niên, hoặc đơn thuần chỉ để hiển thị số.
Sau đây là phần kết nối Led 7 đoạn với arduino uno, dùng nút nhấn
Nguyên lí hoạt động: sau khi đã lắp mạch hoàng chỉnh, đổ code vào arduino, led 7 đoạn hiển thị 0, khi ta nhấn button 1 lần, thì led hiển thị 1, cứ thế sau mỗi lần nhấn led sẽ tăng 1 số đến 9, nhấn lần 10 thì led hiển thị 0, và quay lại từ đầu

Phần cứng
- Arduino uno r3
- 1 led 7 đoạn

- 1 nút nhấn 4 chân (button)

- 1 breadboard
- 2 điện trở
- Dây cắm
Sơ đồ nối dây

code lập trình
// Đối với Led7 đơn chúng ta sẽ không sử dụng thư viện SevSeg như Led 7 tứ
const int segmentPins[8] = {6,10,9,3,4,5,7,8};  //quản lý việc hiển thị LED 7 đoạn DP,G-A (dấu chấm)

int buttonPin = 2;  // khai báo chân digital kết nối đến button

int i=0;

const byte numberal[10] = { // Chúng ta sẽ dùng kiểu mảng để khai báo 9 trạng thái của led (0-9) bằng mã nhị phân
        B11111100,  // Quy ước 1 sáng 0 tắt => các vị trí F-A sẽ sáng, G tắt, DP tắt. Led hiển thị số 0
        B01100000,  // tương tự với mã này ta sẽ được số 1
        B11011010,  // 2
        B11110010,  // 3
        B01100110,  // 4
        B10110110,  // 5
        B10111110,  // 6
        B11100000,  // 7
        B11111110,  // 8
        B11100110,  // 9
};
void setup() {   //thiết lập các chức năng chân

  for (int vitri = 0; vitri < 8; vitri++)   {
    pinMode(segmentPins[vitri], OUTPUT);
    digitalWrite(segmentPins[vitri], HIGH); 
  }
 
  pinMode(buttonPin, INPUT); // PinMode để nhận tín hiệu đầu vào từ Button

  attachInterrupt(0, tang, RISING); // Thêm một Interrupt tại chân digital 2
  // Tham khảo thêm tại http://arduino.vn/reference/attachinterrupt
 
  Serial.begin(9600); // Bật Serial ở mức baudrate 9600
 
  Sodawrite(0); //Đầu tiên là xuất số 0
}

void loop() {}

void tang(){    
  //Chỉ đếm từ 0 --> 9

Không có nhận xét nào:

Đăng nhận xét