B32 – Điều khiển thiết bị qua Internet với Blynk

Chúng ta đã có những dự án điều khiển thiết bị bằng điện thoại di động với kết nối Wifi hoặc Bluetooth. Tuy nhiên, chúng cần hoạt động trong cùng một mạng dẫn đến khoảng cách bị giới hạn. Trong bài này chúng ta sẽ thực hiện điều khiển thiết bị qua Internet với Blynk. Bằng cách này, chúng ta có thể điều khiển bất kỳ thiết bị nào, tại bất kỳ đâu miễn sao có kết nối đến Internet.

Continue reading “B32 – Điều khiển thiết bị qua Internet với Blynk”

B30 – Sử dụng Servo

Servo được sử dụng khá nhiều trong các hệ thống làm nhiệm vụ điều khiển vị trí hoặc góc quay của thiết bị. Servo thực chất là một động cơ DC với hệ thống bánh răng đặc biệt giúp nó có thể được điều khiển chính xác góc quay. Trong bài này chúng ta làm quen với việc sử dụng Servo.

Continue reading “B30 – Sử dụng Servo”

B29 – Kết nối, kiểm tra và sử dụng OLED 1,3 inch

Màn hình LCD loại 16×2 hoặc tương tự có giới hạn về kích thước và hình ảnh, ký tự có thể hiển thị. Màn hình OLED mới có giá thành không cao, đồng thời có thể hiển thị cả ký tự cũng như hình ảnh đặc biệt. Trong bài này, chúng ta sẽ thử kiểm tra và sử dụng OLED 1,3 inch phổ thông.

Continue reading “B29 – Kết nối, kiểm tra và sử dụng OLED 1,3 inch”

B28 – Rút gọn chân LCD với PCF8574

LCD là một thiết bị được sử dụng khá phổ biến để hiển thị thông tin. Khác với LED 7 đoạn hay ma trận điểm. LCD cho phép hiển thị một dải rộng các kiểu ký tự và số lượng ký tự cũng nhiều hơn. Thông thường nhất là loại LCD 16×2. Tuy nhiên, kết nối đến LCD thường đòi hỏi số lượng chân khá nhiều. Điều này làm giảm khả năng sử dụng thiết bị khác. Trong bài này, ta sẽ kết nối rút gọn chân LCD với PCF8574 dùng chuẩn kết nối I2C.

Continue reading “B28 – Rút gọn chân LCD với PCF8574”

B27 – Sử dụng Arduino Pro mini

Khi mà Arduino Uno được biết đến như 1 mạch cơ bản để học và thử nghiệm thì Arduino còn cung cấp rất nhiều kiểu mạch khác. Trong đó có dòng Pro mini, nó sử dụng IC vi điều khiển giống như Uno nên được xem là tương thích. Điểm đặc biệt là Pro mini có kích thước nhỏ hơn và giá thành thấp hơn Uno. Trong bài này, ta sẽ tìm hiểu sử dụng Arduino Pro mini.

Continue reading “B27 – Sử dụng Arduino Pro mini”

B26 – Sử dụng K-thermocouple

Các cảm biến thông thường có giải đo hẹp. Sử dụng K-thermocouple cho phép đo nhiệt độ trong giải rộng hơn rất nhiều. Với IC hỗ trợ MAX6675, ta có thể đo nhiệt độ từ 0 đến 1000 độ C. Với K-thermocouple ta có thể làm mạch đo trong lò nướng, nồi hấp, lò bánh để theo dõi và kiểm soát nhiệt độ.

Continue reading “B26 – Sử dụng K-thermocouple”

B24 – Kiểm tra và thử nghiệm thẻ RFID

RFID (viết tắt thuật ngữ tiếng Anh: Radio Frequency Identification), hay Nhận dạng qua tần số vô tuyến, là một công nghệ dùng kết nối sóng vô tuyến để tự động xác định và theo dõi các thẻ nhận dạng gắn vào vật thể. Trong bày này ta sẽ sử dụng Arduino để kiểm tra và thử nghiệm thẻ RFID.

Continue reading “B24 – Kiểm tra và thử nghiệm thẻ RFID”

B23 – Kiểm tra và thử nghiệm ESP8266

Hiện nay, xu thế IoTs đang rất mạnh. Mạch ESP8266 cho phép kết nối vi xử lý với internet thông qua wifi. Với giá rẻ và dễ sử dụng, ESP8266 đang được sử dụng khá rộng rãi.

Trong bài này, ta sẽ kết nối với Arduino để kiểm tra kết nối thử wifi. Đồng thời, điều chỉnh tốc độ giao tiếp của mạch để tương thích với Arduino.

Continue reading “B23 – Kiểm tra và thử nghiệm ESP8266”

B21 – Sử dụng cảm biến chuyển động (PIR Motion sensor)

Cảm biến chuyển động PIR phát hiện ánh sáng hồng ngoại của người khi đứng trước đầu thu. Sử dụng cảm biến PIR khá đơn giản. Ngoài hai chân cấp nguồn (5V và GND) thì chỉ có 1 lối ra. Bình thường lối ra có trạng thái 0, điện áp 0V. Khi có người đứng trước cảm biến, lối ra lên trạng thái 1, điện áp khoảng 3V. Thời gian chân ra có trạng thái lên cao tùy thuộc từng loại PIR, khoảng vài giây.

Continue reading “B21 – Sử dụng cảm biến chuyển động (PIR Motion sensor)”

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)”

B1 – Sử dụng cổng vào/ra (Arduino Input/Output Basics)

Bước đầu tiên trong quá trình làm quen với Arduino là sử dụng các chân điều khiển tín hiệu vào/ra thông dụng. Trong bài này ta sẽ đọc trạng thái tại một chân lối vào và gửi tín hiệu về máy tính trên bo UNO.

  • Gắn dây theo sơ đồ:

Linh kiện: 01 công tắc + 01 điện trở giá trị 1KOhm (hoặc hơn)

Continue reading “B1 – Sử dụng cổng vào/ra (Arduino Input/Output Basics)”

Cài đặt và sửa lỗi Arduino (bản Trung quốc) không nhận USB

Sự phát triển của cộng đồng Arduino ngày càng lớn, rất nhiều ứng dụng được phát triển. Tuy nhiên, giá thành của Arduino gốc khá đắt. Với tính chất mã nguồn mở miễn phí, nhiều công ty của Trung quốc đã làm lại các bo Arduino với giá thành rẻ hơn.

Chính vì giá rẻ nên một số bo Arduino không đảm bảo chất lượng. Đối với những bo có chất lượng đảm bảo thì một lỗi rất hay xuất hiện đó là máy tính không nhận ra Arduino nên không thể nạp chương trình. Continue reading “Cài đặt và sửa lỗi Arduino (bản Trung quốc) không nhận USB”