Tải bản đầy đủ (.pptx) (12 trang)

DAY 3 NHẬP môn lập TRÌNH ARDUINO

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (396.67 KB, 12 trang )

BÀI 3:
CÁC LỆNH LẬP TRÌNH CƠ BẢN TRONG ARDUINO


I. CẤU TRÚC
Toán tử số học

Toán tử so sánh

Toán tử logic

Phép toán hợp nhất

Phép cộng

+

Bằng

==



&&

Cộng thêm đơn vị

++

Phép trừ


-

Khác

!=

Hoặc

||

Trừ đi 1 đơn vị

--

Phép nhân

*

Lớn hơn



 

 

 

 


Phép chia

/

Bé hơn



 

 

 

 

Phép chia lấy


%

Lớn hơn hoặc bằng

>=

 

 

 


 

Phép gán

=

Bé hơn hoặc bằng

<=

 

 

 

 

+Cách chú thích trong khi lập trình:
Trong khi lập trình cần phải ghi chú để giải thích các biến, hằng, thao tác xử lý
giúp cho chương trình rõ ràng dễ hiểu, dễ nhớ, dễ sửa chữa và để người khác
đọc vào dễ hiểu. Trong C có các ghi chú sau: // hoặc /* nội dung ghi chú */
// dùng để ghi chú một hàng
/* …. */ có thể ghi chú một hàng hoặc nhiều hàng.


1.Câu lênh if…else
*Cú pháp:
if ([biểu thức 1] [toán tử so sánh] [biểu thức 2]) //biểu thức điều kiện

{
[câu lệnh 1];
}
else
{
[câu lệnh 2];

*ví dụ:
int a = 0;
if (a == 0)
{
a = 10;
}
else
{
a = 1;
}
// kết quả: a = 10

}

*lưu ý: Lệnh if không bắt buộc phải có nhóm lệnh nằm sau từ
khóa else


2.Câu lệnh switch/case
*Cú pháp:
switch (biểu thức)
{
case giá trị 1 : khối lệnh 1;


*Giải thích: Khi giá trị của biểu thức bằng giá trị i thì lệnh i sẽ
được thực hiện. Nếu sau lệnh i không có lệnh break thì tiếp tục
thực hiện các lệnh sau nó. Ngược lại thoát khỏi cấu trúc switch.
Nếu giá trị biểu thức không trùng với bất kỳ giá trị i nào thì lệnh
tương ứng với từ khóa default sẽ được thực hiện.

break;
case giá trị 2 : khối lệnh 2;

*Lưu ý:

break;

- Không đặt dấu chấm phẩy sau câu lệnh switch.



- Biểu thức phải là có kết quả làgiá trị nguyên (char, int, long,
…)

case giá trị n : khối lệnh n;
break;
default : khối lệnh;
[break;]
}

- Lệnh 1, 2…n có thể gồm nhiều lệnh, nhưng không cần đặt
trong cặp dấu { }



*Ví dụ:
switch(ithang)
{
case1:case2:case3 :printf("Quy 1.\n");
break;
case4:case5:case6:printf("Quy 2.\n");
break;
case7:case8:case9:printf("Quy 3.\n");
break;
case10:case11:case12:printf("Quy 4.\n");
break;
default:printf("Phai nhap vao so trong khoang 1..12\n");
}


II.KHAI BÁO:
1.Khai báo các hàm chuẩn
#include <[đường dẫn đến file chứa thư viện]>
Ý nghĩa: cho phép chương trình của bạn tải một thư viện đã được viết sẵn. Tức là bạn có thể truy xuất được những
tài nguyên trong thư viện này từ chương trình của mình. Nếu bạn có một đoạn code và cần sử dụng nó trong nhiều
chương trình, bạn có thể dùng #include để nạp đoạn code ấy vào chương trình của mình, thay vì phải chép đi chép
lại đoạn code ấy.
VD: Giả sử bạn có thư mục cài đặt Arduino IDE tên là ArduinoIDE, thư viện của bạn có tên là EEPROM (được lưu
ở \ArduinoIDE\libraries\EEPROM\)
Một đoạn code lưu ở file code.h nằm trong thư mục function của thư viện EEPROM thì được khai báo như sau:
#include <function/code.h> //đường dẫn đầy đủ: \ArduinoIDE\libraries\EEPROM\function\code.h


2.Khai báo hằng:


3.Khái báo biến:

#define [tên hằng] [giá trị của hằng]

*Cú pháp:

Ý nghĩa: cho phép bạn đặt tên cho một hằng số
nguyên hay hằng số thực. Trước khi biên dịch,
trình biên dịch sẽ thay thế những tên hằng bạn
đang sử dụng bằng chính giá trị của chúng và
giá trị của nó không thay đổi trong quá trình
tính toán.

<Kiểu dữ liệu> <Danh sách tên biến>;
Diễn giải:
- <Kiểu dữ liệu>: là kiểu dữ liệu muốn khai báo
cho biến
CHÚ Ý:

VD: #define PI 3.14

+int khai báo cho biến số nguyên

Lúc này, tất cả các tên PI trong chương
trình xuất hiện sau này đều được thay bằng
3.14. Vì vậy, ta thường gọi PI là tên hằng, nó
biểu diễn số 3.14.

+float khai báo cho biến số thực

- <Danh sách tên biến>: gồm các tên biến có cùng
kiểu dữ liệu, mỗi tên biến cách nhau dấu phẩy (,),
cuối cùng là dấu chấm phẩy (;).
VD:
+int Tuoi; //khai báo biến Tuoi có kiểu int
+float TrongLuong; //khai báo biến TrongLuong có
kiểu float


