Nội dung bài viết
Đăng ký học lập trình C++
Tại STDIO bạn được dạy nền tảng lập trình tốt nhất.
Đăng ký học
Arduino board có rất nhiều phiên bản với hiệu năng và mục đích sử dụng khác nhau như: Arduino Mega, Aruino LilyPad... Trong số đó, Arduino Uno R3 là một trong những phiên bản được sử dụng rộng rãi nhất. Bài viết này giới thiệu đến bạn đọc những thông số chi tiết, các biến thể và một số lưu ý khi làm việc với board này.

Giới thiệu

Arduino board có rất nhiều phiên bản với hiệu năng và mục đích sử dụng khác nhau như: Arduino Mega, Aruino LilyPad... Trong số đó, Arduino Uno R3 là một trong những phiên bản được sử dụng rộng rãi nhất bởi chi phí và tính linh động của nó.

Do Arduino có tính mở về phần cứng, chính vì vậy bản thân Arduino Uno R3 cũng có những biến thể của để phù hợp cho nhiều đối tượng khác nhau. Đầu tiên ta có phiên bản Arduino Uno R3 tiêu chuẩn:

ss_1

Dựa vào thiết kế này, để giảm giá thành sản xuất nên một số thành phần của board này được thay đổi lại với chức năng tương đương. Ví dụ như thay vi điều khiển mặc định của Arduino là ATmega328P với kiểu chân là DIP thành ATmega328 có kiểu chân SMD. Phiên bản này có tên gọi Arduino Uno SMD R3.

ss_2

Với các thiết bị cần có kích thước nhỏ gọn, Arduino Nano ra đời nhằm đáp ứng nhu cầu đó. Arduino Nano vẫn giữ nguyên sức mạnh của Arduino Uno với vi điều khiển ATmega328 - SMD nhưng toàn bộ board mạch được thu gọn lại và có khả năng cắm trực tiếp vào breadboard.

ss_3

Vì vậy, để có thể tận dụng tối đa sức mạnh của Arduino board, ta cần phải biết rõ được thông số kỹ thuật của từng loại, nắm được các khác biệt giữa các phiên bản từ đó có giải pháp xử lý phù hợp.

Trong bài viết này, ta sẽ đi sâu vào thông số kỹ thuật của Arduino Uno R3 (các biến thể gần như có thông số tương đương), ý nghĩa các thông số và một số lưu ý khi làm việc với Arduino Uno R3.

Tiền đề bài viết

Bài viết nằm trong chương trình Tự Học Arduino.

Đối tượng hướng đến

Chương trình này hướng đến các bạn ĐANG LÀM QUEN với việc lập trình Arduino.

Bạn đọc có thể tham khảo các bài viết khác về Arduino trong Chuyên Mục Arduino.

Arduino Uno R3

Arduino Uno được xây dựng với phân nhân là vi điều khiển ATmega328P sử dụng thạch anh có chu kì dao động là 16 MHz. Với vi điều khiển này, ta có tổng cộng 14 pin (ngõ) ra / vào được đánh số từ 0 tới 13 (trong đó có 6 pin PWM, được đánh dấu ~ trước mã số của pin). Song song đó, ta có thêm 6 pin nhận tín hiệu analog được đánh kí hiệu từ A0 - A5, 6 pin này cũng có thể sử dụng được như các pin ra / vào bình thường (như pin 0 - 13). Ở các pin được đề cập, pin 13 là pin đặc biệt vì nối trực tiếp với LED trạng thái trên board.

Trên board còn có 1 nút reset, 1 ngõ kết nối với máy tính qua cổng USB và 1 ngõ cấp nguồn sử dụng jack 2.1mm lấy năng lượng trực tiếp từ AC-DC adapter hay thông qua ắc-quy nguồn.

Khi làm việc với Arduino board, một số thuật ngữ sau cần được lưu ý:

  • Flash Memory: bộ nhớ có thể ghi được, dữ liệu không bị mất ngay cả khi tắt điện. Về vai trò, ta có thể hình dung bộ nhớ này như ổ cứng để chứa dữ liệu trên board. Chương trình được viết cho Arduino sẽ được lưu ở đây. Kích thước của vùng nhớ này thông thường dựa vào vi điều khiển được sử dụng, ví dụ như ATmega8 có 8KB flash memory. Loại bộ nhớ này có thể chịu được khoảng 10,000 lần ghi / xoá.
  • RAM: tương tự như RAM của máy tính, sẽ bị mất dữ liệu khi ngắt điện nhưng bù lại tốc độ đọc ghi xoá rất nhanh. Kích thước nhỏ hơn Flash Memory nhiều lần.
  • EEPROM: một dạng bộ nhớ tương tự như Flash Memory nhưng có chu kì ghi / xoá cao hơn - khoảng 100,000 lần và có kích thước rất nhỏ. Để đọc / ghi dữ liệu ta có thể dùng thư viện EEPROM của Arduino.

