DMDT
  • Danh Mục
    • Vi Điều Khiển
      • 8051
      • Arduino
      • AVR
      • IC Chức Năng
      • PIC
    • Module
      • MD Chuyển Đổi
      • MD GSM,GPS,3G
      • MD LCD
      • MD Nguồn
      • MD Wifi
    • Điện Tử Cơ Bản
      • ADC/DAC
      • Bộ Nhớ Bán Dẫn
      • Các Họ IC Số
      • Họ OPAM
      • Mạch Tổ Hợp
      • Mạch Tuần Tự
      • Linh Kiện Cơ Bản
    • Mạch Điện Vui
      • DIY – Tự Ráp Mạch
      • Hướng Dẫn Thiết Kế Mạch
      • Sản Phẩm Sáng Tạo
      • Tự Làm Mạch In
    • Cảm Biến
      • Analog (Tín hiệu điện áp)
      • Digital (Tín hiệu số)
  • Phần Mềm
  • Đồ Án
No Result
View All Result
DMDT
  • Danh Mục
    • Vi Điều Khiển
      • 8051
      • Arduino
      • AVR
      • IC Chức Năng
      • PIC
    • Module
      • MD Chuyển Đổi
      • MD GSM,GPS,3G
      • MD LCD
      • MD Nguồn
      • MD Wifi
    • Điện Tử Cơ Bản
      • ADC/DAC
      • Bộ Nhớ Bán Dẫn
      • Các Họ IC Số
      • Họ OPAM
      • Mạch Tổ Hợp
      • Mạch Tuần Tự
      • Linh Kiện Cơ Bản
    • Mạch Điện Vui
      • DIY – Tự Ráp Mạch
      • Hướng Dẫn Thiết Kế Mạch
      • Sản Phẩm Sáng Tạo
      • Tự Làm Mạch In
    • Cảm Biến
      • Analog (Tín hiệu điện áp)
      • Digital (Tín hiệu số)
  • Phần Mềm
  • Đồ Án
No Result
View All Result
DMDT
No Result
View All Result
Home Vi Điều Khiển AVR

[HỌC AVR] Bài 6: ADC VỚI AVR

26 Tháng Sáu, 2022
in AVR, Vi Điều Khiển
426 5

Xin chào các bạn!
Trong bài viết này, tôi xin hướng dẫn các bạn cách chuyển đổi tín hiệu tương tự thành tín hiệu số, sử dụng bộ chuyển đổi ADC trên vi điều khiển Atmega 8.

Chú ý : Source code bài viết dưới đây được biên dịch bằng phần mềm CodeVisionAVR để biên dịch code không lỗi xin vui lòng Download bảnCodeVisionAVR Tại Đây

I.ADC TRÊN ATMEGA8.

  Atmega 8 có 6 chân của PORTC (PORTC.0 à PORTC.5) sử dụng làm kênh đầu vào của ADC tương ứng ADC0, ADC1, ADC2, ADC3, ADC4, ADC5.

1.CẤU TẠO PHẦN CỨNG CHO ADC.

 Khi sử dụng ADC, có 2 chân quan trọng bạn phải nhớ:

  • AVCC: chân cung cấp nguồn riêng cho bộ ADC hoạt động.
  • AREF: chân cung cấp điện áp tham chiếu (điện áp lớn nhất mà bộ ADC có thể chuyển đổi) cho bộ ADC.

 Khi thiết kế phần cứng, các bạn phải đặc biệt lưu ý chống nhiễu cho 2 chân này nhằm giảm sai số trong quá trình chuyển đổi.
 Sơ đồ nguyên lý:

2.CÁC THANH GHI LIÊN QUAN.

  • ADMUX (ADC Mutiplexer Selection Register): thanh ghi chọn điện áp tham chiếu (Vref), kênh, chế độ hoạt động của bộ ADC.

  • ADCSRA (ADC Control anh Status Register): thanh ghi điều khiển và chứa trạng thái của bộ ADC.

  • ADCL và ADCH (ADC Data Register): thanh ghi chứa giá trị ADC sau quá trình chuyển đổi.

II.BÀI TOÁN VÍ DỤ

Để hiểu rõ hơn về ADC, tôi đưa ra bài toán cụ thể:

  • Sử dụng kênh ADC0 của vi điều khiển Atmega8, chuyển đổi giá trị điện áp (thay đổi được bằng biến trở) và hiển thị lên màn hình LCD1602.

Các bước cấu hình module ADC hoạt động:

