Cảm biến siêu âm SRF08 có độ chính xác cao hơn SEN136B5B nhưng phức tạp hơn. Để kết nối với bo Arduino, ta phải sử dụng chuẩn kết nối I2C chứ không phải chỉ dùng 1 dây như SEN136B5B.
Continue reading “B20 – Sử dụng cảm biến siêu âm SRF08 (I2C bus)”
"A person who never made a mistake never tried anything new." – Albert Einstein
Cảm biến siêu âm SRF08 có độ chính xác cao hơn SEN136B5B nhưng phức tạp hơn. Để kết nối với bo Arduino, ta phải sử dụng chuẩn kết nối I2C chứ không phải chỉ dùng 1 dây như SEN136B5B.
Continue reading “B20 – Sử dụng cảm biến siêu âm SRF08 (I2C bus)”
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)”
Đố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.
Trong bài này ta sẽ bật tắt đèn LED dựa trên dữ liệu nhận được từ máy tính. Chương trình đọc vào dữ liệu và bật đèn tương ứng với các ký tự a, b, c, d hoặc e
Trong bài trước, hàm if cho phép lựa chọn giữa hai điều kiện, Đúng hoặc Sai. Để làm việc với nhiều lựa chọn, ta có thể dùng nhiều hàm if..else liên kết hoặc sử dụng Switch. Hàm Switch cho phép lựa chọn giữa nhiều điều kiện độc lập.
Continue reading “B16 – Sử dụng cấu trúc điều khiển Switch…Case”
Hàm điều kiện if() là hàm cơ bản trong lập trình. Nó cho phép thực hiện hành động hay không tùy vào điều kiện đặt sẵn. Ví dụ:
if (điều kiện) { // thực hiện hành động (lệnh) khi điều kiện đúng }
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.
Vòng lặp for() rất hiệu quả khi cần thực hiện một loạt hoạt động kế tiếp nhau. Ví dụ bật tắt một chuỗi LED theo thứ tự từ chân 2 đến chân 7.
Trong ví dụ này, ta sẽ đọc liên tiếp các giá trị từ cảm biến rồi lấy trung bình. Điều này giúp giá trị đọc được có độ ổn định và chính xác hơn. Ngoài ra, ta sẽ học cách sử dụng mảng array để lưu biến dữ liệu.
Sử dụng phương thức điều chỉnh độ rộng xung PWM. Tuy nhiên, chương trình sẽ áp dụng vòng lặp for ( ). Không giống hàm điều kiện if .. else, khi điều kiện đúng thì các hành động trong vòng lặp for ( ) sẽ được thực hiện hết trước khi thoát ra ngoài.
Continue reading “B11 – Điều khiển đèn LED (Fading – For loop)”