Arduino cơ bản: Bài tập 2: Viết chương trình phát tín hiệu SOS bằng nhịp chớp LED (3 lần chớp ngắn - 3 lần chớp dài - 3 lần chớp ngắn) - A-Kinh nghiem hay

Arduino cơ bản: Bài tập 2: Viết chương trình phát tín hiệu SOS bằng nhịp chớp LED (3 lần chớp ngắn - 3 lần chớp dài - 3 lần chớp ngắn)

Hôm nay chúng ta sẽ đến với Bài Tập Thực Hành 2: Lập trình phát tín hiệu cấp cứu quốc tế SOS thông qua nhịp nhấp nháy của đèn LED. Bài tập này giúp rèn luyện tư duy chia nhỏ bài toán và sử dụng vòng lặp for để tối ưu hóa mã nguồn.





Để làm được việc này, cần kiểm tra đủ các linh kiện đã làm ở Bài 1 và bài lý thuyết

Trước khi bắt đầu, bạn cần chuẩn bị các linh kiện trong bảng sau:

Tên linh kiệnSố lượngGhi chú
Board Arduino Uno R301Kèm cáp USB kết nối máy tính
Đèn LED 5mm01Màu tùy chọn (Đỏ, Xanh, Vàng...)
Điện trở 220Ω01Vạch màu: Đỏ - Đỏ - Nâu
Testboard (Breadboard)01Dùng để cắm mạch không cần hàn
Dây nhảy (Jumper Wires)
Cáp USB nối máy tính
02
01
Loại dây Đực - Đực

Ghi chú: Các linh kiện này dùng lại được khi đổi dự án khác

Linh kiện thực hành

1. Phân Tích Mã Morse SOS

Tín hiệu SOS gồm 3 chữ cái: S (...) - O (---) - S (...).

Ký tự Morse Nhịp chớp LED Thời gian sáng (ON) Thời gian tắt (OFF)
S (3 Chớp ngắn) • • • 200ms 200ms
O (3 Chớp dài) — — — 600ms 200ms
S (3 Chớp ngắn) • • • 200ms 200ms
Nghỉ giữa 2 chu kỳ Tắt hoàn toàn 0ms 2000ms (2 giây)

2. Sơ Đồ Kết Nối Mạch (Hardware)

⚠️ Giữ nguyên mạch cắm bài 1:
  • Chân dài LED (Anode +) → Điện trở 220Ω → Chân Digital 13 Arduino.
  • Chân ngắn LED (Cathode -) → Chân GND Arduino.

3. Mã Nguồn Lập Trình (Source Code)

CÁCH 1: Lập trình tuần tự cơ bản

/*
  Bài Tập 2: Phát tín hiệu SOS (Cách 1 - Viết tuần tự)
*/

const int LED_PIN = 13;

void setup() {
  pinMode(LED_PIN, OUTPUT);
}

void loop() {
  // --- 3 CHỚP NGẮN (Chữ S) ---
  digitalWrite(LED_PIN, HIGH); delay(200);
  digitalWrite(LED_PIN, LOW);  delay(200);
  digitalWrite(LED_PIN, HIGH); delay(200);
  digitalWrite(LED_PIN, LOW);  delay(200);
  digitalWrite(LED_PIN, HIGH); delay(200);
  digitalWrite(LED_PIN, LOW);  delay(200);

  delay(300); // Khoảng nghỉ giữa các chữ cái

  // --- 3 CHỚP DÀI (Chữ O) ---
  digitalWrite(LED_PIN, HIGH); delay(600);
  digitalWrite(LED_PIN, LOW);  delay(200);
  digitalWrite(LED_PIN, HIGH); delay(600);
  digitalWrite(LED_PIN, LOW);  delay(200);
  digitalWrite(LED_PIN, HIGH); delay(600);
  digitalWrite(LED_PIN, LOW);  delay(200);

  delay(300); // Khoảng nghỉ giữa các chữ cái

  // --- 3 CHỚP NGẮN (Chữ S) ---
  digitalWrite(LED_PIN, HIGH); delay(200);
  digitalWrite(LED_PIN, LOW);  delay(200);
  digitalWrite(LED_PIN, HIGH); delay(200);
  digitalWrite(LED_PIN, LOW);  delay(200);
  digitalWrite(LED_PIN, HIGH); delay(200);
  digitalWrite(LED_PIN, LOW);  delay(200);

  // Tạm dừng 2 giây trước khi lặp lại SOS tiếp theo
  delay(2000);
}

