SlideShare a Scribd company logo
1 of 26
LẬP TRÌNH
ARDUINO
Một chương trình trên Arduino cần
tối thiểu những gì?
Trong một chương trình Arduino,
bạn cần có tối thiểu 2 hàm hệ thống
chính, bắt buộc phải có, không có là
không được. Đó là setup() và loop()
ARDUINO
Một chương trình trên Arduino cần
tối thiểu những gì?
void setup()
{
// toàn bộ đoạn code nằm trong hàm này chỉ được chạy
duy nhất một lần khi chạy chương trình
}
ARDUINO
void loop()
{
// lặp lại mãi mãi sau khi chạy xong setup()
}
LED nhấp nháy
Nội dung chính cần nắm
- Tìm hiểu cách để điều khiển một con đèn led nhấp nháy.
Phần cứng
- Arduino UNO R3
- 01 Led
- 01 điện trở 220 ohm
Lắp mạch
- Cực âm Led => GND
- Cực dương Led => điện trở => DIGITAL 13
Lưu ý: Vì đèn Led sử dụng
dòng thấp (<40mA) nên ta
có thể kết nối trực tiếp lên
mạch Arduino
LED nhấp nháy
Mã lập trình và giải thích
Trước tiên, cứ mỗi khi dùng một con LED, chúng ta phải
pinMode OUTPUT chân Digital mà ta sử dụng cho con đèn
LED. Trong ví dụ ngày hôm nay, chúng ta sử dụng chân
LED là chân digital 13. Nên đoạn code sau cần nằm trong
void setup()
void setup()
{
pinMode (13, OUTPUT);
}
LED nhấp nháy
Mã lập trình và giải thích
Để bật một con đèn LED, bạn phải digitalWrite HIGH cho
chân số 13 (chân Digtal được kết nối với con LED). Đoạn
code này nằm trong void loop()
void loop()
{
digitalWrite (13, HIGH);
}
Dòng lệnh trên sẽ cấp một điện thế là 5V vào chân số
Digital 13. Điện thế sẽ đi qua điện trở 220ohm rồi đến đèn
LED. Để tắt một đèn LED, bạn sử dụng hàm LOW.
digitalWrite (13, LOW);
LED nhấp nháy
Mã lập trình và giải thích
Lúc này điện thế tại chân 13 sẽ là 0 V => đèn LED tắt. Và
để thấy được trạng thái bật và tắt của đèn LED bạn phải
dừng chương trình trong một khoảng thời gian đủ lâu để
mắt cảm nhận được. Vì vậy, hàm delay được tạo ra để làm
việc này (Dừng hẳn chương trình bao nhiêu mili giây)!
void loop()
{
digitalWrite (13, HIGH); //bật đèn LED
delay(1000); //Dừng chương trình trong 1s
digitalWrite (13, LOW); // tắt đèn LED
delay(1000); //Dừng chương trình trong 1s
}
Biến (variables)
Nội dung chính cần nắm
- Tìm hiểu cách khai báo biến, cá nhân hóa dòng lệnh.
void setup()
{
pinMode (13, OUTPUT);
}
void loop()
{
digitalWrite (13, HIGH); //bật đèn LED
delay(1000); //Dừng chương trình trong 1s
digitalWrite (13, LOW); // tắt đèn LED
delay(1000); //Dừng chương trình trong 1s
}
Biến (variables)
Mã lập trình và giải thích
- Theo cách lập trình ta thấy mỗi lần sử dụng chân
DIGITAL 13 ta phải gọi số 13. Để cá nhân hóa dòng lệnh
và dễ hiểu ta khai báo một biến thay thế cho số 13.
- Cấu trúc khai báo biến:
[kiểu dữ liệu] [TenBien];
int led; //khai báo biến tên là led
led = 13; //gán giá trị 13 cho biến led
int led = 13; //khai báo biến led và gán giá trị 13
- Khai báo biến tên led kiểu số nguyên và gán giá trị là 13
cho biến led
- Viết rút gọn:
Lưu ý: Tên biến phân biệt chữ hoa, thường. Không dấu,
không khoảng trắng.
Biến (variables)
Các kiểu dữ liệu
- boolean: chỉ nhận một trong hai giá trị true hoặc false
- char: kiểu dữ liệu biểu diễn cho 1 KÝ TỰ
- byte: biểu diễn số nguyên từ 0 đến 255
- int: biểu diễn số nguyên từ -32,768 đến 32,767
- long: biểu diễn số nguyên từ -2,147,483,648 đến
2,147,483,647
- float: biểu diễn số thực từ -3.4028235E+38 đến
3.4028235E+38
- string: biểu diễn kiểu chuỗi ký tự
boolean TrangThai = true;
char KyTu =“A”;
byte A = 255;
int led = 13;
long B = -2147483648;
float C = 3.14;
string D = “Nha Thieu Nhi”;
Biến (variables)
int DenLed = 13; //Khai báo biến DenLed và gán = 13
void setup()
{
pinMode (DenLed, OUTPUT); //thay vì gọi 13 ta gọi
biến DenLed
}
void loop()
{
digitalWrite (DenLed, HIGH); //bật đèn LED
delay(1000); //Dừng chương trình trong 1s
digitalWrite (DenLed, LOW); // tắt đèn LED
delay(1000); //Dừng chương trình trong 1s
}
Hàm (function)
Nội dung chính cần nắm
- Tìm hiểu cách để viết hàm điều khiển riêng, cá nhân hóa
dòng lệnh, rút gọn dòng lệnh.
int DenLed = 13; //Khai báo biến DenLed và gán = 13
void setup()
{
pinMode (DenLed, OUTPUT); //khai báo sử dụng chân 13 kiểu
OUTPUT
}
void loop()
{
digitalWrite (DenLed, HIGH); //bật đèn LED
delay(1000); //Dừng chương trình trong 1s
digitalWrite (DenLed, LOW); // tắt đèn LED
delay(1000); //Dừng chương trình trong 1s
}
Hàm (function)
Mã lập trình và giải thích
- Theo cách lập trình ta thấy mỗi lần muốn điều khiển đèn
Led tắt mở ta phải nhập vào 4 câu lệnh. Để rút gọn và dễ
thao tác ta có thể tách riêng 4 câu lệnh điều khiển Led ra
thành một hàm riêng.
- Cấu trúc hàm không trả về giá trị:
void TenHam()
{
các câu lệnh thực hiện;
}
Lưu ý: Tên hàm phân biệt chữ hoa, thường. Không dấu,
không khoảng trắng.
Hàm (function)
Mã lập trình và giải thích
- Ta sẽ tách 4 dòng lệnh tắt mở đèn led ra thành một hàm
riêng có tên là TatMoLed
void TatMoLed() //hàm không trả về giá trị
{
digitalWrite (DenLed, HIGH); //bật đèn LED
delay(1000); //Dừng chương trình trong 1s
digitalWrite (DenLed, LOW); // tắt đèn LED
delay(1000); //Dừng chương trình trong 1s
}
- Mỗi lần tắt mở Led ta chỉ cần gọi hàm TatMoLed()
void loop ()
{
TatMoLed();
}
Hàm (function)
Mã lập trình và giải thích
int DenLed = 13; //Khai báo biến DenLed và gán = 13
void setup()
{
pinMode (DenLed, OUTPUT); //khai báo sử dụng chân 13 kiểu OUTPUT
}
void loop()
{
TatMoLed();
}
void TatMoLed() //khai báo hàm tên TatMoLed không trả về giá trị
{
digitalWrite (DenLed, HIGH); //bật đèn LED
delay(1000); //Dừng chương trình trong 1s
digitalWrite (DenLed, LOW); // tắt đèn LED
delay(1000); //Dừng chương trình trong 1s
}
Độ sáng LED
Nội dung chính cần nắm
- Tìm hiểu cách sử dụng các chân digital để xuất giá trị
analog và ứng dụng chúng trong việc làm thay đổi độ
sáng của đèn.
Phần cứng
- Arduino UNO R3
- 01 Led
- 01 điện trở 220 ohm
Lắp mạch
- Cực âm Led => GND
- Cực dương Led => điện trở => DIGITAL ~6
Lưu ý: những chân digital có dấu ~ phía trước mới hỗ trợ
xung PWM (Pulse Width Modulation), bạn nhé!
Độ sáng LED
Mã lập trình và giải thích
- Hàm analogWrite(): là lệnh xuất ra từ một chân trên
mạch Arduino một mức tín hiệu analog (phát xung
PWM). Người ta thường điều khiển mức sáng tối của
đèn LED, tốc độ động cơ DC hay hướng quay của động
cơ servo bằng cách phát xung PWM như thế này.
analogWrite ([chân phát xung PWM], [giá trị xung PWM]);
- Giá trị mức xung PWM nằm trong khoảng từ 0 đến 255,
tương ứng với mức duty cycle từ 0% đến 100%.
Độ sáng LED
Mã lập trình và giải thích
int led = 6; //khai báo biến led và gán giá trị là 6
void setup()
{
pinMode(led, OUTPUT); //khai báo LED ở chân 6
}
void loop()
{
analogWrite (led, 127); //bật đèn LED ở mức 50%
delay(1000); //Dừng chương trình trong 1s
analogWrite (led, 255); // bật đèn LED ở mức 100%
delay(1000); //Dừng chương trình trong 1s
}
Độ sáng LED
Mã lập trình và giải thích
- Thay vì điều khiển độ sáng LED thì ta có thể điều khiển
tốc độ động cơ với cách lập trình tương tự.
- Điều khiển tốc độ động cơ chỉ sử dụng những chân
digital có dấu ~ phía trước
- Không được kết nối động cơ trực tiếp với mạch Arduino
mà phải kết nối thông qua mạch công suất động cơ.
Cảm biến
Nội dung chính cần nắm
- Tìm hiểu cách sử dụng các loại cảm biến để lấy giá trị
digital (hoặc analog) và ứng dụng chúng trong việc tắt
mở đèn LED...
Phần cứng
- Arduino UNO R3
- 01 Led
- 01 điện trở 220 ohm
- Cảm biến: vật cản, âm thanh, ánh sáng, độ ẩm, mưa...
Cảm biến
Lắp mạch
- Cực âm Led => GND
- Cực dương Led => điện trở => DIGITAL ~6
- Cảm biến
- VCC => cực dương 5v
- GND => cực âm 5v
- A0 => cổng Analog trên mạch Arduino => A0
- D0 => cổng Digital trên mạch Arduino => DIGITAL 2
Tín hiệu Digital: mang giá trị LOW hoặc HIGH
Tín hiệu Analog: mang giá trị từ 0 đến 1023
Cảm biến
Mã lập trình và giải thích
int led = 6; //khai báo biến led thay cho số PIN 6
int cambienA = A0; //chân Analog kết nối cảm biến
int cambienD = 2; //chân Digital kết nối cảm biến
void setup()
{
pinMode(led, OUTPUT);
pinMode(cambienA, INPUT);
pinMode(cambienD, INPUT);
}
Vì ta đọc dữ liệu từ cảm biến vào mạch Arduino
nên phải khai báo dạng INPUT
Cảm biến
Mã lập trình và giải thích
void loop()
{
if (digitalRead(cambienD) == HIGH) { //nếu có tín hiệu
digitalWrite (led, HIGH); //bật đèn LED
}
else { //không có tín hiệu => LOW
digitalWrite (led, LOW); //tắt đèn LED
}
if (analogRead(cambienA) <= 512) { //nếu giá trị <= 512
digitalWrite (led, HIGH); //bật đèn LED
}
else { //giá trị >512
digitalWrite (led, LOW); //tắt đèn LED
}
}
Cảm biến
Mã lập trình và giải thích
- Cấu trúc hàm if (điều kiện)
if ([biểu thức 1] [toán tử so sánh] [biểu thức 2])
{
các câu lệnh thực hiện khi điều kiện đúng;
}
else
{
các câu lệnh thực hiện khi điều kiện sai;
}
- Toán tử so sánh:
- Bằng: ==
- Không bằng: !=
- Nhỏ hơn: <
- Lớn hơn: >
- Nhỏ hơn hoặc bằng: <=
- Lớn hơn hoặc bằng >=
- Và: &&
- Hoặc: ||
Cảm biến
Mã lập trình và giải thích
if (digitalRead(cambienD) == HIGH)
{ //nếu điều kiện đúng => HIGH
digitalWrite (led, HIGH); //bật đèn LED
}
else
{ //điều kiện sai => LOW
digitalWrite (led, LOW); //tắt đèn LED
}
if (analogRead(cambienA) <= 512)
{ //nếu điều kiện đúng => giá trị <= 512
digitalWrite (led, HIGH); //bật đèn LED
}
else { //điều kiện sai => giá trị >512
digitalWrite (led, LOW); //tắt đèn LED
}
Độ sáng LED
Mã lập trình và giải thích
int dosang = 0; //khai báo biến quản lý độ sáng đèn LED
int giatri = 5;
void loop() {
analogWrite(led, dosang); //xuất giá trị độ sáng đèn LED
dosang = dosang + giatri; // thay đổi giá trị sáng lên 5
if (dosang == 0 || dosang == 255) {
giatri = -giatri ; //đảo ngược biến giá trị từ 5 thành -5
}
delay(30); //đợi 30 mili giây
}

