B19 – Đo khoảng cách bằng cảm biến siêu âm (Sonar SEN136B5B)

Cảm biến siêu âm SEN136B5B là sản phẩm của hãng Seeedstudio. Nó có khả năng đo khoảng cách của vật thể đặt phía trước trong khoảng từ 3cm đến 400cm. Nó phát ra một chuỗi xung âm thanh và đo âm phản hồi. Cảm biến này đơn giản, chỉ có 3 chân, 2 chân cấp nguồn và 1 chân tín hiệu. Trong ví dụ này, bo Arduino sẽ phát ra một xung ngắn và dò tín hiệu phản hồi. Quãng thời gian của xung phản hồi tương ứng với thời gian âm thanh đi và bật trở lại. Dựa trên thông tin về vận tốc âm thanh, ta sẽ tính được quãng đường.

 

Continue reading “B19 – Đo khoảng cách bằng cảm biến siêu âm (Sonar SEN136B5B)”

B18 – Sử dụng vòng lặp While

Đối với If..Else hoặc Switch..Case, khi điều kiện đúng thì hành động được thực hiện 1 lần. Trong khi đó, nếu dùng vòng lặp While, khi điều kiện đúng thì hành động mong muốn sẽ lặp lại mãi cho đến khi điều kiện của While không còn đúng nữa. Cần chú ý điều kiện của While để tránh chương trình rơi vào vòng lặp mà không thể thoát ra, hay còn gọi là treo.

Continue reading “B18 – Sử dụng vòng lặp While”

B14 – Sử dụng mảng (Array)

Tiếp theo bài B13 kết hợp vòng lặp for()  với mảng array. Mảng là một dạng của biến với nhiều thành phần. Có thể so sánh mảng như một khay đựng trứng.

Bằng cách sử dụng mảng để đựng giá trị của chân LED trong ví dụ này, từng chân LED có thể tác động riêng biệt thay vì theo thứ tự cố định như bài trước.

Continue reading “B14 – Sử dụng mảng (Array)”

B10 – Đọc và chuyển đổi giá trị từ cảm biến (Map function)

Đọc giá trị từ cảm biến, chuyển đổi sang vùng giá trị từ 0 đến 255 để phù hợp với bộ chỉnh độ rộng xung (PWM). Sau đó tăng giảm độ sáng tối của đèn LED bằng giá trị vừa nhận, đồng thời gửi giá trị về máy tính để hiển thị thông qua Arduino IDE.

Continue reading “B10 – Đọc và chuyển đổi giá trị từ cảm biến (Map function)”

B8 – Chương trình phát nhạc (Tone Melody)

Một chương trình giúp tạo ra các đoạn nhạc nhờ vào đoạn hàm có sẵn.  Ngoài việc sử dụng hàm tạo âm thanh tone( ) , ta sẽ học cách sử dụng thư viện ngoài. Đôi khi chương trình quá dài, người ta sẽ viết riêng một tập tin phụ rồi đặt ở thư viện ngoài. Khi cần sử dụng thì trong chương trình chính chỉ việc gọi tập tin đã có sẵn.

Continue reading “B8 – Chương trình phát nhạc (Tone Melody)”

B6 – Khử nhiễu khi nhấn nút (Debounce)

Trong quá trình làm việc với nút nhấn, trạng thái đọc được nhiều lúc bị lặp lại do tính chất cơ khí của nút nhấn. Vì trạng thái không dứt khoát dẫn đến chương trình có khả năng xử lý sai.

Để loại bỏ việc đọc sai trạng thái và loại nhiễu khi nhấn công tắc, ta có thể dùng hàm đếm thời gian để xử lý.

Continue reading “B6 – Khử nhiễu khi nhấn nút (Debounce)”

B4 – Nháy đèn không dùng hàm tạo trễ (Blink Without Delay)

Đôi khi ta cần chương trình chạy nhiều hoạt động cùng lúc, nếu dùng hàm delay( ) sẽ khiến chương trình bị ngắt trong giai đoạn hàm delay( ) hoạt động.

Do vậy ta cần một hàm đếm thời gian mà không sử dụng delay( ). Như vậy ta có thể chạy nhiều hoạt động đồng thời.

Trong bài này, ta dùng một hàm đếm thời gian đơn giản.

Continue reading “B4 – Nháy đèn không dùng hàm tạo trễ (Blink Without Delay)”