Bài 6: Đọc Hiệu điện Thế Của Một Nguồn điện Qua Cổng Analog.
Có thể bạn quan tâm
Jump to navigation
Bạn đang tìm kiếm điều gì?
Bài viết có thể chưa rõ ràng. Hãy đóng góp thông qua việc bình luận.
Cộng đồng Arduino Việt Nam
Bạn đang ở đây
- Arduino.vn
- Chương trình mẫu
- Level: Beginner - Vỡ lòng
Nội dung chính, cần nắm
Đã bao giờ, bạn từng hỏi bản thân mình làm sao cái đồng hồ điện nó đọc được hiệu điện thế của một nguồn hay chưa? Bạn vẫn thắc mắc nguyên lý và vẫn chưa tìm ra lời giải? Vậy hãy đọc bài này. Chúng ta sẽ tìm cách để đọc tín hiệu từ analog từ đó suy ra giá trị hiệu điện thế của một vị trí xác định. Hiệu điện thế này tối đa chỉ 5V thôi bạn nhé. Nếu muốn đo cao hơn, bạn phải nghiên cứu nhiều hơn nữa!
Phần cứng
- Arduino Uno
- 1 biến trở (1 kOhm hoặc 10 kOhm)
Lắp mạch
Bạn chỉ cần lắp chân chính giữa của biến trở vào cổng analog, một chân trong 2 chân còn lại vào cực dương, và chân còn lại vào cực âm.
Chương trình và hướng dẫn
int bientroPin = A2; // Lưu chân biến trở void setup() { //Đối với một chân analog bạn không cần pinMode Serial.begin(9600);//Mở cổng Serial ở mức 9600 } void loop() { int value = analogRead(bientroPin); // Ta sẽ đọc giá trị hiệu điện thế của biến trở // Giá trị được số hóa thành 1 số nguyên có giá trị // trong khoảng từ 0 đến 1023 float volt = value / 1023.0 * 5.0; // Bây giờ ta chỉ cần tính ra giá trị hiệu điện thế // Công thức rất đơn giản. Cứ mỗi một giá trị trong khoảng từ 0-1023 // có giá trị tương đương 5 / 1023 vol. // Vậy nếu có value giá trị thì sẽ có value * 5 / 1023 vol. // Vậy tại sao tôi lại phải ghi là 1023.0 và 5.0? // Bạn cần nhớ rằng, trong ngôn ngữ lập trình Arduino, // kiểu dữ liệu của một giá trị phụ thuộc vào // phép tính cuối cùng của một biểu thức và kiểu dữ liệu của biến. // Vì vậy, ta đã khai báo biến volt có kiểu float // nên các phép tính ta cũng phải thực hiện trên số thực. // Nói như vậy thì chỉ cần viết float volt = val / 1023 * 5.0 // Đúng là như vậy sẽ trả về một giá trị kiểu float. // Nhưng khi ta thực hiện phép tính con val / 1023 thì nó sẽ trả về kiểu int (vì val là int và 1023 cũng vậy) // ==> giá trị nhận được chỉ là 0 hoặc 1 ==> hiệu điện thế đo được là 0 Volt hoặc là 5 Volt. Serial.println(volt);//Xuất ra serial Monitor. Nhấn Ctrl+Shift+M để xem delay(10); }Cảnh báo
Nếu bạn cấp một nguồn lớn hơn 5v (thực chất là > 5.3Volt) vào chân analog thì mạch Arduino của bạn sẽ hư ngay. Nếu muốn tự xây dựng cho mình một đồng hồ đo điện điện tử thì bạn cần một bài khác trên Arduino.vn.
Lưu ý
Nếu bạn chỉ đơn thuần thực hiện các thao tác trên và upload đoạn code vừa rồi, bạn sẽ đo được một hiệu điến thế từ biến trở được gắn vào nguồn 5V. Nếu bạn gắn vào nguồn 3.3 Vol thì khoảng giá trị cho phép sẽ ngắn hơn (từ 0 đến 1024 * 5 / 3.3). Nếu như một cảm biến hoặc một biến trở như trên chỉ xuất ra đươc một nguồn tối đa < 5V có thể cực nhỏ đến 0.x vol, thì với đoạn code trên bạn sẽ chỉ có vài giá trị trong khoảng đa được. Như vậy thật là hạn chế, đúng không nào?
Phát triển nâng cao
Nhưng, không sao cả, Arduino IDE đã xây dựng một hàm có tên gọi analogReference() để thực hiện những điều trên. Hãy tham khảo hàm ấy để đươc hướng dẫn chi tiết phần phát triển của bài này!
Rate node lên8 thành viên đã đánh giá bài viết này hữu ích. Từ khóa: analogbiến trởanalogreferenceserial Chuyên mục: Level: Beginner - Vỡ lòng Bài liên quan- Bài 4: Đọc điện áp điều chỉnh bởi biến trở
- Bài 05: Thay đổi độ sáng của đèn, hay làm mờ nó, có khó không?
- Giới thiệu Servo SG90 và cách điều khiển bằng biến trở
- Cách đọc dữ liệu từ quang trở và xây dựng cảm biến ánh sáng
- Cảm biến nhiệt độ LM35 và cách sử dụng nó trong môi trường Arduino
- Làm máy đo nhiệt độ cầm tay như thế nào, có khó không?
- 1 trên 2
- sau ›
Select any filter and click on Apply to see results
Các bài viết cùng tác giả Bạn có một DỰ ÁN hay giống thế này? Chia sẻ nhé!Như đã nói ở bài trước Cách lưu trữ các biến số, mảng, chuỗi trong Arduino, chúng ta đã biết rằng các loại biến trong Arduino được lưu ở những vùng nhớ khác nhau trong RAM, và khi hết RAM thì chương trình của bạn sẽ die một cách bất ngờ - vì lỗi không nằm trong code.
Vì vậy, hôm nay, chúng ta sẽ tìm cách giải quyết vấn đề "làm thế nào để giảm thiểu việc sử dụng RAM trong một sketch Arduino?".
Rate node lên11 thành viên đã đánh giá bài viết này hữu ích. Từ khóa: reduce ramflashrambộ nhớvùng nhớ Bạn có một DỰ ÁN hay giống thế này? Chia sẻ nhé!Có lẽ chúng ta đã quá quen với các loại button, nút nhấn rồi. Tuy nhiên, có thể, chỉ có thể thôi nhé, bạn vẫn chưa biết hết về các loại nút nhấn phổ biến. Vì vậy, hôm nay, mình sẽ tổng hợp giúp bạn các loại button phổ biến và cách dùng của nó.
Rate node lên20 thành viên đã đánh giá bài viết này hữu ích. Từ khóa: buttonnút bấmdigital readdigitalcông tắtlinh kiện điện tửCửa cuốn thông minh
Đăng nhập Tên người dùng * Mật khẩu *- Tạo tài khoản mới
- Yêu cầu mật khẩu mới
mã số thuế
Thành viên trực tuyến
Hiện đang có 1 người trực tuyến.
- du123lich123du
- du123lich123du
- HuyTĐ
- Lê Hồng Hiếu
- NhatNguyen0901
- beaglebone
- trần minh trí 009
- LÊ TRỌNG TRÍ
- Koishi_chan
Arduino.vn được xây dựng trên nền tảng Drupal 7, phiên bản hiện tại 2.3 tên mã Chia sẻ tình yêu với Arduino.
Đây là trang thông tin phi lợi nhuận ra đời hướng tới cộng đồng trẻ, những chủ nhân tương lai của đất nước. Tìm hiểu thêm
Lấy tin RSS Nội dung trên trang Arduino.vn được phân phối theo giấy phép Creative Commons Attribution-ShareAlike 4.0 International License.Vui lòng ghi rõ nguồn và link về bài gốc nếu bạn tham khảo nội dung từ website này.Bạn ơi ^_^!
Mục lục
Hãy trở thành thành viên của Cộng đồng Arudino Việt Nam để mở khóa chức năng này.
Mục lục Bạn ơiCùng đăng nhập vào Cộng đồng Arduino Việt Nam để mở hết các chức năng của Cộng đồng nhé.
Từ khóa » Cách Sử Dụng Analog Trong Arduino
-
Analog I/O | Cộng đồng Arduino Việt Nam
-
Lập Trình Arduino Cơ Bản → Analog Input - Thiết Bị Giáo Dục STEM
-
Analog I/O Trong Arduino - Blog Lập Trình
-
Học Arduino Bài 2 : Những điều Cơ Bản Về Arduino - MLAB
-
Hướng Dẫn đọc Giá Trị Biến Trở Theo Analog Của Arduino Trên Tinkercad
-
AnalogRead Là Gì - ĐIỆN TỬ TƯƠNG LAI
-
ADC Là Gì? Làm Thế Nào để Sử Dụng ADC Trong Arduino?
-
Chân Analog Arduino Là Gì - Blog Của Thư
-
01-Giới Thiệu Arduino Và Bắt đầu Với đọc Tín Hiệu điện áp Analog Từ ...
-
ESP32 ADC - Đọc Giá Trị Analog - DevIOT
-
Lập Trình ESP32 Với Arduino IDE → Analog Input Và ... - Ohtech
-
Đọc Analog - Lập Trình ESP8266 Arduino
-
Khóa Học Lập Trình Arduino – Lấy Tín Hiệu Số Và Tương Tự Từ Cảm Biến
-
Tín Hiệu Analog Là Gì? Tín Hiệu Digital Là Gì? - Đồng Hồ đo áp Suất