CÁCH 2: Dùng vòng lặp for (Chuyên nghiệp & Ngắn gọn)

/*
  Bài Tập 2: Phát tín hiệu SOS (Cách 2 - Dùng vòng lặp for)
  Tác giả: Giáo viên ARDUINO
*/

const int LED_PIN = 13;

void setup() {
  pinMode(LED_PIN, OUTPUT);
}

void loop() {
  // 1. Phát 3 chớp ngắn (Chữ S)
  for (int i = 0; i < 3; i++) {
    digitalWrite(LED_PIN, HIGH);
    delay(200);
    digitalWrite(LED_PIN, LOW);
    delay(200);
  }

  delay(300); // Nghỉ giữa các chữ cái

  // 2. Phát 3 chớp dài (Chữ O)
  for (int i = 0; i < 3; i++) {
    digitalWrite(LED_PIN, HIGH);
    delay(600);
    digitalWrite(LED_PIN, LOW);
    delay(200);
  }

  delay(300); // Nghỉ giữa các chữ cái

  // 3. Phát 3 chớp ngắn (Chữ S)
  for (int i = 0; i < 3; i++) {
    digitalWrite(LED_PIN, HIGH);
    delay(200);
    digitalWrite(LED_PIN, LOW);
    delay(200);
  }

  // Nghỉ 2 giây kết thúc 1 chu kỳ SOS
  delay(2000);
}

4. Thách Thức Tư Duy Mở Rộng

🎓 Thử thách dành cho học sinh giỏi:

Thay vì viết đi viết lại hàm digitalWritedelay, bạn hãy tạo một hàm phụ void chieuS()void chieuO() hoặc một hàm chung void nhapNhay(int duration) để rút gọn chương trình chính hơn nữa nhé!

Chúc các bạn thực hành thành công! Nếu có thắc mắc, hãy gửi câu hỏi ở phần bình luận phía dưới.

🛒 BỘ LINH KIỆN THỰC HÀNH ARDUINO – BÀI 1

Đầy đủ linh kiện để bắt đầu Điều khiển LED bằng Arduino

Bạn muốn học Arduino theo phương pháp “học đến đâu – thực hành đến đó”?
Chúng tôi chuẩn bị sẵn bộ linh kiện cơ bản dành cho Bài thực hành số 1, giúp bạn bắt đầu ngay mà không phải mất thời gian tìm mua từng linh kiện riêng lẻ.
1
Arduino Uno Uno R3 / R4 – bộ điều khiển trung tâm của hệ thống.
2
LED Đèn LED dùng để thực hành bật / tắt bằng chương trình Arduino.
3
Điện trở 220Ω – 330Ω Giới hạn dòng điện và bảo vệ LED khi thực hành.
4
Breadboard Bảng mạch thử để lắp ráp mạch mà không cần hàn.
5
Dây Jumper 2 dây dùng để kết nối Arduino với các linh kiện trên breadboard.
6
Cáp USB Kết nối Arduino với máy tính, cấp nguồn và nạp chương trình.
💡 Phù hợp cho người mới bắt đầu: Bộ linh kiện được lựa chọn để thực hành Bài 1 và có thể tiếp tục sử dụng cho nhiều bài học Arduino và tự động hóa tiếp theo.

🚀 Sẵn sàng bắt đầu thực hành?

Đừng chỉ xem lý thuyết!
Hãy chuẩn bị linh kiện, mở Arduino IDE và tự tay tạo ra sản phẩm đầu tiên.

💬 ĐẶT BỘ LINH KIỆN QUA ZALO
✅ Bộ linh kiện thực hành ✅ Dễ sử dụng cho người mới ✅ Có thể dùng cho các bài tiếp theo

0 nhận xét Blogger 0 Facebook

 

 
A-Kinh nghiem hay ©Email: Inluon@gmail.com. Powered by >Template sưu tầm trên Internet
Link:|Fanpage||Website|Zalo|Telegram
Top
// //