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()
LẬP TRÌNH ARDUINO ARDUINO Một chương trình Arduino cần tối thiểu gì? Trong chương trình Arduino, bạn cần có tối thiểu hàm hệ thống chính, bắt buộc phải có, khơng có khơng Đó setup() loop() ARDUINO Một chương trình Arduino cần tối thiểu gì? void setup() { // tồn đoạn code nằm hàm chạy lần chạy chương trình } void loop() { // lặp lại mãi sau chạy xong setup() } LED nhấp nháy Nội dung cần nắm - Tìm hiểu cách để điều khiển đè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 ( đèn LED tắt Và để thấy trạng thái bật tắt đèn LED bạn phải dừng chương trình khoảng thời gian đủ lâu để mắt cảm nhận Vì vậy, hàm delay tạo để làm việc (Dừng hẳn chương trình mili giây)! void loop() { digitalWrite (13, HIGH); //bật đèn LED delay(1000); //Dừng chương trình 1s digitalWrite (13, LOW); // tắt đèn LED delay(1000); //Dừng chương trình 1s } Biến (variables) Nội dung 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 1s digitalWrite (13, LOW); // tắt đèn LED delay(1000); //Dừng chương trình 1s } Biến (variables) Mã lập trình giải thích - Theo cách lập trình ta thấy 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 dễ hiểu ta khai báo biến thay cho số 13 - Cấu trúc khai báo biến: [kiểu liệu] [TenBien]; - Khai báo biến tên led kiểu số nguyên gán giá trị 13 cho biến led int led; //khai báo biến tên led led = 13; //gán giá trị 13 cho biến led - Viết rút gọn: int led = 13; //khai báo biến led gán giá trị 13 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 liệu - boolean: nhận hai giá trị true false char: kiểu liệu biểu diễn cho KÝ TỰ byte: biểu diễn số nguyên từ đế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; float C = 3.14; char KyTu =“A”; string D = “Nha Thieu Nhi”; byte A = 255; int led = 13; long B = -2147483648; Độ sáng LED Mã lập trình giải thích - Thay điều khiển độ sáng LED ta điều khiển tốc độ động với cách lập trình tương tự - Điều khiển tốc độ động sử dụng chân digital có dấu ~ phía trước - Khơng kết nối động 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ảm biến Nội dung cần nắm - Tìm hiểu cách sử dụng loại cảm biến để lấy giá trị digital (hoặc analog) ứng dụng chúng 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 mạch Arduino => A0 D0 => cổng Digital mạch Arduino => DIGITAL Tín hiệu Digital: mang giá trị LOW HIGH Tín hiệu Analog: mang giá trị từ đến 1023 Cảm biến Mã lập trình giải thích int led = 6; //khai báo biến led thay cho số PIN 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 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 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) - Nhỏ bằng: = Và: && Hoặc: || Cảm biến Mã lập trình giải thích if (digitalRead(cambienD) == HIGH) { //nếu điều kiện => 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) giá trị giá trị >512 digitalWrite (led, LOW); //tắt đèn LED } Động DC Nội dung cần nắm - Tìm hiểu cách sử dụng điều khiển tốc độ động Phần cứng - Arduino UNO R3 01 mạch công suất động L298 02 động DC Động DC Lắp mạch - Nối động DC vào chân OUT A, B, C, D mạch công suất L298 Cấp nguồn dương 12v vào chân VCC, cực âm vào chân GND vào mạch công suất L298 Nối chân INA, INB, INC, IND tương ứng vào chân DIGITAL 2, 3, 4, mạch Arduino để điều khiển chiều quay động - Nối chân ENA, ENB tương ứng vào chân DIGITAL ~9, ~10 mạch Arduino để điều khiển tốc độ Động DC Mã lập trình giải thích int INA = 2; //khai báo chân quản lý chân INA - motor int INB = 3; //khai báo chân quản lý chân INB - motor int INC = 4; //khai báo chân quản lý chân INC - motor int IND = 5; //khai báo chân quản lý chân IND - motor int ENA = 9; //chân PWM điều khiển tốc độ motor int ENB = 10; //chân PWM điều khiển tốc độ motor void setup() { pinMode(INA, OUTPUT); pinMode(INB, OUTPUT); pinMode(INC, OUTPUT); pinMode(IND, OUTPUT); pinMode(ENA, OUTPUT); pinMode(ENB, OUTPUT); } Động DC Mã lập trình giải thích void Tien() { analogWrite(ENA, 127); //điều khiển tốc độ motor analogWrite(ENB, 127); //điều khiển tốc độ motor digitalWrite(INA, HIGH); //điều khiển chiều quay motor digitalWrite(INB, LOW); //điều khiển chiều quay motor digitalWrite(INC, HIGH); //điều khiển chiều quay motor digitalWrite(IND, LOW); //điều khiển chiều quay motor } Lưu ý: Giá trị tốc độ động từ đến 255 Động DC Mã lập trình giải thích void Lui() { analogWrite(ENA, 127); //điều khiển tốc độ motor analogWrite(ENB, 127); //điều khiển tốc độ motor digitalWrite(INA, LOW); //điều khiển chiều quay motor digitalWrite(INB, HIGH); //điều khiển chiều quay motor digitalWrite(INC, LOW); //điều khiển chiều quay motor digitalWrite(IND, HIGH); //điều khiển chiều quay motor } Lưu ý: Giá trị tốc độ động từ đến 255 Động DC Mã lập trình giải thích void Trai() { analogWrite(ENA, 0); //điều khiển tốc độ motor analogWrite(ENB, 255); //điều khiển tốc độ motor digitalWrite(INA, HIGH); //điều khiển chiều quay motor digitalWrite(INB, LOW); //điều khiển chiều quay motor digitalWrite(INC, HIGH); //điều khiển chiều quay motor digitalWrite(IND, LOW); //điều khiển chiều quay motor } Lưu ý: Giá trị tốc độ động từ đến 255 Động DC Mã lập trình giải thích void Phai() { analogWrite(ENA, 255); //điều khiển tốc độ motor analogWrite(ENB, 0); //điều khiển tốc độ motor digitalWrite(INA, HIGH); //điều khiển chiều quay motor digitalWrite(INB, LOW); //điều khiển chiều quay motor digitalWrite(INC, HIGH); //điều khiển chiều quay motor digitalWrite(IND, LOW); //điều khiển chiều quay motor } Lưu ý: Giá trị tốc độ động từ đến 255 Độ sáng LED Mã lập trình 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 if (dosang == || dosang == 255) { giatri = -giatri ; //đảo ngược biến giá trị từ thành -5 } delay(30); //đợi 30 mili giây } .. .ARDUINO Một chương trình Arduino cần tối thiểu gì? Trong chương trình Arduino, bạn cần có tối thiểu hàm hệ thống chính, bắt buộc phải có, khơng có khơng Đó setup() loop() ARDUINO Một chương trình. .. //Dừng chương trình 1s } Biến (variables) Mã lập trình giải thích - Theo cách lập trình ta thấy 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 dễ hiểu ta khai báo biến thay... digitalWrite (DenLed, LOW); // tắt đèn LED delay(1000); //Dừng chương trình 1s } Hàm (function) Mã lập trình giải thích - Theo cách lập trình ta thấy lần muốn điều khiển đèn Led tắt mở ta phải nhập vào