Thiết đặt Digital Pins như là INPUT, INPUT_PULLUP, và OUTPUT

Chân kỹ thuật số có thể được sử dụng như là INPUT, INPUT_PULLUP , hoặc OUTPUT . Để thay đổi cách sử dụng một pin, chúng ta sử dụng hàm pinMode().

Cấu hình một pin là INPUT

Các pin của Arduino ( Atmega ) được cấu hình là một INPUT với pinMode ( ) có nghĩa là làm cho pin ấy có trở kháng cao (không cho dòng điện đi ra) . Pin được cấu hình là INPUT làm việc tiêu thụ năng lượng điện của mạch rất nhỏ, nó tương đương với một loạt các điện trở 100 Mega-ôm ở phía trước của pin . Điều này làm cho chúng cực kì hữu ích cho việc đọc một cảm biến, nhưng không cung cấp năng lượng một đèn LED.
Nói một cách nôm na, dân dã, thì khi một pin được cấu hình là INPUT thì bạn sẽ dễ dàng đọc được các tín hiệu điện và đọc được từ bất cứ thứ gì (Có điện <= 5V)!

Nếu bạn đã cấu hình pin là INPUT, bạn sẽ muốn pin có một tham chiếu đến mặt đất (GND, cực âm), thường được thực hiện với một điện trở kéo xuống ( một điện trở đi xuống mặt đất ) như mô tả trong kỹ thuật số đọc nối tiếp.

Cấu hình một pin là INPUT_PULLUP

Chip Atmega trên Arduino có nội kéo lên điện trở (điện trở kết nối với hệ thống điện nội bộ) mà bạn có thể truy cập. Nếu bạn không thích mắc thêm một điện trở ở mạch ngoài, bạn có thể dùng tham số INPUT_PULLUP trong pinMode(). Mặc định khi không được kết nối với một mạch ngoài hoặc được kết nối với cực dương thì pin sẽ nhận giá trị là HIGH, khi pin được thông tới cực âm xuống đất thì nhận giá trị là LOW.

Cấu hình một pin là đầu ra (OUTPUT)

Để thiết đặt pin là một OUTPUT, chúng ta dùng pinMode ( ), điều này có nghĩa là làm cho pin ấy có một trở kháng thấp (cho dòng điện đi ra). Điều này có nghĩa, pin sẽ cung cấp một lượng điện đáng kể cho các mạch khác . Pin của vi điều khiển Atmega có thể cung cấp một nguồn điện liên tục 5V hoặc thả chìm ( cho điện thế bên ngoài chạy vào ) lên đến 40 mA ( milliamps ). Điều này làm cho chúng hữu ích để tạo năng lượng đèn LED nhưng vô dụng đối với các cảm biến đọc!
Lúc bấy giờ, nếu bạn làm làm ngắn mạch (digitalWrite 1 pin là HIGH rồi nối trực tiếp đến cực âm hoặc digitalWrite 1 pin là LOW rồi mắc trực tiếp đến cực dương, hoặc những việc làm tương tự) thì mạch sẽ bị hỏng! Ngoài ra, với dòng điện chỉ 40mA thì trong một số trường hợp chúng ta không thể làm cho mô tơ hoặc relay hoạt động được. Để làm chúng hoạt động thì chúng ta cần chuẩn bị cho mình một số mạch sử dụng các IC khuếch đại chuyên dụng (gọi là mạch giao tiếp)

Reference Tags: 
lên
22 thành viên đã đánh giá bài viết này hữu ích.
Các bài viết cùng tác giả

Tạo một quy trình công nghiệp với các bước bằng Arduino - Phần 3: Giới hạn số lần chạy và kết hợp thư viện bất đồng bộ

Ở trong loạt bài này và một bài viết khác, mình đã đề cập đến vấn đề quy trình Công nghiệp (phần 1phần 2) và vấn đề xử lý bất đồng bộ trên Arduino. Hôm nay, mình muốn phát triển loạt bài này với mục đích, bạn có thể xây dựng một máy công nghiệp với các quy trình tuần tự nhưng có thể can thiệp để dừng ngay được. Ngoài ra, mình còn cập nhập thêm khả năng quy ước trước số lượt chạy của quy trình và một số API khác giúp cho các bạn có thể kết hợp lại 2 thư viện này! Để đọc hiểu, và tiếp cận nhanh bài này, các bạn cần đọc 3 bài viết mà mình có liên kết trong đoạn giới thiệu này.

lên
10 thành viên đã đánh giá bài viết này hữu ích.

Hằng số thực

Tương tự như hằng số nguyên, hằng số thực (floating point constants) cũng có cách làm việc và sử dụng tương tự. Khi bạn viết một biểu thức tính toán, giá trị của biểu thức này sẽ được tính ra và trình biên dịch sẽ thay thế biểu thức này bằng một hằng số thực đã tính ra được. Điều đó gợi ý rằng trong những chương trình lớn, để giảm thời gian biên dịch, bạn nên tính trước giá trị của những biểu thức thay vì bắt trình biên dịch tính toán.

lên
2 thành viên đã đánh giá bài viết này hữu ích.