More Related Content

Similar to Bai giang Lap trinh board Arduino aaaaaa

Thiết kế biển quảng cáo, biển vẫy
Thiết kế biển quảng cáo, biển vẫyThiết kế biển quảng cáo, biển vẫy
Thiết kế biển quảng cáo, biển vẫy
trungnb22
 
Giao trinh lap_trinh_adruino
Giao trinh lap_trinh_adruinoGiao trinh lap_trinh_adruino
Giao trinh lap_trinh_adruino
HuynNguyn352
 
Chách Ghép nối ADC 16bit với Arduino theo chuẩn I2C
Chách Ghép nối ADC 16bit với Arduino theo chuẩn I2CChách Ghép nối ADC 16bit với Arduino theo chuẩn I2C
Chách Ghép nối ADC 16bit với Arduino theo chuẩn I2C
VnhPhm18
 
BÁO CÁO ĐỒ ÁN MÔN HỌC MATRIX LED NHẬP TỪ BÀN PHÍM.pdf
BÁO CÁO ĐỒ ÁN MÔN HỌC MATRIX LED NHẬP TỪ BÀN PHÍM.pdfBÁO CÁO ĐỒ ÁN MÔN HỌC MATRIX LED NHẬP TỪ BÀN PHÍM.pdf
BÁO CÁO ĐỒ ÁN MÔN HỌC MATRIX LED NHẬP TỪ BÀN PHÍM.pdf
Man_Ebook
 