-Chọn điện áp tham chiếu, kênh đọc ADC (ADMUX).
-Cho phép bộ ADC hoạt động (ADCSRA).
-Cho phép quá trình chuyển đổi xảy ra.
-Đọc giá trị ADC sau khi chuyển đổi.

Cấu hình sử dụng bộ ADC với CodeVisionAVR:

Tạo project mới à chọn CodeWizardAVR à chọn ADC

-Các bạn kích hoạt ADC ở ADC Enabled.
-Nếu không chọn ô 8 bit thì bộ chuyển đổi mặc định độ phân giải 10 bit.
-Chọn điện áp tham chiếu ở Volt. Ref.
-Xung clock cho bộ ADC ở Clock.

Ở đây, tôi không sử dụng ngắt ADC.
Code mẫu:

#include <main.h>
 
void main(void)
{
// Port C initialization
// Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTC=0x00;
DDRC=0x00;
 
// KHOI TAO ADC
// ADC Clock frequency: 500.000 kHz
// ADC Voltage Reference: AREF pin
ADMUX=ADC_VREF_TYPE & 0xff;
ADCSRA=0x84;
 
// KHOI TAO LCD1602
// RS - PORTD Bit 4
// RD - PORTD Bit 3
// EN - PORTD Bit 2
// D4 - PORTB Bit 4
// D5 - PORTB Bit 5
// D6 - PORTB Bit 6
// D7 - PORTB Bit 7
 
lcd_init(16);
lcd_clear();
lcd_gotoxy(0,0);
lcd_puts("  MINHHAGROUP..");
lcd_gotoxy(0,1);
lcd_puts(" BANLINHKIEN.VN");
delay_ms(3000);
lcd_clear();
 
while (1)
      {
          adc();
      }
}

 

Hàm con adc() các bạn có thể tham khảo ở Code mẫu và mô phỏng Tại đây:

Tags: ADCarduinoatmega8đọc adc
Share320Tweet200

Related Posts

Mạch điều khiển thiết bị và giám sát nhiệt độ qua Internet dùng App Blynk
Arduino

Mạch điều khiển thiết bị và giám sát nhiệt độ qua Internet dùng App Blynk

26 Tháng Sáu, 2022
Lập Trình Arduino – Chia Sẻ Mạch Quản lý Bãi Đỗ Xe Bằng Thẻ RFID
Arduino

Lập Trình Arduino – Chia Sẻ Mạch Quản lý Bãi Đỗ Xe Bằng Thẻ RFID

26 Tháng Sáu, 2022
Lập trình Arduino – Lập trình Kết nối với module bàn phím 4×4
Arduino

Lập trình Arduino – Lập trình Kết nối với module bàn phím 4×4

26 Tháng Sáu, 2022
Next Post
[HỌC AVR] BÀI 8.1 .ĐO LƯỜNG ĐA ĐIỂM VỚI DS18B20

[HỌC AVR] BÀI 7: GIAO TIẾP IC THỜI GIAN THỰC DS1307

[HỌC AVR] BÀI 8.1 .ĐO LƯỜNG ĐA ĐIỂM VỚI DS18B20

[HỌC AVR] BÀI 8: GIAO TIẾP CẢM BIẾN NHIỆT ĐỘ DS18B20

0 0 đánh giá
Đánh giá bài viết
Theo dõi
Đăng nhập
Thông báo của
guest
guest
0 Góp ý
Phản hồi nội tuyến
Xem tất cả bình luận

No Result
View All Result
  • Danh Mục
    • Vi Điều Khiển
      • 8051
      • Arduino
      • AVR
      • IC Chức Năng
      • PIC
    • Module
      • MD Chuyển Đổi
      • MD GSM,GPS,3G
      • MD LCD
      • MD Nguồn
      • MD Wifi
    • Điện Tử Cơ Bản
      • ADC/DAC
      • Bộ Nhớ Bán Dẫn
      • Các Họ IC Số
      • Họ OPAM
      • Mạch Tổ Hợp
      • Mạch Tuần Tự
      • Linh Kiện Cơ Bản
    • Mạch Điện Vui
      • DIY – Tự Ráp Mạch
      • Hướng Dẫn Thiết Kế Mạch
      • Sản Phẩm Sáng Tạo
      • Tự Làm Mạch In
    • Cảm Biến
      • Analog (Tín hiệu điện áp)
      • Digital (Tín hiệu số)
  • Phần Mềm
  • Đồ Án

Welcome Back!

Login to your account below

Forgotten Password?

Retrieve your password

Please enter your username or email address to reset your password.

Log In
wpDiscuz