Thực Hiện Bộ Điều Khiển PID Trên Vi Điều Khiển AVR

Trong ví dụ này chúng ta thử nghiệm 1 bộ điều khiển PID trên vi điều khiển. Theo hướng dẫn AVR221 của Atmel. Như đã biết, những ứng dụng mà cần duy trì trạng thái ổn định như điều khiển tốc độ động cơ, nhiệt độ, áp suất hay tương đương thì cần thuật toán điều khiển. Điều khiển PID có thể được sử dụng để kiểm soát các thông số mà nó chịu sự tác động bởi các thông số khác trong qúa trình.

Continue reading “Thực Hiện Bộ Điều Khiển PID Trên Vi Điều Khiển AVR”

Tính Toán Nguồn Không Biến Áp

Mạch thường thấy ở đèn ngủ, đèn báo công suất thấp. Trong đó, C1 là tụ cao áp nhằm hạn dòng xuống mức tải. Nó là thành phần quan trọng nhất. Các diode tạo thành cầu chỉnh lưu để về 1 chiều DC. Zener được dùng để ổn định điện thế lối ra. Tụ C2 lọc nhiễu tạo DC ổn định cho tải. R2 cần thiết để chống xung AC ban đầu và bảo vệ Zener. Tốt nhất nên thay bằng nhiệt trở NTC.

Continue reading “Tính Toán Nguồn Không Biến Áp”

Sử dụng LCD với AVR ATmega8 với thư viện Header rút gọn

Màn hình LCD đuợc sử dụng rộng rãi vì giá thành rẻ và có thể hiển thị nhiều thông tin hơn LED bảy đoạn hoặc ma trận. Hiện nay đã có mạch giao tiếp chuyển sang I2C nhưng học cách làm việc trực tiếp với LCD giúp chúng ta có thể hiểu rõ cách thức điều khiển. Ngoài ra, chúng ta có thể tự xây dựng thư viện cho riêng mình.

Continue reading “Sử dụng LCD với AVR ATmega8 với thư viện Header rút gọn”

Sử dụng bàn phím ma trận với AVR ATmega8

Bàn phím ma trận (matrix keypad) bao gồm một lưới các nút với dây tương ứng có thể được đọc bởi một vi điều khiển. Như hình bên dưới cho thấy, số lượng chân cần thiết của bộ vi điều khiển được xác định bởi số hàng và cột. Trong đó một dây là cần thiết cho mỗi hàng và mỗi cột. Khi một nút được nhấn, kết nối giữa hàng và cột tương ứng được tạo. Kết nối này cho phép bàn phím được đọc bởi vi điều khiển.

Bàn phím 4×4
Continue reading “Sử dụng bàn phím ma trận với AVR ATmega8”

Sử dụng LED ma trận với AVR ATmega8

LED matrix hay ma trận điểm là một loại thiết bị rất phổ biến trong hiển thị thông báo và quảng cáo. Hiện nay, các chip hỗ trợ và thư viện phần mềm khá nhiều nên mọi người thường bỏ qua tìm hiểu nguyên tắc hoạt động của LED ma trận. Tuy nhiên, dưới góc độ người học lập trình thì làm việc với LED ma trận giúp chúng ta học được một số điều.

Continue reading “Sử dụng LED ma trận với AVR ATmega8”

Nạp chương trình cho AVR Atmega với mạch nạp USBISP

Sau khi viết chương trình cho vi điều khiển, mô phỏng chỉ là bước đệm nhằm kiểm tra tính năng của chương trình. Hiện nay có rất nhiều loại mạch nạp, từ đơn giản rẻ tiền đến phức tạp với giá thành cao. Cụ thể với trường hợp sử dụng Atmel Studio, người ta có thể sử dụng mạch nạp AVRisp mkII, Dragon hay JTAGICE. Chúng hỗ trợ nhiều tính năng và kiểu nạp khác nhau như ISP, PDI cho linh kiện mới. Tuy nhiên những mạch nạp này khá đắt tiền. Trong loạt ví dụ này, chúng ta sử dụng Atmeg8 là loại vi điều khiển phổ thông nên có thể sử dụng những mạch nạp khác để tiết kiệm kinh phí. Điển hình nhất là mạch nạp USBISP cho AVR.

Continue reading “Nạp chương trình cho AVR Atmega với mạch nạp USBISP”

Tìm hiểu Lock bits & Fuse bits trên vi điều khiển họ AVR

AVR® Fuses nằm trong khu vực bộ nhớ bền vững (non-volatile memory) cho phép cấu hình phần cứng của vi điều khiển họ AVR. Các Fuses này thường được tạo thành bởi vài thanh ghi. Mỗi bit sẽ định nghĩa một chức năng phần cứng. Thông tin chi tiết về từng bit và tác động của chúng được trình bày trong tài liệu đi kèm. Các thông số về tốc độ xung nhịp, bộ đếm và các chức năng hỗ trợ sửa lỗi là những cài đặt phổ thông mà đa số vi điều khiển đều sở hữu.

Continue reading “Tìm hiểu Lock bits & Fuse bits trên vi điều khiển họ AVR”