De cuong thiet bi ngoai vi
De cuong thiet bi ngoai viDe cuong thiet bi ngoai vi
De cuong thiet bi ngoai vi
ba191992
 

Similar to Bai giang Lap trinh board Arduino aaaaaa (20)

Chuong 2
Chuong 2Chuong 2
Chuong 2
 
Lập trình cỡ nhỏ - LOGO!
Lập trình cỡ nhỏ - LOGO!Lập trình cỡ nhỏ - LOGO!
Lập trình cỡ nhỏ - LOGO!
 
Thiết kế biển quảng cáo, biển vẫy
Thiết kế biển quảng cáo, biển vẫyThiết kế biển quảng cáo, biển vẫy
Thiết kế biển quảng cáo, biển vẫy
 
Giới thiệu chung về plc s7 1200
Giới thiệu chung về plc s7 1200Giới thiệu chung về plc s7 1200
Giới thiệu chung về plc s7 1200
 
Giao trinh lap_trinh_adruino
Giao trinh lap_trinh_adruinoGiao trinh lap_trinh_adruino
Giao trinh lap_trinh_adruino
 
Bài 1 ĐO LƯỜNG VÀ ĐIỀU KHIỂN VỚI ARDUINO V2.pdf
Bài 1 ĐO LƯỜNG VÀ ĐIỀU KHIỂN VỚI ARDUINO V2.pdfBài 1 ĐO LƯỜNG VÀ ĐIỀU KHIỂN VỚI ARDUINO V2.pdf
Bài 1 ĐO LƯỜNG VÀ ĐIỀU KHIỂN VỚI ARDUINO V2.pdf
 