III.HÀM VÀ THỦ TỤC
1.Hàm toán học:
1.1.Hàm toán học min()
min(x, y);
x: số thứ nhất, mọi kiểu dữ liệu đều được chấp
nhận.

VD: Điều khiển đèn LED sáng nhấp nháy theo yêu cầu
bằng arduino uno R3.
void setup()
{

y: số thứ hai, mọi kiểu dữ liệu đều được chấp nhận.
*Ý nghĩa:Trả về số nhỏ nhất trong 2 số. Hàm min
được dùng để lấy chặn trên (không để giá trị vượt
quá một mức quy định nào đó).
VD: min(a, 100);

pinMode(13, OUTPUT);
}
void loop()

{
digitalWrite(13, HIGH); // turn the LED on

1.2.Hàm toán học delay()

delay(1000);

delay(ms)

digitalWrite(13, LOW);

ms: thời gian ở mức mili giây.
*Ý nghĩa: delay có nhiệm vụ dừng chương trình
trong thời gian mili giây. Và cữ mỗi 1000 mili giây
= 1 giây.

// led sáng trong vòng 1 giây.

delay(1000);
}

// turn the LED off

// led tắt trong vòng 1 giây.


2. Hàm nhập xuất
2. 1.Hàm nhập xuất analogWrite():

2.2. Hàm nhập xuất analogRead():


analogWrite([chân phát xung PWM], [giá trị xung
PWM])

analogRead(chân đọc điện áp);

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%
*Ý nghĩa: 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. Bạn không cần gọi hàm
pinMode() để đặt chế độ OUTPUT cho chân sẽ dùng để phát
xung PWM trên mạch Arduino.

* Ví dụ: int voltage = analogRead(A0);

*Ví Dụ:
int led = 10;
void setup() { }
void loop() {
for (int i = 0; i <= 255; i++)
analogWrite(led,i);
delay(20);
}
}
Đoạn code trên có chức năng làm sáng dần một đèn LED
được kết nối vào chân số 10 trên mạch Arduino.

*Ý nghĩa: Là đọc giá trị điện áp từ một chân
Analog . Trên mạch Arduino UNO có 6 chân

Analog In, được kí hiệu từ A0 đến A5. Trên các
mạch khác cũng có những chân tương tự như vậy
với tên chữ "A" đứng đầu, sau đó là số hiệu của
chân. analogRead() luôn trả về 1 số nguyên nằm
trong khoảng từ 0 đến 1023 tương ứng với thang
điện áp (mặc định) từ 0 đến 5V.

{


2.3. Lệnh pinMode():

pinMode ( pin, mode)
+pin : Số của chân digital mà bạn
muốn thiết đặt
+mode : có thể là INPUT hoặc
OUTPUT

void setup()
{
pinMode(ledPin, OUTPUT); // thiết đặt chân ledPin là
OUTPUT
}

* Ý nghĩa: Cấu hình một pin (chân) quy
định hoạt động như là một đầu vào
(INPUT) hoặc đầu ra (OUTPUT).

void loop()


*Ví dụ:

digitalWrite(ledPin, HIGH); // bật đèn led

int ledPin = 13;
//điều khiển đèn
LED chân số 13 của arduino

delay(5000);

{
// dừng trong 5 giây

digitalWrite(ledPin, LOW);
delay(5000);
}

// tắt đèn led

// dừng trong 5 giây


2.4. Lệnh digitalWrite():

digitalWrite(pin,value)
+pin: Số của chân digital mà bạn muốn thiết
đặt

*Ví dụ:
int ledPin = 13;


// đèn LED được kết nối với chân digital 12

void setup()

+value: HIGH hoặc LOW

{

*ý nghĩa: Xuất tín hiệu ra các chân digital, có
2 giá trị là HIGH hoặc là LOW Nếu một pin
được thiết đặt là OUTPUT bởi pinMode(). Và
bạn dùng digitalWrite để xuất tín hiệu thì điện
thế tại chân này sẽ là 5V (hoặc là 3,3 V trên
mạch 3,3 V) nếu được xuất tín hiệu là HIGH,
và 0V nếu được xuất tín hiệu là LOW.

pinMode(ledPin, OUTPUT);
OUTPUT

// thiết đặt chân ledPin là

}
void loop()
{
digitalWrite(ledPin, HIGH); // bật đèn led
delay(1000); // dừng trong 1 giây
digitalWrite(ledPin, LOW);
delay(1000);
}


// tắt đèn led

// dừng trong 1 giây


2.5. Lệnh digitalRead():

digitalRead(pin)

void setup()

+pin (chân) : giá trị của digital muốn đọc

{

+Trả về giá trị: HIGH hoặc LOW

pinMode(ledPin, OUTPUT);
13 là output

*Ví dụ: Ví dụ này sẽ làm cho đèn led tại pin 13 nhận
giá trị như giá trị tại pin 2
int ledPin = 13; // chân led 13

pinMode(inPin, INPUT);
input

int inPin = 2; // button tại chân 2


}

int val = 0;
digitalRead

void loop()

// biến "val" dùng để lưu tín hiệu từ

// đặt pin digital
// đặt pin digital 2 là

{
val = digitalRead(inPin); // đọc tín hiệu từ
digital2
digitalWrite(ledPin, val); // thay đổi giá trị của
đèn LED là giá trị của digital 2
}



×