You are on page 1of 7

2.3.

Ngn ng lp trnh C cho arduino

Chng trnh Arduino c th c chia lm 3 phn: cu trc (structure), bin s


(variable) v hng s (constant), hm v th tc (function). Chuyn mc ny s
gip bn tm hiu v 3 phn ny qua s din gii cc khi nim v m t cc hm
thao tc/th tc.

2.3.1. Cc ton t

2.3.1.1. Cc ton t logic (Boolean operators)

Ton t ngha V d

(a && b) tr v TRUE nu a v b u mang


and (&&) V gi tr TRUE. Nu mt trong a hoc b l
FALSE th (a && b) tr v FALSE

(a || b) tr v TRUE nu c t nht 1 trong 2


or ( || ) Hoc gi tr a v b l TRUE, tr v FALSE nu a v
b u FALSE

nu a mang gi tr TRUE th (!a) l FALSE v


not ( ! ) Ph nh
ngc li

(a ^ b) tr v TRUE nu a v b mang hai gi


xor (^) Loi tr tr TRUE/FALSE khc nhau, cc trng hp
cn li tr v FALSE

2.3.1.2. Cc ton t so snh (Comparison operators)

Cc ton t so snh thng dng so snh 2 s c cng mt kiu d liu.


Ton t ngha V d

== So snh bng (a == b) tr v TRUE nu a bng b v ngc li

So snh khng
!= (a != b) tr v TRUE nu a khc b v ngc li
bng

(a > b) tr v TRUE nu a ln hn b v FALSE nu


> So snh ln
a b hn hoc bng b

(a < b) tr v TRUE nu a b hn b v FALSE nu


< So snh b
ngc li

B hn hoc
<= (a <= b) tng ng vi ((a < b) or (a = b))
bng

Ln hn hoc
>= (a >= b) tng ng vi ((a > b) or (a = b))
bng

2.3.2. Cu trc d liu

String : Trong mt chng trnh Arduino c 2 cch nh ngha chui, cch th


nht l s dng mng k t biu din chui. Bi vit ny xin m t chi tit v
cch th nht.

Array: l mng (tp hp cc gi tr c lin quan v c nh du bng nhng ch


s). Array c dng trn Arduino chnh l Array trong ngn ng lp trnh C.
Double: Ging ht nh ki Nhng trn mch Arduino Due th kiu double li chim
n 8 byte b nh (64 bit). V vy hy cn thn khi s dng kiu d liu ny.

Float: nh ngha 1 kiu s thc, bn c th s dng kiu d liu float. Mt


bin dng kiu d liu ny c th t mt gi tr nm trong khong
-3.4028235E+38 n 3.4028235E+38. N chim 4 byte b nh.

Short: Ging ht kiu int, tuy nhin c iu trn mi mch Arduino n u chim
4 byte b nh v biu th gi tr trong khonf -32,768 n 32,767 (-215 n 215-1)
(16 bit).

Unsigned long: Kiu unsigned long l kiu s nguyn nm trong khong t 0 n


4,294,967,295 (0 n 232 - 1). Mi bin mang kiu d liu ny chim 4 byte b
nh.

2.3.3. Cc php ton

Ton t s hc

= (php gn)

+ (php cng)

- (php tr)

* (php nhn)

/ (php chia)

% (php chia ly d)

Ton t so snh

== (so snh bng)

!= (khc bng)
> (ln hn)

< (b hn)

>= (ln hn hoc bng)

<= (b hn hoc bng)

Ton t logic

&& (v)

|| (hoc)

! (ph nh)

^ (loi tr)

Php ton hp nht

++ (cng thm 1 n v)

-- (tr i 1 n v)

+= (php rt gn ca php cng)

-= (php rt gn ca php tr)

*= (php rt gn ca php nhn)

/= (php rt gn ca php chia)

2.3.4. Hm v th tc

Nhp xut Digital (Digital I/O)

pinMode()

digitalWrite()
digitalRead()

Nhp xut Analog (Analog I/O)

analogReference()

analogRead()

analogWrite() - PWM - PPM

Hm thi gian

millis()

micros()

delay()

delayMicroseconds()

Hm ton hc

min() exp(x) Hm lng gic

max() frexp(x, int *exp) cos()

abs() ldexp(x, int exp) sin()

map() log(x) tan()

pow() log10(x) asin(x)

sqrt() modf(x, *i) acos(x)

sq() ceil(x) atan(x)

isnan() floor(x) atan2(x, y)

constrain() atoi(a[]) cosh(x)


sinh(x) isAlpha() lowByte()

tanh(x) isAlphaNumeric() highByte()

Sinh s ngu nhin isControl() bitRead()

randomSeed() isDigit() bitWrite()

random() isGraph() bitSet()

Nhp xut nng isLowerCase() bitClear()


cao (Advanced I/O)
isPrintable() bit()
tone()
isPunct() Ngt (interrupt)
noTone()
isSpace() attachInterrupt()
shiftOut()
isUpperCase() detachInterrupt()
shiftIn()
isHexadecimalDigit interrupts()
pulseIn() ()
noInterrupts()
X l chui tolower()
Giao tip
isAscii() toupper()
Serial
isWhitespace() Bits v Bytes

You might also like