Chách Ghép nối ADC 16bit với Arduino theo chuẩn I2C
Chách Ghép nối ADC 16bit với Arduino theo chuẩn I2CChách Ghép nối ADC 16bit với Arduino theo chuẩn I2C
Chách Ghép nối ADC 16bit với Arduino theo chuẩn I2C
 
Ic52
Ic52Ic52
Ic52
 
Ic52 dienhathe.vn
Ic52 dienhathe.vnIc52 dienhathe.vn
Ic52 dienhathe.vn
 
Ic52
Ic52Ic52
Ic52
 
Ic52
Ic52Ic52
Ic52
 
BÁO CÁO ĐỒ ÁN MÔN HỌC MATRIX LED NHẬP TỪ BÀN PHÍM.pdf
BÁO CÁO ĐỒ ÁN MÔN HỌC MATRIX LED NHẬP TỪ BÀN PHÍM.pdfBÁO CÁO ĐỒ ÁN MÔN HỌC MATRIX LED NHẬP TỪ BÀN PHÍM.pdf
BÁO CÁO ĐỒ ÁN MÔN HỌC MATRIX LED NHẬP TỪ BÀN PHÍM.pdf
 
Các chức năng chuyên dùng trên PLC S7- 200 - bộ môn tự động đo lường
Các chức năng chuyên dùng trên PLC S7- 200 - bộ môn tự động đo lườngCác chức năng chuyên dùng trên PLC S7- 200 - bộ môn tự động đo lường
Các chức năng chuyên dùng trên PLC S7- 200 - bộ môn tự động đo lường
 
Ls ic5-tieng viet
Ls ic5-tieng vietLs ic5-tieng viet
Ls ic5-tieng viet
 
CP1L_Chuong-2.pdf
CP1L_Chuong-2.pdfCP1L_Chuong-2.pdf
CP1L_Chuong-2.pdf
 
Cac lenh lap trinh ladder
Cac lenh lap trinh ladderCac lenh lap trinh ladder
Cac lenh lap trinh ladder
 
Đề tài: Đo tốc độ động cơ dùng 8051, HAY, 9đ
Đề tài: Đo tốc độ động cơ dùng 8051, HAY, 9đĐề tài: Đo tốc độ động cơ dùng 8051, HAY, 9đ
Đề tài: Đo tốc độ động cơ dùng 8051, HAY, 9đ
 
BAOCAOTHUCTAPCOBAN.docx
BAOCAOTHUCTAPCOBAN.docxBAOCAOTHUCTAPCOBAN.docx
BAOCAOTHUCTAPCOBAN.docx
 
Bien tan ls ic5 hungphu.com.vn
Bien tan ls ic5  hungphu.com.vnBien tan ls ic5  hungphu.com.vn
Bien tan ls ic5 hungphu.com.vn
 
De cuong thiet bi ngoai vi
De cuong thiet bi ngoai viDe cuong thiet bi ngoai vi
De cuong thiet bi ngoai vi
 

Recently uploaded

ĐỀ SỐ 1 Của sở giáo dục đào tạo tỉnh NA.pdf
ĐỀ SỐ 1 Của sở giáo dục đào tạo tỉnh NA.pdfĐỀ SỐ 1 Của sở giáo dục đào tạo tỉnh NA.pdf
ĐỀ SỐ 1 Của sở giáo dục đào tạo tỉnh NA.pdf
levanthu03031984
 

Recently uploaded (20)

Tiểu luận tổng quan về Mối quan hệ giữa chu kỳ kinh tế và đầu tư trong nền ki...
Tiểu luận tổng quan về Mối quan hệ giữa chu kỳ kinh tế và đầu tư trong nền ki...Tiểu luận tổng quan về Mối quan hệ giữa chu kỳ kinh tế và đầu tư trong nền ki...
Tiểu luận tổng quan về Mối quan hệ giữa chu kỳ kinh tế và đầu tư trong nền ki...
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
GIỮ GÌN VÀ PHÁT HUY GIÁ TRỊ MỘT SỐ BÀI HÁT DÂN CA CÁC DÂN TỘC BẢN ĐỊA CHO HỌC...
GIỮ GÌN VÀ PHÁT HUY GIÁ TRỊ MỘT SỐ BÀI HÁT DÂN CA CÁC DÂN TỘC BẢN ĐỊA CHO HỌC...GIỮ GÌN VÀ PHÁT HUY GIÁ TRỊ MỘT SỐ BÀI HÁT DÂN CA CÁC DÂN TỘC BẢN ĐỊA CHO HỌC...
GIỮ GÌN VÀ PHÁT HUY GIÁ TRỊ MỘT SỐ BÀI HÁT DÂN CA CÁC DÂN TỘC BẢN ĐỊA CHO HỌC...
 
