Giới thiệu về Arduino
Arduino là gì?
- Arduino Uno là một board mạch vi điều khiển được phát triển bởi Arduino.cc, một nền tảng điện tử mã nguồn mở chủ yếu dựa trên vi điều khiển AVR Atmega328P. Với Arduino chúng ta có thể xây dựng các ứng dụng điện tử tương tác với nhau thông qua phần mềm và phần cứng hỗ trợ.
- Khi arduino chưa ra đời, để làm được một dự án điện tử nhỏ liên quan đến lập trình, biên dịch, chúng ta cần đến sự hỗ trợ của các thiết bị biên dịch khác để hỗ trợ. Ví dụ như, dùng Vi điều khiển PIC hoặc IC vi điều khiển họ 8051..., chúng ta phải thiết kế chân nạp onboard, hoặc mua các thiết bị hỗ trợ nạp và biên dịch như mạch nạp 8051, mạch nạp PIC...
Các loại Arduino
Arduino Uno R3
- Arduino Uno R3 là một board mạch vi điều khiển được phát triển bởi Arduino.cc, một nền tảng điện tử mã nguồn mở chủ yếu dựa trên vi điều khiển AVR Atmega328P.
- Phiên bản hiện tại của Arduino Uno R3 đi kèm với giao diện USB, 6 chân đầu vào analog, 14 cổng kỹ thuật số I / O được sử dụng để kết nối với các mạch điện tử, thiết bị bên ngoài. Trong đó có 14 cổng I / O, 6 chân đầu ra xung PWM cho phép các nhà thiết kế kiểm soát và điều khiển các thiết bị mạch điện tử ngoại vi một cách trực quan.
- Arduino Uno R3 được kết nối trực tiếp với máy tính thông qua USB để giao tiếp với phần mềm lập trình IDE, tương thích với Windows, MAC hoặc Linux Systems, tuy nhiên, Windows thích hợp hơn để sử dụng. Các ngôn ngữ lập trình như C và C ++ được sử dụng trong IDE.
- Ngoài USB, người dùng có thể dùng nguồn điện ngoài để cấp nguồn cho bo mạch.
- Arduino Uno đi kèm với giao diện USB tức là cổng USB được thêm vào bo mạch Arduino để phát triển giao tiếp nối tiếp với máy tính.
- Bộ vi điều khiển Atmega328 sử dụng trên bo mạch đi kèm với một số tính năng như hẹn giờ, bộ đếm, ngắt, chân PWM, CPU, chân I / O và dựa trên xung nhịp 16 MHz giúp tạo ra nhiều tần số và số lệnh hơn trong mỗi chu kỳ.
- Chân reset trên Arduino để thiết lập lại toàn bộ và đưa chương trình đang chạy trở về ban đầu. Chân reset này hữu ích khi Arduino bị treo khi đang chạy chương trình
- Có 14 chân I / O digital và 6 chân analog được tích hợp trên Arduino cho phép kết nối bên ngoài với bất kỳ mạch nào với Arduino. Các chân này cung cấp sự linh hoạt và dễ sử dụng cho các thiết bị bên ngoài có thể được kết nối thông qua các chân này.
- 6 chân analog được đánh dấu là A0 đến A5 và có độ phân giải 10 bit. Các chân này đo từ 0 đến 5V, tuy nhiên, chúng có thể được cấu hình ở phạm vi cao bằng cách sử dụng chức năng analogReference () và chân ISF.
- Bộ nhớ flash 13KB được sử dụng để lưu trữ số lượng hướng dẫn dưới dạng mã.
- Chỉ cần nguồn 5V để sử dụng với Arduino, hoặc lấy nguồn trực tiếp từ cổng USB. Arduino có thể hỗ trợ nguồn điện bên ngoài lên đến 12 V có thể được điều chỉnh và giới hạn ở mức 5 V hoặc 3,3 V dựa trên yêu cầu của projects.
- Chip ATMEGA328P-PU
- Nguồn Cấp : 7-12V
- Dòng Max chân 5V : 500mA
- Dòng Max 3.3V : 50mA
- Dòng Max Chân I/O : 30mA
- 14 Chân Digital I/O (6 chân PWM)
- 6 Chân Analog Inputs
- 32k Flash Memory
- 16Mhz Clock Speed
- SRAM 2 KB
- EEPROM 1 KB
- Đèn LED : Arduino Uno đi kèm với đèn LED tích hợp được kết nối thông qua chân 13. Cung cấp mức logic HIGH tương ứng ON và LOW tương ứng tắt.
- Vin : Đây là điện áp đầu vào được cung cấp cho board mạch Arduino. Khác với 5V được cung cấp qua cổng USB. Pin này được sử dụng để cung cấp điện áp toàn mạch thông qua jack nguồn, thông thường khoảng 7-12VDC
- 5V : Chân 5V được sử dụng để cung cấp điện áp đầu ra. Arduino được cấp nguồn bằng ba cách đó là USB, chân Vin của bo mạch hoặc giắc nguồn DC.
- USB : Hỗ trợ điện áp khoảng 5V trong khi Vin và Power Jack hỗ trợ dải điện áp trong khoảng từ 7V đến 20V.
- GND : Chân mass chung cho toàn mạch Arduino
- Reset : Chân reset để thiết lập lại về ban đầu
- IOREF : Chân này rất hữu ích để cung cấp tham chiếu điện áp cho Arduino
- PWM : PWM được cung cấp bởi các chân 3,5,6,9,10, 11. Các chân này được cấu hình để cung cấp PWM đầu ra 8 bit.
- SPI : Chân này được gọi là giao diện ngoại vi nối tiếp. Các chân 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK) cung cấp liên lạc SPI với sự trợ giúp của thư viện SPI.
- AREF : Chân này được gọi là tham chiếu tương tự, được sử dụng để cung cấp điện áp tham chiếu cho các đầu vào tương tự.
- TWI : Chân Giao tiếp TWI được truy cập thông qua thư viện dây. Chân A4 và A5 được sử dụng cho mục đích này.
- Serial Communication :Giao tiếp nối tiếp được thực hiện thông qua hai chân 0 (Rx) và 1 (Tx).
- Rx : Chân này được sử dụng để nhận dữ liệu trong khi chân Tx được sử dụng để truyền dữ liệu.
- External Interrupts (Ngắt ngoài) : Chân 2 và 3 được sử dụng để cung cấp các ngắt ngoài.
Arduino Nano
- Arduino Nano USB Mini là board mạch sử dụng vi điều khiển ATmega328P hoặc ATmega168 tích hợp các chân I/O đơn giản nhỏ gọn dựa trên mã nguồn mở được phát triển bởi Arduino.cc, có lợi thế lớn về kích thước so với phiên bản Arduino Uno và Arduino Mega. Arduino Nano có thể hoạt động độc lập và tương tác hiệu quả với các thiết bị điện tử, cũng có thể giúp những người mới tìm hiểu về Arduino có thể kết nối với PC, phối hợp với Flash, Xử lý, Max / Msp, PD, và các phần mềm khác một cách dễ dàng. Điều này giúp Arduino Nano là sự lựa chọn ưa thích khi muốn thực hiện một projects mà yếu cầu kết nối với các thiết bị ngoại vi ít và đơn giản.
- Các chức năng rất giống giống với phiên bản Arduino Uno nhưng kích thước nhỏ gọn hơn.
- Arduino Nano hoạt động với điện áp 5V. Tuy nhiên nguồn cấp điện áp đầu vào có thể thay đổi từ 7 đến 12V.
- Arduino Nano bo gồm tất cả 14 chân Digital, 8 chân Analog, 2 chân Reset và 6 chân Nguồn.
- Bộ nhớ flash là 16KB hoặc 32KB, phụ thuộc vào Vi điều khiển Atmega, tức là Atmega168 đi có bộ nhớ flash 16KB trong khi Atmega328 đi có bộ nhớ flash là 32KB. Bộ nhớ flash được sử dụng để lưu trữ mã hóa dữ liệu. Bộ nhớ 2KB trong tổng số bộ nhớ flash được sử dụng cho chương trình khởi động gọi là Bootloader.
- Bộ nhớ SRAM có thể thay đổi từ 1KB hoặc 2KB và EEPROM tương ứng là 512 byte hoặc 1KB đối với Atmega168 và Atmega328.
- Chip : ATmega328P
- Điện áp logic : 5V
- Điện áp hoạt động : 7-12V
- Các chân I/O : 14 chân ( Bao gồm 6 chân PWM)
- Dòng diện I/O : 40mA
- Bộ nhớ Flash : 32Kb
- SRAM : 2Kb
- EEPROM : 1Kb
- Tần số dao động : 16Mhz
Mỗi chân trên mạch Arduino Nano có chức năng cụ thể trên các chân đó. Chẳng hạn như các chân Analog có thể sử dụng như một bộ chuyển đổi Analog sang Digital trong đó các chân A4 và A5 cũng có thể được sử dụng cho vấn đề giao tiếp I2C. Tương tự, có 14 chân Digital, trong đó có 6 chân được sử dụng để tạo ra xung PWM.
- Chân Vin : Đây là chân cung cấp điện áp đầu vào cho mạch Arduino nano khi sử dụng nguồn ngoài từ 7VDC đến 12 VDC.
- Chân 5V : Là mức điện áp cung cấp quy định của Arduino được sử dụng để cấp nguồn nuôi cho vi điều khiển và các bộ phận linh kiện khác trên board Arduino.
- Chân 3,3V : Đây là một mức điện áp tối thiểu được tạo ra bởi bộ điều chỉnh điện áp trên board ( sử dụng Lm1117 - 3.3V)
- Chân GND : Chân mass cho Arduino, có nhiều chân GND trên board Arduino cho mục đích dễ dàng kết nối với thiết bị ngoại vi sử dụng dây testboard
- Chân Reset : Khi tác động nút nhấn reset, Arduino được trả về lại chương trình ban đầu. Rất hữu ích khi chạy chương trình phức tạp và bị treo Vi điều khiển ATmega. Mức tích cực LOW được thiết lập sẽ reset lại Arduino Nano
- Các chân Analogs : Có 8 chân Analog trên board mạch Arduino Nano được ký hiệu là A0 đến A7. Được sử dụng để đo điện áp tương tự trong khoảng từ 0V đến 5V.
- Chân Rx, Tx : Được sử dụng cho giao tiếp nối tiếp trong đó Tx là truyền dữ liệu và Rx là nhận dữ liệu.
- Chân 13 : Để thực hiện bật tắt LED trên board Arduino Nano, sử dụng để quan sát, kiểm tra chương trình cần thiết
- Chân AREF : Chân này được sử dụng lấy điện áp tham chiếu cho điện áp đầu vào.
- Chân xung PWM : Bao gồm 6 chân là chân 3,5,6,9,10,11 được sử dụng để cung cấp đầu ra 8-bit xung PWM.
- Giao tiếp SPI : Chân 10(SS), Chân 11(MOSI), Chân 12(MISO), Chân 13(SCK) được sử dụng cho SPI Giao diện ngoại vi nối tiếp. SPI được sử dụng chủ yếu để truyền dữ liệu giữa các bộ vi điều khiển và các thiết bị ngoại vi khác như cảm biến, thanh ghi và thẻ nhớ SD.
- Ngắt ngoài ( External Interrupts ) : Chân 2 và 3 sử dụng làm ngắt ngoài được thiết lập trong trường hợp khẩn cấp khi chúng ta cần dừng chương trình chính và tác động các cảnh báo hướng dẫn tại thời điểm đó. Chương trình chính sẽ tiếp tục lại sau khi lệnh ngắt được loại bỏ.
- Giao tiếp I2C : Giao tiếp I2C sử dụng các chân A4 (SDA) và A5 (SCL)
Arduino Mega 2560
Arduino Mega 2560 là board mạch vi điều khiển dựa trên chip xử lý Atmega2560 được mở rộng thêm bộ nhớ và các chân I / O so với các bo mạch khác có sẵn trên thị trường.
Có 54 chân I / O digital và 16 chân analog được tích hợp trên bo mạch giúp thiết bị này trở nên riêng biệt và nổi bật so với các thiết bị khác.
Có tất cả 54 chân ra I / O digital, trong đó có 15 chân được sử dụng cho xuất xung PWM.
Một bộ dao động thạch anh có tần số 16 MHz được tích hợp trên board Arduino Mega2560.
- Chíp ATMEGA2560
- Điện Áp Hoạt Động : 5VDC
- Nguồn Cấp : 7-12V ( Giới Hạn 6-20V )
- Dòng Max chân 5V : 500mA
- Dòng Max 3.3V : 50mA
- Dòng Max Chân I/O : 40mA
- 54 Chân Digital I/O (15 Chân PWM)
- 16 Chân Analog Inputs
- Bộ Nhớ Flash : 256K
- 16Mhz Clock Speed
- SRAM 8 KB
- EEPROM 4 KB
- Chân 5V & 3.3V : Chân này được sử dụng để cung cấp điện áp đầu ra khoảng 5V.
- Chân GND : Có 5 chân nối mass có sẵn trên board Arduino Mega, giúp dễ dàng kết nối nếu thực hiện dự án với nhiều kết nối thiết bị ngoại vi
- Chân reset : Được sử dụng để thiết lập lại board mạch về lại ban đầu. Mức tích cực LOW được thiết lập sẽ reset lại board mạch.
- Chân Vin : Là chân điện áp đầu vào cung cấp cho mạch Arduino Mega, điện áp từ 7V đến 20V. Mặt khác điện áp được cấp bởi jack nguồn DC có thể được lấy thông qua chân này. Tuy nhiên, điện áp đầu ra thông qua chân này đến mạch Arduino sẽ được tự động thiết lập là 5V.
- Chân truyền thông nối tiếp ( Serial Communication ) : RXD và TXD là các chân nối tiếp được sử dụng để truyền và nhận dữ liệu nối tiếp, chân Rx đại diện cho việc truyền dữ liệu còn Tx được sử dụng để nhận dữ liệu. Có tất cả 4 kết hợp các chân nối tiếp này được sử dụng trong đó Serial 0 là chân RX(0) và TX(1), Serial 1là chân TX(18) và RX(19), Serial 2 là chân TX(16) và RX(17), và Serial 3 là chân TX(14) và RX(15).
- Chân Ngắt ngoài ( External Interrupts) : 6 chân được sử dụng để tạo các ngắt ngoài đó là ngắt 0 (chân 0), ngắt 1 (chân 3), ngắt 2 (chân 21), ngắt 3 (chân 20), ngắt 4 (chân 19), ngắt 5 (chân 18). Các chân này tạo ra các ngắt bằng một số cách tức là cung cấp giá trị LOW, tăng hoặc giảm hoặc thay đổi giá trị cho các chân ngắt.
- Đèn LED : Arduino Mega 2560 tích hợp đèn LED trên board mạch kết nối với chân 13. Giá trị HIGH đèn LED được bật và LOW đèn LED tắt. Giúp người lập trình quan sát trực quan khi test, kiểm tra chương trình trên board Arduino
- Chân AREF : Chân tạo điện áp tham chiếu cho đầu vào analogs
- Các chân tương tự ( Analogs) : Có 16 chân analog được tích hợp trên board Arduino có ký hiệu là A0 đến A15. Điều quan trọng cần lưu ý là tất cả các chân analog này có thể được sử dụng làm chân I / O Digital. Mỗi chân analog đi kèm với độ phân giải 10 bit. Các chân này có thể có điện áp thay đổi tử 0V đến 5V. Tuy nhiên, giá trị trên có thể được thay đổi bằng cách sử dụng hàm ISF và analogReference ().
- Giao tiếp I2C : Hai chân 20 và 21 hỗ trợ giao tiếp I2C trong đó 20 đại diện cho SDA (Dòng dữ liệu nối tiếp chủ yếu được sử dụng để giữ dữ liệu) và 21 đại diện cho SCL (Dòng đồng hồ nối tiếp chủ yếu được sử dụng để cung cấp đồng bộ hóa dữ liệu giữa các thiết bị)
- Truyền thông SPI : Được sử dụng để truyền dữ liệu giữa Arduino và các thiết bị ngoại vi khác. Chân 50 (MISO), Chân51 (MOSI), Chân 52 (SCK), Chân 53 (SS) được sử dụng để liên lạc SPI.
Kết luận
- Với Arduino, phần mềm hỗ trợ đa nền tảng, có thể chạy trên các hệ điều hành Windows, Macintosh OSX và Linux.
- Chi phí Arduino không tốn kém
- Hỗ trợ kết nối các thiết bị ngoại vi đa dạng thông qua các modules
- Phần mềm Arduino được xuất bản dưới dạng các công cụ mã nguồn mở, ngôn ngữ có thể được mở rộng thêm bởi các chuyên gia lập trình viên có kinh nghiệm thông qua các thư viện ngôn ngữ C++. Đối với những người nghiên cứu về kỹ thuật có thể tích hợp và nhúng ngôn ngữ AVR vào Arduino nếu cần.