Professional Documents
Culture Documents
Tuy nhiên có một thứ làm cho mọi chuyện trở nên rất dễ dàng, có tên gọi là ―Arduino”. Và trải
qua các công đoạn ngắn gọn như sau:
Arduino thật ra là một bo mạch vi xử lý được dùng để lập trình tương tác với các thiết bị phần cứng
như cảm biến, động cơ, đèn hoặc các thiết bị khác. Đặc điểm nổi bật của Arduino là môi trường phát
triển ứng dụng cực kỳ dễ sử dụng, với một ngôn ngữ lập trình có thể học một cách nhanh chóng
ngay cả với người ít am hiểu về điện tử và lập trình. Và điều làm nên hiện tượng Arduino chính là
mức giá rất thấp và tính chất nguồn mở từ phần cứng tới phần mềm.
Arduino Uno là sử dụng chip Atmega328. Nó có 14 chân digital I/O, 6 chân đầu vào (input) analog,
thạch anh dao động 16Mhz.
Một số thông số kỹ thuật như sau :
Chip ATmega328
Điện áp cấp nguồn 5V
SRAM 2 KB (ATmega328)
EEPROM 1 KB (ATmega328)
Xung nhịp 16 MHz
USB (1).
Arduino sử dụng cáp USB để giao tiếp với máy tính. Thông qua cáp USB chúng ta có thể Upload
chương trình cho Arduino hoạt động, ngoài ra USB còn là nguồn cho Arduino.
Nguồn ( 2 và 3 ).
Khi không sử dụng USB làm nguồn thì chúng ta có thể sử dụng nguồn ngoài thông qua jack cắm
2.1mm ( cực dương ở giửa ) hoặc có thể sử dụng 2 chân Vin và GND để cấp nguồn cho Arduino.
Bo mạch hoạt động với nguồn ngoài ở điện áp từ 5 – 20 volt. Chúng ta có thể cấp một áp lớn hơn tuy
nhiên chân 5V sẽ có mực điện áp lớn hơn 5 volt. Và nếu sử dụng nguồn lớn hơn 12 volt thì sẽ có hiện
tượng nóng và làm hỏng bo mạch. Khuyết cáo các bạn nên dùng nguồn ổn định là 5 đến dưới 12
volt.
Hoặc bạn có thể mở trực tiếp từ link này https://www.arduino.cc/en/Main/Software. Sau đó kéo
xuống tìm Download the Arduino IDE để tải ứng dụng.
Bạn nên chọn “Windows installer, for Windows XP and up” vì trong gói này sẽ giúp bạn cài
driver cần thiết cho board Arduino ở cuối tiến trình cài đặt. Sau khi nhấn vào liên kết trên, bạn sẽ
được chuyển qua trang Donate:
Số “1.8.10” trong hình trên là số phiên bản của Arduino IDE. Khi bạn tải về số này có thể khác nhé.
Tiến hành cài đặt
Bây giờ bạn double click vào file vừa tải để tiến hành cài đặt. Khi tiến trình cài vừa bắt đầu có thể
bạn sẽ thấy màn hình hiện lên thông báo:
Sau khi cài đặt xong thì giao diện chương trình như sau:
Bây giờ bạn click vào Start Menu chọn Control Panel kế đến chúng ta chọn System and Security,
click System và sau đó chọn Device Manager.
Chúng ta sẽ thấy cảnh báo màu vàng thiếu driver trên Arduino. Click chuột phải trên Arduino Uno
icon sau đó chọn “Update Driver Software”
Click “Next” Windown tự động cài đặt driver, qua trình cài đặt driver hoàn tất.
➢ Arduino IDE
Arduino IDE là nơi để soạn thảo code, kiểm tra lỗi và upload code cho arduino
Arduino Toolbar: có một số button và chức năng của chúng như sau :
Serial Monitor : Đây là màn hình hiển thị dữ liệu từ Arduino gửi lên máy tính
Arduino IDE Menu:
Sketch menu
Trong Tool menu ta quan tâm các mục Board và Serial Port
Mục Board : các bạn cần phải lựa chọn bo mạch cho phù hợp với loại bo mà bạn sử dụng nếu là
Arduino Uno thì phải chọn như hình:
Hiện nay trên thị trường có hàng trăm board mạch Arduino khác nhau, chúng đa phần là các biến thể
PCB (các board mạch điện) của những board mạch chính đến từ nhà sản xuất Arduino. Những board mạch
này hoặc có thêm 1 số tính năng cải tiến nào đó hoặc đơn giản là được thiết kế lại nhằm giảm giá thành sản
phẩm để có thể tới tay người dùng nhiều hơn. Chúng ta hãy cùng điểm qua 1 số board mạch Arduino chính
như bên dưới :
1. Arduino Uno R3
Đây là board mạch được đánh giá là tốt nhất cho những người mới bắt đầu về điện tử và lập trình. Nó được
sử dụng nhiều nhất trong các board mạch thuộc họ Arduino. Hình ảnh và các chức năng của board
Arduino Uno R3 :
Arduino Nano
Arduino Nano là một board mạch sử dụng chip ATmega328 (loại Arduino Nano 3.x) hoặc dùng
ATmega168 (Arduino Nano 2.x), tuy nhiên có kích thước nhỏ gọn hơn để có thể tích hợp vào các hệ
thống, đi kèm với đó là 1 vài điểm khác khi so sánh với board Arduino Uno R3 :
Arduino Leonardo
ARDUINO IOT VIETNAM- https://www.facebook.com/groups/486295328966960/ 16
Arduino Leonardo sử dụng vi điều khiển ATmega32u4, một số điểm khác biệt chính so với board
Arduino Uno được liệt kê bên dưới:
Bên trong chip ATmega32u4 được tích hợp 1 chip usb to serial thay vì phải dùng 2 mcu trên board.
Có thể giả lập board Leonardo như chuột, bàn phím, joystick thay vì phải dùng 1 thiết bị serial khác.
Chúng ta sẽ tìm hiểu tính năng này ở phần USB-serial.
12 chân Analog (các chân PWM có thể được dùng như Analog)
Arduino mega2560
Còn đây là Arduino Mega 2560 phiên bản hiện đang được sử dụng rộng rãi và ứng dụng nhiều hơn.
Với chip ATmega2560 có bộ nhớ flash memory 256 KB, 8KB cho bộ nhớ SRAM, 4 KB cho bộ nhớ
EEPROM. Giúp cho người dùng thêm khả năng viết những chương trình phức tạp và điều khiển các
thiết bị lớn hơn như máy in 3D, điều khiển robot.
Arduino Mega 2560 là một vi điều khiển hoạt động dựa trên chip ATmega2560. Bao gồm:
Cổng 0 0 1
Cổng 1 19 18
Cổng 2 17 16
Cổng 3 15 14
Đối với những ai quan tâm tới Matlab thì Arduino Mega 2560 cũng là một sự chọn lựa tuyệt vời. Vì
nó còn được tích hợp sẵn thư viện dành cho MatLab. Với viêc kết hợp giữa Matlab và Arduino là
một sự kết hợp thú vị. Ở đây chỉ giới thiệu cho các bạn ngoài ra các bạn có thể tìm hiểu thêm tại
Arduino Mega 2560 có thể sử dụng hầu hết các shiled dành cho các mạch Arduino Uno hay hoặc các
mạch trước đây như Duemilanove hay Diecimila với cách cài đặt và nối chân tương tự như Arduino
Uno.
Hiện nay có một số shiled hỗ trợ cho Arduino Mega rất nhiều như:
Chip xử lý ATmega2560
SRAM 8 KB
EEPROM 4 KB
Với sự tiện ích vô cùng lớn của Arduino Mega 2560, mạnh mẽ với bộ nhớ flash lớn, số chân
nhiều hơn và cùng số lượng shield hỗ trợ không hề nhỏ. Arduino Mega đã được đưa vào các dự
án lớn hơn như xử lý thông tin nhiều luồng, điều khiền nhiều động cơ, xe điều khiển từ xa,
LED cube hay còn mở rộng cánh cửa với thế giới IoT.
Khi bắt đầu sử dụng Arduino Mega 2560, bạn nên chú ý lựa chọn lại board. Bằng cách vào
Tool → Board → Arduino Mega 2560. Nhằm tránh trước đó bạn đã sử dụng loại Arduino khác
cổng vẫn còn nhận là board cũ nên khi build bạn sẽ gặp lỗi.
Khi sử dụng chân RX, TX cuả Arduino, các bạn nên nhớ tiêu thụ dây cắm tại 2 chân này ra rồi
hãy bắt đầu upload. Sau đó hãy cắm lại bình thường và sử dụng để tránh gặp phải lỗi.
Không được phép cắm trực tiếp chân GND vào chân nguồn 5V, có thể dẫn tới hỏng mạch.
Để bắt đầu với những dự án Wifi với Arduino các bạn cần ESP8266 với giá thành rẻ, và dễ
dàng sử dụng. Đặc biệt, ESP8266 có thể được lập trình bằng Arduino IDE. Trước khi bắt đầu
Chuẩn bị
1 x ESP8266 v1
Tiến hành
Sau khi down bản mới nhất của Arduino IDE, các bạn tiến hành cài đặt như bình thường và mở
chương trình
Để tiến hành cài đặt thư viện và chức năng nạp code cho IDE các bạn làm như sau:
Vào File→ Preferences, vào textbox Additional Board Manager URLs thêm đường link sau
vào http://arduino.esp8266.com/stable/package_esp8266com_index.json
đợi một lát để chương trình tìm kiếm. Ta kéo xuống và click vào ESP8266 by ESP8266
Community, click vào Install. Chờ phần mềm tự động download và cài đặt.
Chọn chế độ nạp Arduino as ISP. Vậy là ta đã có môi trường lập trình cho esp8266 rất thân thiện.
Sau khi kết nối UART vs ESP8266. các bạn có thể test code ESP8266 ở đây:
int pin = 2;
void setup() {
pinMode(pin, OUTPUT);
}
void loop() {
digitalWrite(pin, HIGH); //bật led
delay(1000); //dừng 1s
digitalWrite(pin, LOW); //tắt led
delay(1000); //dừng 1s
}
Introduction
Trong dự án này, bạn sẽ xây dựng một hệ thống đèn giao thông:
• Có 3 đèn LED với các màu khác nhau (xanh lá cây, vàng và đỏ) để mô phỏng đèn giao thông cho xe
ô tô
• Có 2 đèn LED với các màu khác nhau (xanh lá cây và đỏ) để mô phỏng đèn giao thông cho người đi
bộ
• Có một nút bấm để bắt chước những cái trong đèn giao thông dành cho người đi bộ
Parts Required
Grab all the needed components for this project.
1x Breadboard
Arduino UNO – read Best Arduino Starter Kits
3x 5mm LED (1x red, 1x yellow, 1x green)
ARDUINO IOT VIETNAM -https://www.facebook.com/groups/486295328966960/ 91
2x 3mm LED (1x red, 1x green)
5x 220Ohm Resistor
1x 10kOhm Resistor
1x pushbutton
Jumper Wires
Sử dụng đèn LED có kích cỡ khác nhau nhưng nếu bạn không có đèn LED có kích cỡ khác nhau
thì không sao. Dự án vẫn hoạt động.
Schematics
Code
Bạn không cần thư viện cho mã này. Mã rất đơn giản. Dưới đây, một số lời khuyên để hiểu rõ hơn về
những gì đang diễn ra.
• Đèn xe luôn sáng màu xanh lá cây, và vì vậy đèn dành cho người đi bộ luôn có màu đỏ trừ khi có ai
đó nhấn nút.
• Khi ai đó nhấn nút ở đây, điều gì xảy ra:
• Đèn xe chuyển sang màu vàng và sau đó chuyển sang màu đỏ
• Đèn dành cho người đi bộ chuyển sang màu xanh lá cây
Đèn ở trạng thái này trong một thời gian (trong mã lần này là biến đổi thời gian)
• Đèn xanh của người đi bộ nhấp nháy và chuyển sang màu đỏ
• Đèn xe chuyển từ đỏ sang xanh
Tất cả những hành động này sẽ nằm trong hàm ChangeLights (). Mỗi khi bạn muốn thay đổi đèn, bạn
chỉ cần gọi hàm changeLights ().
Sao chép mã sau vào Arduino IDE của bạn và tải nó lên bảng Arduino của bạn. Hãy chắc chắn rằng
bạn đã chọn đúng bảng và cổng COM.
int redCar = 13; int yellowCar = 12; int greenCar = 11; int greenPed = 2; int redPed = 3;
int button = 7;
int crossTime = 2000; unsigned long changeTime;
void setup() {
// initialize timer
changeTime = millis();
// here we are initializing our pins as outputs
pinMode(redCar, OUTPUT);
pinMode(yellowCar, OUTPUT);
pinMode(greenCar, OUTPUT);
pinMode(redPed, OUTPUT);
pinMode(greenPed, OUTPUT);
pinMode(button, INPUT);
//turn on the green light
digitalWrite(greenCar, HIGH);
digitalWrite(redPed, HIGH);
digitalWrite(redCar, LOW);
digitalWrite(yellowCar, LOW);
digitalWrite(greenPed, LOW);
Serial.begin(9600);
}
void loop() {
// this variable will tell us if the button is pressed
int state = digitalRead(button);
Serial.println(state);
// if the button is pressed and if it has passed 5 seconds since last button press
if (state == HIGH && (millis() - changeTime) > 5000) {
//call the function to change the lights
changeLights();
}
}
void changeLights() {
digitalWrite(greenCar, LOW); // the green LED will turn off
digitalWrite(yellowCar, HIGH); // the yellow LED will turn on for 2 second
delay(2000);
digitalWrite(yellowCar, LOW); // the yellow LED will turn off
digitalWrite(redCar, HIGH); // the red LED will turn on for 5 seconds
digitalWrite(redPed, LOW);
ARDUINO IOT VIETNAM -https://www.facebook.com/groups/486295328966960/ 93
digitalWrite(greenPed, HIGH);
delay(crossTime);
// flash the ped green
for (int x=0; x<10; x++) {
digitalWrite(greenPed, LOW);
delay(100);
digitalWrite(greenPed, HIGH);
delay(100);
}
digitalWrite(greenPed, LOW);
digitalWrite(redCar, LOW);
digitalWrite(redPed, HIGH);
digitalWrite(greenCar, HIGH);
changeTime = millis();
}
Demonstration
Khi bạn nhấn nút, đèn cho xe ô tô chuyển từ màu xanh sang màu đỏ và đèn dành cho người đi bộ
chuyển từ màu đỏ sang màu xanh lá cây.
Kết thúc
Nếu bạn bắt đầu với Arduino, một bài tập tốt là thay đổi giá trị của một số biến như crossTime và
changeTime và xem điều gì sẽ xảy ra.
Nếu bạn muốn một cái gì đó khó khăn hơn một chút, hãy thử bắt chước những gì xảy ra trong một ngã
ba, với một vài đèn chiếu sáng cho một vài chiếc xe hơi và người đi bộ.
12. Điều khiển led đơn qua giao tiếp serial giữa Arduino và PC .
Thư viện Serial được dùng trong việc giao tiếp giữa các board mạch với nhau (hoặc board mạch với
máy tính hoặc với các thiết bị khác). Tất cả các mạch Arduino đều có ít nhất 1 cổng Serial (hay còn
được gọi là UART hoặc USART). Giao tiếp Serial được thực hiện qua 2 cổng digital 0 (RX) và 1 (TX)
hoặc qua cổng USB tới máy tính. Vì vậy, nếu bạn đang sử dụng các hàm của thư viện Serial này, bạn
không thể sử dụng các chân digital 0 và digital 1 để làm việc khác được!
Bạn có thể sử dụng bảng Serial monitor có sẵn trong Arduino IDE để giao tiếp với Arduino qua giao
thức Serial. Kích vào biểu tượng Serial Monitor (hình kính lúp bên góc phải trên cùng ) hoặc nhấn tổ
hợp phím Ctrl+Shift+M để mở bảng Serial Monitor, sau đó bạn kích chuột vào bảng chọn như hình
dưới để chọn baudrate giống với baudrate được dùng trong quá trình lập trình của bạn. Mặc định là
9600.