Báo cáo tốt nghiệp Đánh giá thực trạng an toàn vệ sinh lao động và rủi ro lao...
Báo cáo tốt nghiệp Đánh giá thực trạng an toàn vệ sinh lao động và rủi ro lao...Báo cáo tốt nghiệp Đánh giá thực trạng an toàn vệ sinh lao động và rủi ro lao...
Báo cáo tốt nghiệp Đánh giá thực trạng an toàn vệ sinh lao động và rủi ro lao...
 
40 ĐỀ LUYỆN THI ĐÁNH GIÁ NĂNG LỰC ĐẠI HỌC QUỐC GIA HÀ NỘI NĂM 2024 (ĐỀ 21-30)...
40 ĐỀ LUYỆN THI ĐÁNH GIÁ NĂNG LỰC ĐẠI HỌC QUỐC GIA HÀ NỘI NĂM 2024 (ĐỀ 21-30)...40 ĐỀ LUYỆN THI ĐÁNH GIÁ NĂNG LỰC ĐẠI HỌC QUỐC GIA HÀ NỘI NĂM 2024 (ĐỀ 21-30)...
40 ĐỀ LUYỆN THI ĐÁNH GIÁ NĂNG LỰC ĐẠI HỌC QUỐC GIA HÀ NỘI NĂM 2024 (ĐỀ 21-30)...
 
Quản trị cơ sở Giáo dục nghề nghiệp
Quản trị cơ sở Giáo dục nghề nghiệpQuản trị cơ sở Giáo dục nghề nghiệp
Quản trị cơ sở Giáo dục nghề nghiệp
 
ĐỀ SỐ 1 Của sở giáo dục đào tạo tỉnh NA.pdf
ĐỀ SỐ 1 Của sở giáo dục đào tạo tỉnh NA.pdfĐỀ SỐ 1 Của sở giáo dục đào tạo tỉnh NA.pdf
ĐỀ SỐ 1 Của sở giáo dục đào tạo tỉnh NA.pdf
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT TOÁN 2024 - TỪ CÁC TRƯỜNG, TRƯỜNG...
TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT TOÁN 2024 - TỪ CÁC TRƯỜNG, TRƯỜNG...TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT TOÁN 2024 - TỪ CÁC TRƯỜNG, TRƯỜNG...
TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT TOÁN 2024 - TỪ CÁC TRƯỜNG, TRƯỜNG...
 
Luận văn 2024 Tuyển dụng nhân lực tại Công ty cổ phần in Hồng Hà
Luận văn 2024 Tuyển dụng nhân lực tại Công ty cổ phần in Hồng HàLuận văn 2024 Tuyển dụng nhân lực tại Công ty cổ phần in Hồng Hà
Luận văn 2024 Tuyển dụng nhân lực tại Công ty cổ phần in Hồng Hà
 
ĐỀ KIỂM TRA CUỐI KÌ 2 BIÊN SOẠN THEO ĐỊNH HƯỚNG ĐỀ BGD 2025 MÔN TOÁN 11 - CÁN...
ĐỀ KIỂM TRA CUỐI KÌ 2 BIÊN SOẠN THEO ĐỊNH HƯỚNG ĐỀ BGD 2025 MÔN TOÁN 11 - CÁN...ĐỀ KIỂM TRA CUỐI KÌ 2 BIÊN SOẠN THEO ĐỊNH HƯỚNG ĐỀ BGD 2025 MÔN TOÁN 11 - CÁN...
ĐỀ KIỂM TRA CUỐI KÌ 2 BIÊN SOẠN THEO ĐỊNH HƯỚNG ĐỀ BGD 2025 MÔN TOÁN 11 - CÁN...
 
[123doc] - ao-dai-truyen-thong-viet-nam-va-xuong-xam-trung-quoc-trong-nen-van...
[123doc] - ao-dai-truyen-thong-viet-nam-va-xuong-xam-trung-quoc-trong-nen-van...[123doc] - ao-dai-truyen-thong-viet-nam-va-xuong-xam-trung-quoc-trong-nen-van...
[123doc] - ao-dai-truyen-thong-viet-nam-va-xuong-xam-trung-quoc-trong-nen-van...
 
NGÂN HÀNG KĨ THUẬT SỐ-slide CHƯƠNG 1 B 1 2024.pptx
NGÂN HÀNG KĨ THUẬT SỐ-slide CHƯƠNG 1 B 1 2024.pptxNGÂN HÀNG KĨ THUẬT SỐ-slide CHƯƠNG 1 B 1 2024.pptx
NGÂN HÀNG KĨ THUẬT SỐ-slide CHƯƠNG 1 B 1 2024.pptx
 
Bài học phòng cháy chữa cháy - PCCC tại tòa nhà
Bài học phòng cháy chữa cháy - PCCC tại tòa nhàBài học phòng cháy chữa cháy - PCCC tại tòa nhà
Bài học phòng cháy chữa cháy - PCCC tại tòa nhà
 
TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT TIẾNG ANH 2024 - TỪ CÁC TRƯỜNG, ...
TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT TIẾNG ANH 2024 - TỪ CÁC TRƯỜNG, ...TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT TIẾNG ANH 2024 - TỪ CÁC TRƯỜNG, ...
TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT TIẾNG ANH 2024 - TỪ CÁC TRƯỜNG, ...
 
