Giới thiệu về ngôn ngữ lập trình cho Arduino

Một phần của tài liệu THIẾT KẾ HỆ THỐNG BÁO CHÁY TỰ ĐỘNG (Trang 81 - 84)

Có thể bạn đã quen lập trình trên PC, với những ngôn ngữ như C, C++, C#, Java, Python, Ruby…Nhưng bạn có biết là phần mềm trên PC chỉ chiếm khoảng 10% sản lượng phần mềm trên thị trường. 90% còn lại là code điều khiển tivi, máy giặt, điều hòa, tủ lạnh… tóm lại là tất cả các thiết bị điện tử xung quanh bạn. Đây cũng là một mảng theo tôi là khá thú vị. Lập trình theo hướng này được gọi là embedded computing, hay physical computing, tức là lập trình để con người tương tác với các thiết bị thực.

Để người thiết kế có thể nhanh chóng đưa ra được mẫu thể hiện ý tưởng của mình, rất cần phải có những platform để dễ dàng prototyping. Và một trong những platform đang được sử dụng rất nhiều trong prototyping là Arduino.

Arduino là một bo mạch 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ơ,… Điểm hấp dẫn ở Arduino với anh em lập trình là ngôn ngữ cực kì dễ học (giống C/C++), các ngoại vi trên bo mạch đều đã được chuẩn hóa, nên không cần biết nhiều về điện tử, chúng ta cũng có thể lập trình được những ứng dụng thú vị. Thêm nữa, vì Arduino là một platform đã được chuẩn hóa, nên đã có rất nhiều các bo mạch mở rộng (gọi là shield) để cắm chồng lên bo mạch Arduino, có thể hình dung nôm na là “library” của các ngôn ngữ lập trình. Ví dụ, muốn kết nối Internet thì có Ethernet shield, muốn điều khiển động cơ thì có Motor shield, muốn kết nối nhận tin nhắn thì có GSM shield,… Rất đơn giản, và ta chỉ phải tập trung vào việc “lắp ghép” các thành phần này và sáng tạo ra các ứng dụng cần thiết

Sau đây em xin giới thiệu tập lệnh của Arduino :

Cấu trúc

Setup() Loop() Cấu trúc điều khiển

If , if...else , switch / case , for , while , break , continue , return , goto . Cú pháp mở rộng

; (dấu chấm phẩy) , {} (dấu ngoặc nhọn) , // (single line comment) , /* */ (multi- line comment) , #define , #include .

Toán tử số học

= (phép gán) , + (phép cộng) , - (phép trừ) , * (phép nhân) , / (phép chia) , % (phép chia lấy dư) .

Toán tử so sánh

== (so sánh bằng) , != (khác bằng) , > (lớn hơn) , < (bé hơn) , >= (lớn hơn hoặc bằng) , <= (bé hơn hoặc bằng) .

Toán tử logic

&& (và) , || (hoặc) , ! (phủ định) , ^ (loại trừ) . Phép toán hợp nhất

++ (cộng thêm 1 đơn vị) , -- (trừ đi 1 đơn vị) , += (phép rút gọn của phép cộng) , -= (phép rút gọn của phép trừ) , *= (phép rút gọn của phép nhân) , /= (phép rút gọn của phép chia) .

Gía trị

Hằng số

HIGH | LOW , INPUT | INPUT_PULLUP | OUTPUT , LED_BUILTIN , true | false , hằng số nguyên (integer constants) , hằng số thực (floating point constants) .

unsigned long , short , float , double , array , string (chuỗi kí tự biểu diễn bằng array) , String (object) .

Chuyển đổi kiểu dữ liệu

Char() , byte() , int() , word() , long() , float() . Phạm vi của biến và phân loại

Phạm vi hiệu lực của biến

Static - biến tĩnh , const - biến hằng , volatile . Hàm hỗ trợ

Sizeof()

Hàm và Thủ tục

Nhập xuất Digital (Digital I/O)

PinMode() , digitalWrite() , digitalRead() . Nhập xuất Analog (Analog I/O)

AnalogReference() , analogRead() , analogWrite() - PWM - PPM . Hàm thời gian

Millis() , micros() , delay() , delayMicroseconds() . Hàm toán học

Min() , max() , abs() , map() , pow() , sqrt() , sq() , isnan() , constrain() ,exp(x) , frexp(x, , int *exp) , ldexp(x, int exp) , log(x) , log10(x) , modf(x, *i) , ceil(x) , floor(x) , atoi(a[]) .

Cos() , sin() , tan() , asin(x) , acos(x) , atan(x) , atan2(x, y) , cosh(x) , sinh(x) , tanh(x) .

Sinh số ngẫu nhiên

RandomSeed() , random() Nhập xuất nâng cao (Advanced I/O)

Tone() , noTone() , shiftOut() , shiftIn() , pulseIn() . Xử lý chuỗi

IsAscii() , isWhitespace() , isAlpha() , isAlphaNumeric() , isControl() , isDigit() , isGraph() , isLowerCase() , isPrintable() , isPunct() , isSpace() , isUpperCase() , isHexadecimalDigit() , tolower() , toupper()

Bits và Bytes

LowByte() , highByte() , bitRead() , bitWrite() , bitSet() , bitClear() , bit() . Ngắt (interrupt)

AttachInterrupt() , detachInterrupt() , interrupts() , noInterrupts() . Giao tiếp

Serial .

Một phần của tài liệu THIẾT KẾ HỆ THỐNG BÁO CHÁY TỰ ĐỘNG (Trang 81 - 84)

Tải bản đầy đủ (DOC)

(102 trang)
w