Arduino là gì?

Arduino là một bo mạch vi điều khiển do một nhóm giáo sư và sinh viên nước Ý thiết kế và đưa ra đầu tiên vào năm 2005. Mạch Arduino được sử dụng để cảm nhận và điều khiển nhiều đối tượng khác nhau. Nó có thể thực hiện nhiều nhiệm vụ lấy tín hiệu từ cảm biến đến điều khiển đèn, động cơ, và nhiều đối tượng khác. Ngoài ra mạch còn có khả năng liên kết với nhiều module khác nhau như module đọc thẻ từ, ethernet shield, sim900A, ….để tăng khả ứng dụng của mạch.

Phần cứng bao gồm một board mạch nguồn mở được thiết kế trên nền tảng vi xử lý AVR Atmel 8bit, hoặc ARM, Atmel 32-bit,…. Hiện phần cứng của Arduino có tất cả 6 phiên bản, Tuy nhiên phiên bản thường được sử dụng nhiều nhất là Arduino Uno và Arduino Mega.

Phần mềm để lập trình cho mạch Arduino là phần mềm IDE.

Cấu tạo Arduino

Cấu tạo Arduino
Cấu tạo của Arduino Uno R3

Thông số cơ bản của Arduino Uno R3

Vi điều khiểnAtmega 328 (họ 8 bit)
Điện áp hoạt động5V – DC (cấp qua cổng USB)
Tần số hoạt động16 MHz
Dòng tiêu thụ30mA
Điện áp vào khuyên dùng7 – 12V – DC
Điện áp vào giới hạn6 – 20V – DC
Số chân Digital I/O14 (6 chân PWM)
Số chân Analog6 (độ phân giải 10 bit)
Dòng tối đa trên mỗi chân I/O30 mA
Dòng ra tối đa (5V)500 mA
Dòng ra tối đa (3.3V)50 mA
Bộ nhớ flash32 KB (Atmega328) với 0.5KB dùng bởi bootloader
SRAM2KB (Atmega328)
EEPROM1KB (Atmega328)

Phần mềm lập trình Arduino IDE

Arduino cung cấp đến môi trường lập trình tích hợp mã nguồn mở hỗ trợ người dùng viết code và tải nó lên bo mạch Arduino. Đây là môi trường đa nền tảng, hỗ trợ một loạt các bo mạch Arduino cùng rất nhiều tính năng độc đáo. Ứng dụng lập trình này có giao diện được sắp xếp hợp lý, phù hợp với cả những người dùng chuyên nghiệp lẫn không chuyên.

Arduino có môi trường lập trình được viết bằng java, hiện đang được sử dụng cho các bo mạch Arduino và Genuido, được nhiều công ty trên thế giới sử dụng để lập trình cho các thiết bị của họ. Java 2 Platform Standard Edition cũng là một IDE hỗ trợ Java. Hiện Java 2 Platform Standard Edition được rất nhiều người sử dụng.

Arduino là môi trường phát triển tích hợp đa nền tảng, hỗ trợ cho một loạt các bo mạch Arduino như Arduino Uno, Nano, Mega, Esplora, Ethernet, Fio, Pro hay Pro Mini cũng như LilyPad Arduino. Phần mềm này cũng phù hợp cho những lập trình viên C và C ++ là thay thế hoàn hảo cho các IDE khác. Với những ai muốn học lập trình PHP, thì PHP Designer 2007 Personal là lựa chọn tốt. Phần mềm PHP Designer 2007 Personal cung cấp các giải pháp hiệu quả trong thiết kế website.

Các tính năng chính của Arduino IDE:

  • Viết code cho bo mạch Arduino
  • Hỗ trợ nhiều loại bo mạch Arduino
  • Giao diện được sắp xếp hợp lý
  • Bộ sưu tập các ví dụ mẫu
  • Mảng thư viện hỗ trợ phong phú
  • .v.v.

Giao diện phần mềm IDE

Giao diện của phần mềm IDE
Giao diện của phần mềm IDE
Menu file trên phần mềm IDE
Menu file trên phần mềm IDE
Cách trên boad trên phần mềm IDE
Cách trên boad trên phần mềm IDE
Cách chọn cổng COM trên màn hình IDE
Cách chọn cổng COM trên màn hình IDE

Cấu trúc một chương trình trong phần mềm IDE

Tổng quan quá trình xử lý chương trình Arduino
Tổng quan quá trình xử lý chương trình Arduino

Phần 1: Khai báo biến

Đây là phần khai báo kiểu biến, tên các biến, định nghĩa các chân trên board một số kiểu khai báo biến thông dụng: #define