20 ĐỀ DỰ ĐOÁN - PHÁT TRIỂN ĐỀ MINH HỌA BGD KỲ THI TỐT NGHIỆP THPT NĂM 2024 MÔ...
20 ĐỀ DỰ ĐOÁN - PHÁT TRIỂN ĐỀ MINH HỌA BGD KỲ THI TỐT NGHIỆP THPT NĂM 2024 MÔ...20 ĐỀ DỰ ĐOÁN - PHÁT TRIỂN ĐỀ MINH HỌA BGD KỲ THI TỐT NGHIỆP THPT NĂM 2024 MÔ...
20 ĐỀ DỰ ĐOÁN - PHÁT TRIỂN ĐỀ MINH HỌA BGD KỲ THI TỐT NGHIỆP THPT NĂM 2024 MÔ...
 
Luận văn 2024 Tạo động lực lao động tại khối cơ quan Tập đoàn Viễn thông Quân...
Luận văn 2024 Tạo động lực lao động tại khối cơ quan Tập đoàn Viễn thông Quân...Luận văn 2024 Tạo động lực lao động tại khối cơ quan Tập đoàn Viễn thông Quân...
Luận văn 2024 Tạo động lực lao động tại khối cơ quan Tập đoàn Viễn thông Quân...
 
TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT HÓA HỌC 2024 - TỪ CÁC TRƯỜNG, TRƯ...
TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT HÓA HỌC 2024 - TỪ CÁC TRƯỜNG, TRƯ...TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT HÓA HỌC 2024 - TỪ CÁC TRƯỜNG, TRƯ...
TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT HÓA HỌC 2024 - TỪ CÁC TRƯỜNG, TRƯ...
 
Bài giảng chương 8: Phương trình vi phân cấp một và cấp hai
Bài giảng chương 8: Phương trình vi phân cấp một và cấp haiBài giảng chương 8: Phương trình vi phân cấp một và cấp hai
Bài giảng chương 8: Phương trình vi phân cấp một và cấp hai
 
Hoạt động truyền thông qua mạng xã hội của các công ty BHNT hàng đầu việt nam...
Hoạt động truyền thông qua mạng xã hội của các công ty BHNT hàng đầu việt nam...Hoạt động truyền thông qua mạng xã hội của các công ty BHNT hàng đầu việt nam...
Hoạt động truyền thông qua mạng xã hội của các công ty BHNT hàng đầu việt nam...
 