Ngoài ra, board Arduino còn cung cấp cho ta các pin khác nhau như pin cấp nguồn 3.3V, pin cấp nguồn 5V, pin GND... 

Thông số kỹ thuật của Arduino board được tóm tắt trong bảng sau:

Vi điều khiển ATmega328P
Điện áp hoạt động 5V
Điện áp vào khuyên dùng 7-12V
Điện áp vào giới hạn 6-20V
Digital I/O pin 14 (trong đó 6 pin có khả năng băm xung)
PWM Digital I/O Pins 6
Analog Input Pins 6
Cường độ dòng điện trên mỗi I/O pin 20 mA
Cường độ dòng điện trên mỗi 3.3V pin 50 mA
Flash Memory 32 KB (ATmega328P)
0.5 KB được sử dụng bởi bootloader
SRAM 2 KB (ATmega328P)
EEPROM 1 KB (ATmega328P)
Tốc độ 16 MHz
Chiều dài 68.6 mm
Chiều rộng 53.4 mm
Trọng lượng 25 g

Một số lưu ý khi làm việc với Arduino Uno R3

Mặc dù Arduino có cầu chi tự phục hồi (resettable fuse) bảo về mạch khi xảy ra quá tải, tuy nhiên cầu chì này chỉ được mắc cho cổng USB nhằm tự động ngắt điện khi nguồn vào USB lớn hơn 5V.

Vì vậy, khi thao tác với Arduino, ta cần tính toán cẩn thận để tránh gây hư tổn đến board. Các thao tác sau đây có thể gây hỏng một phần hoặc toàn bộ board Arduino.

Nối trực tiếp dòng 5V vào GND

Khi nối trực tiếp dòng 5V vào GND mà không qua bất kì một điện trở kháng nào sẽ gây ra hiện tượng đoản mạch và phá hỏng Arduino, các trường hợp phổ biến có thể mắc phải:

Nối trực tiếp dòng 5V vào 1 trong 2 chân GND

ss_4

ss_5

Nối 1 pin OUT bất kì vào GND

ss_6

Trong trường hợp này, ta nối pin 7 với GND và trong Arduino IDE ta có đoạn code sau:

void setup()
{
	pinMode(8, OUTPUT);
}

void loop()
{
	digitalWrite(8, HIGH);
	delay(1000);
}

Nối một pin HIGH vào một pin LOW bất kì

ss_7

Về mặt ý nghĩa thì cách nối này cũng tương tự như ở trên, sẽ gây ra đoản mạch và phá hủy Arduino. Đoạn code sau sẽ minh họa vấn đề này

void setup()
{
	pinMode(8, OUTPUT);
	pinMode(12, INPUT);
}

void loop()
{
	digitalWrite(8, HIGH);
	delay(1000);
}

Cấp nguồn lớn hơn 5V cho bất kì pin I/O nào

Theo tài liệu của nhà sản xuất, với vi điều khiển ATmega328P thì 5V là ngưỡng lớn nhất mà vi điều khiển này có thể chịu được. Nếu bất kì pin nào bị cấp điện áp vượt quá 5V sẽ gây ra hỏng vi điều khiển này.

ss_8

Tổng cường độ dòng điện trên các I/O pin vượt quá ngưỡng chịu được

Dựa theo datasheet của vi điều khiển ATmega328P, tổng cường độ dòng điện cấp cho các I/O pin tối đa là 200mA. Vì vậy, ví dụ như trong trường hợp ta ép Arduino cấp nguồn cho hơn 10 đèn LED (mỗi đèn thông thường sẽ cần 20mA) hay dùng trực tiếp các chân I/O cấp nguồn cho động cơ sẽ có thể gây tổn hại đến vi điều khiển.

ss_9

Thay đổi các kết nối trong lúc đang vận hành

Khi Arduino đang vận hành, việc thanh đổi các kết nối có thể gây ra sự không ổn định của điện áp dẫn đến hư hỏng Arduino. Vì vậy, trong thực tế làm việc ta nên ngắt nguồn Arduino trước khi thực hiện bất kì các thay đổi nào.

Tham khảo

https://www.arduino.cc/en/Main/ArduinoBoardUno - 3/9/2015

http://www.ruggedcircuits.com/10-ways-to-destroy-an-arduino/ - 3/9/2015

 

 

THẢO LUẬN