Nghĩa của từ “define” là định nghĩa, hàm #define có tác dụng định nghĩa, hay còn gọi là gán, tức là gán một chân, một ngõ ra nào đó với 1 cái tên.

Ví dụ:  #define led 13

Chú ý: sau #define thì không có dấu “,” (dấy phẩy)

Khai báo các kiểu biến khác như: int (kiểu số nguyên), float,…

Phần 2: Thiết lập (void setup())

Phần này dùng để thiết lập cho chương trình, cần nhớ rõ cấu trúc của nó

void setup()
{
…..
}

Cấu trúc của nó có dấu ngoặc nhọn ở đầu và ở cuối, nếu thiếu phần này khi kiểm tra chương trình thì chương trình sẽ báo lỗi.

Phần này dùng để thiết lập các tốc độ truyền dữ liệu, kiểu chân là chân ra hay chân vào. Trong đó:

 Serial.begin(9600); Dùng để truyền dữ liệu từ board Arduino lên máy tính
 pinMode(biến, kiểu và hoặc ra)

Ví dụ: pinMode(ChanDO, INPUT);

 Dùng để xác định kiểu chân là đầu vào hay đầu ra

Phần 3: Vòng lặp

Dùng để viết các lệnh trong chương trình để mạch Arduino thực hiện các nhiệm vụ mà chúng ta mong muốn, thường bắt đầu bằng:
void loop()
{
……………….
}

Một số ký hiệu và câu lệnh thường gặp

Ký hiệu, câu lệnhÝ nghĩa
//Dấu // dùng để giải thích, khi nội dung giải thích nằm trên 1 dòng, khi kiểm tra chương trình thì phần kiểm tra sẽ bỏ qua phần này, không kiểm tra
/*
….
*/
Ký hiệu này cũng dùng để giải thích, nhưng giải thích dành cho 1 đoạn, tức có thể xuống dòng được
#define biến chânDefine nghĩa là định nghĩa, xác định. Câu lệnh này nhằm gán tên 1 biến vào 1 chân nào đó. Ví dụ #define led 13
digitalWrite(chân, trạng thái);Dùng để tắt, mở 1 chân ra. Cú pháp của nó là digitalWrite(chân,trạng thái chân);. Ở đây trạng thái chân có thể là HIGH hoặc LOW. Ví dụ: digital(led,HIGH); , hoặc digital(led,LOW); . Chú ý dấu chấm phẩy đằng sau câu lệnh.
analogWrite(chân, giá trị);Có ý nghĩa dùng để băm xung (PWM), thường dùng để điều khiển tốc độ động cơ, độ sáng led,..
digitalRead(chân);Read nghĩa là đọc, lệnh này dùng để đọc giá trị digital tại chân muốn đọc
analogRead(chân);Read nghĩa là đọc, lệnh này dùng để đọc giá trị analog tại chân muốn đọc
delay(thời gian);Delay nghĩa là chờ, trì hoãn, duy trì. Lệnh này dùng để duy trì trạng thái đang thực hiện chờ một thời gian. Thời gian ở đây được tính bằng mili giây, 1 giây bằng 1 ngàn mili giây.
if()
{
Các câu lệnh}
else (){
Các câu lệnh}
if nghĩa là nếu, sau if là dấu (), bên trong dấu ngoặc là một biểu thứ so sánh. Ví dụ trong bài về cảm biến độ ẩm đất (phần 5) thì: if (giatriAnalog>500) //nếu giá trị đọc được của biến giatriAnalog lớn hơn 500
{
digitalWrite(Led,HIGH); //Ra lệnh cho led sáng
delay(1000);//chờ 1s}
else nghĩa là ngược lại
Serial.print()In ra màn hình máy tính, lệnh này in không xuống dòng
Serial.println()In ra màn hình máy tính, in xong xuống dòng, giá trị tiếp theo sẽ được in ở dòng kế tiếp

Mô phỏng Arduino điều khiển Stepper Motor trên Proteus

Arduino điều khiển động cơ bước
Arduino điều khiển động cơ bước

Trên đây, chúng tôi đã chia sẻ cho các bạn những kiến thức tổng quan nhất về vi điều khiển Arduino. Hy vọng rằng, với những kiến thức mà MesiDas chia sẻ phía trên sẽ giúp ích được cho các bạn trong quá trình tìm hiểu, nghiên cứu, học tập và làm việc với vi điều khiển Arduino. Xin cảm ơn!

0 0 vote
Article Rating
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x