Bai giang Lap trinh board Arduino aaaaaa

  • 2. Một chương trình trên Arduino cần tối thiểu những gì? Trong một chương trình Arduino, bạn cần có tối thiểu 2 hàm hệ thống chính, bắt buộc phải có, không có là không được. Đó là setup() và loop() ARDUINO
  • 3. Một chương trình trên Arduino cần tối thiểu những gì? void setup() { // toàn bộ đoạn code nằm trong hàm này chỉ được chạy duy nhất một lần khi chạy chương trình } ARDUINO void loop() { // lặp lại mãi mãi sau khi chạy xong setup() }
  • 4. LED nhấp nháy Nội dung chính cần nắm - Tìm hiểu cách để điều khiển một con đèn led nhấp nháy. Phần cứng - Arduino UNO R3 - 01 Led - 01 điện trở 220 ohm Lắp mạch - Cực âm Led => GND - Cực dương Led => điện trở => DIGITAL 13 Lưu ý: Vì đèn Led sử dụng dòng thấp (<40mA) nên ta có thể kết nối trực tiếp lên mạch Arduino
  • 5. LED nhấp nháy Mã lập trình và giải thích Trước tiên, cứ mỗi khi dùng một con LED, chúng ta phải pinMode OUTPUT chân Digital mà ta sử dụng cho con đèn LED. Trong ví dụ ngày hôm nay, chúng ta sử dụng chân LED là chân digital 13. Nên đoạn code sau cần nằm trong void setup() void setup() { pinMode (13, OUTPUT); }
  • 6. LED nhấp nháy Mã lập trình và giải thích Để bật một con đèn LED, bạn phải digitalWrite HIGH cho chân số 13 (chân Digtal được kết nối với con LED). Đoạn code này nằm trong void loop() void loop() { digitalWrite (13, HIGH); } Dòng lệnh trên sẽ cấp một điện thế là 5V vào chân số Digital 13. Điện thế sẽ đi qua điện trở 220ohm rồi đến đèn LED. Để tắt một đèn LED, bạn sử dụng hàm LOW. digitalWrite (13, LOW);
  • 7. LED nhấp nháy Mã lập trình và giải thích Lúc này điện thế tại chân 13 sẽ là 0 V => đèn LED tắt. Và để thấy được trạng thái bật và tắt của đèn LED bạn phải dừng chương trình trong một khoảng thời gian đủ lâu để mắt cảm nhận được. Vì vậy, hàm delay được tạo ra để làm việc này (Dừng hẳn chương trình bao nhiêu mili giây)! void loop() { digitalWrite (13, HIGH); //bật đèn LED delay(1000); //Dừng chương trình trong 1s digitalWrite (13, LOW); // tắt đèn LED delay(1000); //Dừng chương trình trong 1s }
  • 8. Biến (variables) Nội dung chính cần nắm - Tìm hiểu cách khai báo biến, cá nhân hóa dòng lệnh. void setup() { pinMode (13, OUTPUT); } void loop() { digitalWrite (13, HIGH); //bật đèn LED delay(1000); //Dừng chương trình trong 1s digitalWrite (13, LOW); // tắt đèn LED delay(1000); //Dừng chương trình trong 1s }
  • 9. Biến (variables) Mã lập trình và giải thích - Theo cách lập trình ta thấy mỗi lần sử dụng chân DIGITAL 13 ta phải gọi số 13. Để cá nhân hóa dòng lệnh và dễ hiểu ta khai báo một biến thay thế cho số 13. - Cấu trúc khai báo biến: [kiểu dữ liệu] [TenBien]; int led; //khai báo biến tên là led led = 13; //gán giá trị 13 cho biến led int led = 13; //khai báo biến led và gán giá trị 13 - Khai báo biến tên led kiểu số nguyên và gán giá trị là 13 cho biến led - Viết rút gọn: Lưu ý: Tên biến phân biệt chữ hoa, thường. Không dấu, không khoảng trắng.
  • 10. Biến (variables) Các kiểu dữ liệu - boolean: chỉ nhận một trong hai giá trị true hoặc false - char: kiểu dữ liệu biểu diễn cho 1 KÝ TỰ - byte: biểu diễn số nguyên từ 0 đến 255 - int: biểu diễn số nguyên từ -32,768 đến 32,767 - long: biểu diễn số nguyên từ -2,147,483,648 đến 2,147,483,647 - float: biểu diễn số thực từ -3.4028235E+38 đến 3.4028235E+38 - string: biểu diễn kiểu chuỗi ký tự boolean TrangThai = true; char KyTu =“A”; byte A = 255; int led = 13; long B = -2147483648; float C = 3.14; string D = “Nha Thieu Nhi”;
  • 11. Biến (variables) int DenLed = 13; //Khai báo biến DenLed và gán = 13 void setup() { pinMode (DenLed, OUTPUT); //thay vì gọi 13 ta gọi biến DenLed } void loop() { digitalWrite (DenLed, HIGH); //bật đèn LED delay(1000); //Dừng chương trình trong 1s digitalWrite (DenLed, LOW); // tắt đèn LED delay(1000); //Dừng chương trình trong 1s }
  • 12. Hàm (function) Nội dung chính cần nắm - Tìm hiểu cách để viết hàm điều khiển riêng, cá nhân hóa dòng lệnh, rút gọn dòng lệnh. int DenLed = 13; //Khai báo biến DenLed và gán = 13 void setup() { pinMode (DenLed, OUTPUT); //khai báo sử dụng chân 13 kiểu OUTPUT } void loop() { digitalWrite (DenLed, HIGH); //bật đèn LED delay(1000); //Dừng chương trình trong 1s digitalWrite (DenLed, LOW); // tắt đèn LED delay(1000); //Dừng chương trình trong 1s }
  • 13. Hàm (function) Mã lập trình và giải thích - Theo cách lập trình ta thấy mỗi lần muốn điều khiển đèn Led tắt mở ta phải nhập vào 4 câu lệnh. Để rút gọn và dễ thao tác ta có thể tách riêng 4 câu lệnh điều khiển Led ra thành một hàm riêng. - Cấu trúc hàm không trả về giá trị: void TenHam() { các câu lệnh thực hiện; } Lưu ý: Tên hàm phân biệt chữ hoa, thường. Không dấu, không khoảng trắng.
  • 14. Hàm (function) Mã lập trình và giải thích - Ta sẽ tách 4 dòng lệnh tắt mở đèn led ra thành một hàm riêng có tên là TatMoLed void TatMoLed() //hàm không trả về giá trị { digitalWrite (DenLed, HIGH); //bật đèn LED delay(1000); //Dừng chương trình trong 1s digitalWrite (DenLed, LOW); // tắt đèn LED delay(1000); //Dừng chương trình trong 1s } - Mỗi lần tắt mở Led ta chỉ cần gọi hàm TatMoLed() void loop () { TatMoLed(); }
  • 15. Hàm (function) Mã lập trình và giải thích int DenLed = 13; //Khai báo biến DenLed và gán = 13 void setup() { pinMode (DenLed, OUTPUT); //khai báo sử dụng chân 13 kiểu OUTPUT } void loop() { TatMoLed(); } void TatMoLed() //khai báo hàm tên TatMoLed không trả về giá trị { digitalWrite (DenLed, HIGH); //bật đèn LED delay(1000); //Dừng chương trình trong 1s digitalWrite (DenLed, LOW); // tắt đèn LED delay(1000); //Dừng chương trình trong 1s }
  • 16. Độ sáng LED Nội dung chính cần nắm - Tìm hiểu cách sử dụng các chân digital để xuất giá trị analog và ứng dụng chúng trong việc làm thay đổi độ sáng của đèn. Phần cứng - Arduino UNO R3 - 01 Led - 01 điện trở 220 ohm Lắp mạch - Cực âm Led => GND - Cực dương Led => điện trở => DIGITAL ~6 Lưu ý: những chân digital có dấu ~ phía trước mới hỗ trợ xung PWM (Pulse Width Modulation), bạn nhé!
  • 17. Độ sáng LED Mã lập trình và giải thích - Hàm analogWrite(): là lệnh xuất ra từ một chân trên mạch Arduino một mức tín hiệu analog (phát xung PWM). Người ta thường điều khiển mức sáng tối của đèn LED, tốc độ động cơ DC hay hướng quay của động cơ servo bằng cách phát xung PWM như thế này. analogWrite ([chân phát xung PWM], [giá trị xung PWM]); - Giá trị mức xung PWM nằm trong khoảng từ 0 đến 255, tương ứng với mức duty cycle từ 0% đến 100%.
  • 18. Độ sáng LED Mã lập trình và giải thích int led = 6; //khai báo biến led và gán giá trị là 6 void setup() { pinMode(led, OUTPUT); //khai báo LED ở chân 6 } void loop() { analogWrite (led, 127); //bật đèn LED ở mức 50% delay(1000); //Dừng chương trình trong 1s analogWrite (led, 255); // bật đèn LED ở mức 100% delay(1000); //Dừng chương trình trong 1s }
  • 19. Độ sáng LED Mã lập trình và giải thích - Thay vì điều khiển độ sáng LED thì ta có thể điều khiển tốc độ động cơ với cách lập trình tương tự. - Điều khiển tốc độ động cơ chỉ sử dụng những chân digital có dấu ~ phía trước - Không được kết nối động cơ trực tiếp với mạch Arduino mà phải kết nối thông qua mạch công suất động cơ.
  • 20. Cảm biến Nội dung chính cần nắm - Tìm hiểu cách sử dụng các loại cảm biến để lấy giá trị digital (hoặc analog) và ứng dụng chúng trong việc tắt mở đèn LED... Phần cứng - Arduino UNO R3 - 01 Led - 01 điện trở 220 ohm - Cảm biến: vật cản, âm thanh, ánh sáng, độ ẩm, mưa...
  • 21. Cảm biến Lắp mạch - Cực âm Led => GND - Cực dương Led => điện trở => DIGITAL ~6 - Cảm biến - VCC => cực dương 5v - GND => cực âm 5v - A0 => cổng Analog trên mạch Arduino => A0 - D0 => cổng Digital trên mạch Arduino => DIGITAL 2 Tín hiệu Digital: mang giá trị LOW hoặc HIGH Tín hiệu Analog: mang giá trị từ 0 đến 1023
  • 22. Cảm biến Mã lập trình và giải thích int led = 6; //khai báo biến led thay cho số PIN 6 int cambienA = A0; //chân Analog kết nối cảm biến int cambienD = 2; //chân Digital kết nối cảm biến void setup() { pinMode(led, OUTPUT); pinMode(cambienA, INPUT); pinMode(cambienD, INPUT); } Vì ta đọc dữ liệu từ cảm biến vào mạch Arduino nên phải khai báo dạng INPUT
  • 23. Cảm biến Mã lập trình và giải thích void loop() { if (digitalRead(cambienD) == HIGH) { //nếu có tín hiệu digitalWrite (led, HIGH); //bật đèn LED } else { //không có tín hiệu => LOW digitalWrite (led, LOW); //tắt đèn LED } if (analogRead(cambienA) <= 512) { //nếu giá trị <= 512 digitalWrite (led, HIGH); //bật đèn LED } else { //giá trị >512 digitalWrite (led, LOW); //tắt đèn LED } }
  • 24. Cảm biến Mã lập trình và giải thích - Cấu trúc hàm if (điều kiện) if ([biểu thức 1] [toán tử so sánh] [biểu thức 2]) { các câu lệnh thực hiện khi điều kiện đúng; } else { các câu lệnh thực hiện khi điều kiện sai; } - Toán tử so sánh: - Bằng: == - Không bằng: != - Nhỏ hơn: < - Lớn hơn: > - Nhỏ hơn hoặc bằng: <= - Lớn hơn hoặc bằng >= - Và: && - Hoặc: ||
  • 25. Cảm biến Mã lập trình và giải thích if (digitalRead(cambienD) == HIGH) { //nếu điều kiện đúng => HIGH digitalWrite (led, HIGH); //bật đèn LED } else { //điều kiện sai => LOW digitalWrite (led, LOW); //tắt đèn LED } if (analogRead(cambienA) <= 512) { //nếu điều kiện đúng => giá trị <= 512 digitalWrite (led, HIGH); //bật đèn LED } else { //điều kiện sai => giá trị >512 digitalWrite (led, LOW); //tắt đèn LED }
  • 26. Độ sáng LED Mã lập trình và giải thích int dosang = 0; //khai báo biến quản lý độ sáng đèn LED int giatri = 5; void loop() { analogWrite(led, dosang); //xuất giá trị độ sáng đèn LED dosang = dosang + giatri; // thay đổi giá trị sáng lên 5 if (dosang == 0 || dosang == 255) { giatri = -giatri ; //đảo ngược biến giá trị từ 5 thành -5 } delay(30); //đợi 30 mili giây }

Editor's Notes

  1. xung PWM luôn thay đổi dựa theo một tần suất, nhưng luôn có độ rộng là âm hoặc dương khác nhau. Chính vì điều này, để giúp kiểm soát, điều khiển dòng điện tải ra là ổn định, để kiểm soát tốc độ động cơ, sản lượng nhiệt của thiết bị, tiết kiệm năng lượng và giúp thiết bị vận hành êm hơn, người ta luôn ứng dụng các kỹ thuật điều khiển để điều chế độ rộng xung PWM này.