Tỷ lệ ấp thànhcông lên đến 95% với các đặc điểm như sau: - Bo mạch điện tử tự động cân bằng nhiệt bảo đảm nhiệt độ thích hợp 37ºC~39ºC và tương đối ổn định theo từng giai đoạn của mỗi đợ
Trang 1MỤC LỤC
MỤC LỤC 1
DANH SÁCH CÁC HÌNH VÀ CÁC BẢNG TRONG ĐỒ ÁN 3
MỞ ĐẦU 5
Chương 1: CƠ SỞ LÝ THUYẾT 6
1.1 Khảo sát hệ thống ấp trứng tự động 6
1.1.1 Máy ấp trứng tự động đảo trứng và phun độ ẩm 6
7 Hình 1.1: Máy ấp trứng tự động đảo trứng và phun độ ẩm 7
1.1.2 Máy ấp trứng sử dụng năng lượng mặt trời 7
8 Hình 1.2: Máy ấp trứng sử dụng năng lượng mặt trời 8
1.1.3 Máy ấp trứng kỹ thuật số 8
9 Hình 1.3 : Máy ấp trứng kỹ thuật số 9
1.2 Yêu cầu của hệ thống ấp trứng tự động sẽ thực hiện 9
1.3 Chi tiết các thiết bị 10
1.3.1 Động cơ xoay chiều 10
1.3.4 CPU Atmega16 12
Hình 1.7: Sơ đồ chân của Atmega16 14
Hình 1.9: Mạch flash ADC với 4 bộ so sánh 19
Hình 1.10: Analog và digital của hàm sin 20
Hình 1.11: Tạo nguồn AVCC từ VCC 22
1.3.5 Bộ định thời Real Time Clock DS1307 28
Hình 1.12: Cấu tạo của DS1307 29
Hình 1.13: Ghép nối DS1307 với vi điều khiển 30
Hình 1.14: Tổ chức thanh ghi trong DS1307 31
Hình 1.15: Tổ chức thanh ghi trong DS 1307 32
Hình 1.18: sơ đồ chân LCD 36
Chương 2: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 38
Hình 2.1: Sơ đồ khối điều khiển 40
Trang 22.6.3 Thuật toán chương trình con cài đặt nhiệt độ 48
48
48
48
48
48
Chương 3: KẾT QUẢ XÂY DỰNG HỆ THỐNG ẤP TRỨNG TỰ ĐỘNG 49
Hình 3.1: MODE=0 49
3.2 Mạch ở chế độ MODE=1 49
Hình 3.2: MODE=1 50
3.3 Mạch ở chế độ MODE=2 50
3.4 Mạch ở chế độ MODE=3 51
Hình 3.4: MODE=3 52
3.5 Mạch ở chế độ MODE=4 53
Hình 3.5: MODE=4 53
KẾT LUẬN 54
TÀI LIỆU THAM KHẢO 54
Trang 3DANH SÁCH CÁC HÌNH VÀ CÁC BẢNG TRONG ĐỒ ÁN
MỤC LỤC 1
DANH SÁCH CÁC HÌNH VÀ CÁC BẢNG TRONG ĐỒ ÁN 3
MỞ ĐẦU 5
Chương 1: CƠ SỞ LÝ THUYẾT 6
1.1 Khảo sát hệ thống ấp trứng tự động 6
1.1.1 Máy ấp trứng tự động đảo trứng và phun độ ẩm 6
7 Hình 1.1: Máy ấp trứng tự động đảo trứng và phun độ ẩm 7
1.1.2 Máy ấp trứng sử dụng năng lượng mặt trời 7
8 Hình 1.2: Máy ấp trứng sử dụng năng lượng mặt trời 8
1.1.3 Máy ấp trứng kỹ thuật số 8
9 Hình 1.3 : Máy ấp trứng kỹ thuật số 9
1.2 Yêu cầu của hệ thống ấp trứng tự động sẽ thực hiện 9
1.3 Chi tiết các thiết bị 10
1.3.1 Động cơ xoay chiều 10
1.3.4 CPU Atmega16 12
Hình 1.7: Sơ đồ chân của Atmega16 14
Hình 1.9: Mạch flash ADC với 4 bộ so sánh 19
Hình 1.10: Analog và digital của hàm sin 20
Hình 1.11: Tạo nguồn AVCC từ VCC 22
1.3.5 Bộ định thời Real Time Clock DS1307 28
Hình 1.12: Cấu tạo của DS1307 29
Hình 1.13: Ghép nối DS1307 với vi điều khiển 30
Hình 1.14: Tổ chức thanh ghi trong DS1307 31
Hình 1.15: Tổ chức thanh ghi trong DS 1307 32
Hình 1.18: sơ đồ chân LCD 36
Chương 2: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 38
Hình 2.1: Sơ đồ khối điều khiển 40
Trang 42.6.3 Thuật toán chương trình con cài đặt nhiệt độ 48
48
48
48
48
48
Chương 3: KẾT QUẢ XÂY DỰNG HỆ THỐNG ẤP TRỨNG TỰ ĐỘNG 49
Hình 3.1: MODE=0 49
3.2 Mạch ở chế độ MODE=1 49
Hình 3.2: MODE=1 50
3.3 Mạch ở chế độ MODE=2 50
3.4 Mạch ở chế độ MODE=3 51
Hình 3.4: MODE=3 52
3.5 Mạch ở chế độ MODE=4 53
Hình 3.5: MODE=4 53
KẾT LUẬN 54
TÀI LIỆU THAM KHẢO 54
Trang 5MỞ ĐẦU
Trong nhiều năm qua ngành nông nghiệp nước ta có nhiều những thành tựuvượt bậc, không chỉ đủ cung cấp nguồn lương thực, thực phẩm cho đất nước mà cònxuất khẩu ra thị trường thế giới Với thành tựu to lớn đó, chúng ta phải kể đếnngành chăn nuôi gia cầm đã góp phần quan trọng cho nền kinh tế quốc dân Sự pháttriển của ngành chăn nuôi nói chung và ngành chăn nuôi gia cầm nói riêng đã đemlại lợi ích kinh tế cho các hộ nông dân, từng bước xóa đói giảm nghèo và ngày càng
có nhiều hộ gia đình làm giàu trên mảnh đất của mình nhờ vào kinh tế trang trại.Ngày nay, nền kinh tế trang trại được phát triển rộng rãi trên cả nước với quy môvừa và lớn do đó vấn đề con giống là hết sức cần thiết
Ấp trứng nhân tạo bằng máy ấp công nghiệp là phương pháp tối ưu để sảnxuất con giống trong thời gian ngắn, tỷ lệ ấp nở cao, đặc biệt có thể ấp được một sốlượng trứng lớn, và chất lượng con giống được nâng cao
Ngày nay, việc đưa Vi Điều Khiển vào các dây chuyền sản xuất công nghiệp
đã đáp ứng tốt các yêu cầu trong điều khiển tự động hoá, nó đã trở thành yếu tốchính để nâng cao hơn nữa hiệu quả của sản xuất trong công nghiệp nước ta Việcđưa Vi Điều Khiển vào điều khiển cho máy ấp trứng công nghiệp là rất cần thiết, vì
nó đảm bảo điều khiển chính xác các thông số cho quá trình ấp nở và cho hiệu quả
ấp nở cao, hệ thống điều khiển ngọn nhẹ, dễ dàng thao tác, mang lại hiệu quả kinh
tế cao cho người nông dân
Vì vậy, đồ án em thực hiện là “Xây dựng hệ thống ấp trứng tự động” Mục
đích của đề tài này là xây dựng một hệ thống ấp trứng tự động sử dụng Vi ĐiềuKhiển AVR Do còn nhiều hạn chế về thời gian, về kiến thức và điều kiện làm việccũng như sự thử nghiệm thực tế, việc tìm hiểu của em chắc chắn còn nhiều thiếusót Em rất mong nhận được sự góp ý của các thầy cô cùng các bạn để đồ án của emđược hoàn thiện hơn Em xin chân thành cảm ơn!
Sinh viên : Nguyễn Thị Bích Nga
Trang 6Chương 1: CƠ SỞ LÝ THUYẾT
1.1 Khảo sát hệ thống ấp trứng tự động
Ngày nay, cùng với sự phát triển của khoa học và công nghệ, các phươngpháp ấp trứng thủ công đã dần được thay thế bởi các loại máy ấp trứng tự động vàbán tự động với tỷ lệ ấp thành công rất cao phù hợp với yêu cầu sản xuất, cho năngsuất cao Sau đây là một số loại máy ấp trứng được sử dụng nhiều trong sản xuất
1.1.1 Máy ấp trứng tự động đảo trứng và phun độ ẩm
Máy ấp trứng tự động dùng cho các loại trứng gia cầm,thủy cầm (gà, vịt,ngan, ngỗng… ) Bao gồn các loại máy kích thước nhỏ gia dụng cho đến các loạimáy công nghiệp với đủ kích thước, có thể ấp từ 50 đến 10.000 trứng Tỷ lệ ấp thànhcông lên đến 95% với các đặc điểm như sau:
- Bo mạch điện tử tự động cân bằng nhiệt bảo đảm nhiệt độ thích hợp (37ºC~39ºC) và tương đối ổn định theo từng giai đoạn của mỗi đợt ấp trứng Phát
âm thanh tự báo động khi nhiệt độ vượt quá ngưỡng quy định và ngược lại,
cảnh báo khi nhiệt độ bên ngoài quá cao, mức sai lệch nhiệt độ là 0.1ºC.
- Máy siêu âm tạo độ ẩm tuyệt đối cho máy ấp trứng bảo đảm độ ẩm thích hợp(65%RH ~ 80%RH) và tương đối ổn định theo từng giai đoạn của mỗi đợt ấptrứng
- Bộ điều hòa khí chuyên dụng bảo đảm thông gió thoáng khí trong tủ ấp
- Bộ đảo trứng thông minh có định giờ bảo đảm đảo trứng thường xuyên (1~3h/ 1 lần)
- Kích thước của máy tùy thuộc vào số lượng trứng cần ấp, với những máy cókích thước nhỏ phù hợp với các hộ gia đình, các máy có kích thước lớn thìphù hợp với các trang trại hay các lò ấp công nghiệp
Trang 7Hình 1.1: Máy ấp trứng tự động đảo trứng và phun độ ẩm
1.1.2 Máy ấp trứng sử dụng năng lượng mặt trời
Máy ấp trứng sử dụng năng lượng mặt trời ngày nay cũng đã được sủ dụngrộng rãi, đặc biệt là ở các vùng nông thôn hay bị mất điện đột ngột và ở vùng sâuvùng xa, nơi không có điện năng Với ưu điểm là tiết kiệm điện năng và có giá thànhphù hợp Máy ấp trứng sử dụng năng lượng mặt trời gồm ba phần chính: pin nănglượng mặt trời, bình nước nóng và buồng ấp trứng
- Pin năng lượng mặt trời sẽ hấp thụ ánh sáng mặt trời chuyển hóa thành điệnnăng tích trữ vào ác quy để cung cấp cho bộ phận điều khiển nhiệt độ củamáy ấp trứng Nhiệt độ trong buồng ấp luôn đảm bảo khoảng 37ºC đến 38ºC
- Máy nước nóng năng lượng mặt trời sẽ cung cấp nhiệt năng, giúp tăng nhiệt
độ trong buồng ấp trứng
Trang 8Hình 1.2: Máy ấp trứng sử dụng năng lượng mặt trời
1.1.3 Máy ấp trứng kỹ thuật số
Máy ấp trứng kỹ thuật số sản xuất theo công nghệ và tiêu chuẩn Hàn Quốc,với đầy đủ các tính năng như: tùy chỉnh nhiệt độ, độ ẩm, tự động đảo trứng, dễ dàngsửa chữa và thay thế linh kiện, có thể sử dụng được cả hai nguồn điện là nguồn điện220V và nguồn của bình ác quy để phòng khi mất điện
- Các loại trứng có thể ấp được: gà, vịt, ngan, ngỗng, chim, đà điểu, trĩ,
- Đảo trứng: tùy chỉnh thời gian đảo và số lần dảo trứng cho một lần hoạt động
- Giải pháp khi mất điện: hệ thống ấp trứng bằng ác quy, duy trì thời gian ngàyvới ác quy 100mA trở lên
Trang 9Hình 1.3 : Máy ấp trứng kỹ thuật số
Trên đây là cấu tạo, chức năng, yêu cầu kỹ thuật và hình ảnh của một số loạimáy ấp trứng phổ biến, được sử dụng rộng rãi trên thị trường hiện nay Tham khảocác thông số và yêu cầu kỹ thuật của các loại máy ấp trứng trên, trong đồ án này em
sẽ xây dựng hệ thống ấp trứng tự động
1.2 Yêu cầu của hệ thống ấp trứng tự động sẽ thực hiện
Hệ thống bao gồm các bộ phận chính:
- Thùng ấp: được thiết kế tùy theo số lượng trứng cần ấp
- Giá đựng trứng: được lắp trong thùng ấp với nhiều tầng và gắn với trục động
cơ thông qua bộ truyền lực (bánh răng hoặc dây culoa)
- Động cơ xoay chiều hoặc một chiều để quay giá trứng (tùy theo kích thướccủa thùng ấp mà có thể dùng động cơ xoay chiều hay động cơ một chiều)
- Hệ thống bóng đèn: để tạo nhiệt độ trong buồng ấp trứng
- Sử dụng vi điều khiển Atmega16 để xử lý các tín hiệu nhận được và đưa ra các tín hiệu điều khiển
- Bộ định giờ Real Time Clock DS1307 để cập nhật thời gian
- Sensor nhiệt độ LM35 đo nhiệt độ trong buồng ấp trứng
Trang 10- Màn hình hiển thị số liệu LCD16x2 hiển thị ngày tháng, nhiệt độ.
- Hệ thống phím nhấn để chọn các chế độ nhiệt độ khác nhau
- Các đèn cảnh báo và chuông báo khi hệ thống gặp sự cố.
1.3 Chi tiết các thiết bị
1.3.1 Động cơ xoay chiều
1 Cấu tạo và nguyên lý hoạt động
Động cơ gồm có hai phần chính là stator và rotor Stato gồm các cuộn dâycủa ba pha điện quấn trên các lõi sắt bố trí trên một vành tròn để tạo ra từ trườngquay Rôto hình trụ có tác dụng như một cuộn dây quấn trên lõi thép Khi mắc động
cơ vào mạng điện xoay chiều, từ trường quay do stato gây ra làm cho rôto quay trêntrục Chuyển động quay của rôto được trục máy truyền ra ngoài và được sử dụng đểvận hành các máy công cụ hoặc các cơ cấu chuyển động khác
2 Phân loại
Động cơ điện xoay chiều được sản xuất với nhiều kiểu và công suất khácnhau Theo sơ đồ nối điện có thể phân ra làm 2 loại: động cơ 3 pha và 1 pha, và nếutheo tốc độ có động cơ đồng bộ và động cơ không đồng bộ
Hình 1.4: Động cơ điện xoay chiều
Trang 111.3.2 Động cơ một chiều
Động cơ một chiều là động cơ điện hoạt động với dòng điện một chiều.Stator của động cơ điện một chiều thường là một hay nhiều cặp nam châm vĩnh cửu,hay nam châm điện, rotor có các cuộn dây quấn và được nối với nguồn điện mộtchiều, một phần quan trọng khác của động cơ điện một chiều là bộ phận chỉnh lưu,
nó có nhiệm vụ là đổi chiều dòng điện trong khi chuyển động quay của rotor là liêntục Thông thường bộ phận này gồm có một bộ cổ góp và một bộ chổi than tiếp xúcvới cổ góp
Khi có một dòng điện chạy qua cuộn dây quấn xung quanh một lõi sắt non,cạnh phía bên cực dương sẽ bị tác động bởi một lực hướng lên, trong khi cạnh đốidiện lại bị tác động bằng một lực hướng xuống Các lực này gây tác động quay lêncuộn dây, và làm cho rotor quay Để làm cho rô to quay liên tục và đúng chiều, một
bộ cổ góp điện sẽ làm chuyển mạch dòng điện sau mỗi vị trí ứng với 1/2 chu kỳ Chỉ
có vấn đề là khi mặt của cuộn dây song song với các đường sức từ trường Nghĩa làlực quay của động cơ bằng 0 khi cuộn dây lệch 90o so với phương ban đầu của nó,khi đó Rôto sẽ quay theo quán tính
Hình 1.5: Động cơ điện một chiều
Trang 121.3.3 Bóng đèn
Bóng đèn sợi đốt hay gọi ngắn gọn hơn là bóng đèn tròn là một loại bóng đèndùng để chiếu sáng, dây tóc là bộ phận chính để phát ra ánh sáng, thông qua vỏ thủytinh trong suốt Các dây tóc - bộ phận phát sáng chính của đèn được bảo vệ bênngoài bằng một lớp thủy tinh trong suốt hoặc mờ đã được rút hết không khí và bơmvào các khí trơ Kích cỡ bóng phải đủ lớn để không bị hơi nóng của nhiệt tỏa ra làm
nổ Hầu hết bóng đèn đều được lắp vào trong đui đèn, dòng điện sẽ đi qua đui đèn,qua đuôi đèn kim loại, vào đến dây tóc làm nó nóng lên và đến mức phát ra ánhsáng Đèn dây tóc dùng điện áp từ 1,5 vôn đến 300 vôn
Hình 1.6 : Bóng đèn
1.3.4 CPU Atmega16
1 Tính năng của Atmega16
Vi điều khiển Atmega16 là vi điều khiển thuộc họ AVR của hãng Atmel, làmột dòng vi điều khiển tích hợp cao với những chức năng cơ bản nhưng rất cần thiếttrong những ứng dụng cụ thể
Vi điều khiển ATmega16 cung cấp những tính năng sau:
-16K bytes bộ nhớ chương trình dạng flash có thể Read-While-Write
-512 bytes EEPROM
-1K byte RAM tĩnh (SRAM)
Trang 13-32 đường kết nối I/O mục đích chung.
-32 thanh ghi làm việc mục đích chung được nối trực tiếp với đơn vị xử lý sốhọc và logic (ALU)
-Một giao diện JATG cho quét ngoại vi
-Lập trình và hỗ trợ gỡ rối trên chip
-3 Timer/Counter linh hoạt với các chế độ so sánh
-Các ngắt ngoài và ngắt trong (21 nguyên nhân ngắt)
-Chuẩn truyền dữ liệu nối tiếp USART có thể lập trình
-Một ADC 10 bit, 8 kênh với các kênh đầu vào ADC có thể lựa chọn bằngcách lập trình
-Một Watchdog Timer có thể lập trình với bộ tạo dao động bên trong
-Một cổng nối tiếp SPI ( serial peripheral interface)
-6 chế độ tiết kiệm năng lượng có thể lựa chọn bằng phần mềm
Trang 14Hình 1.7: Sơ đồ chân của Atmega16
Mô tả các chân vi điều khiển ATmega16
- VCC: chân cấp nguồn một chiều
- GND: chân nối đất
- Port A (PA7 PA0): Cổng A được dùng làm lối vào analog của bộ chuyểnđổi A/D Cổng A cũng được dùng như một cổng I/O 8 bit hai chiều trực tiếp nếu bộchuyển đổi A/D không được sử dụng Các chân của port được cung cấp điện trở kéolên bên trong (được chọn cho từng bit)
- Port B(PB7 PB0): Cổng B là một cổng I/O 8 bit hai chiều trực tiếp có cácđiện trở kéo lên bên trong (được chọn cho từng bit) Ngoài ra Port B còn được sửdụng cho các chức năng đặc biệt khác:
Port Pin Alternate Functions
PB7 SCK (SPI Bus serial Clock)
PB6 MISO (SPI Bus Master Input/Slave Output)
PB5 MOSI (SPI Bus Master Output/Slave Input)
Trang 15PB4 SS (SPI Slave Select Input)
PB3 AIN1 (Analog Comparator Negative Input)
OC0 (Timer/Counter) Output Compare Match Output)PB2 AIN0 (Analog Comparator Positive Input)
INT2 (External Interrupt 2 Input)PB1 T1 (Timer/Couter 1 External Counter Input)
PB0 T0 (Timer/Counter 0 External Counter Input)
XCK (USART External Clock Input/Output)
- Port C(PC7 PC0): Port C cũng là một cổng I/O 8 bit hai chiều trực tiếp vớicác điện trở kéo lên bên trong (được chọn cho từng bit) Khi giao diện JTAG đượcphép hoạt động, các điện trở kéo lên của các chân PC5(TDI), PC3(TMS), vàPC2(TCK) sẽ vẫn hoạt động cả khi xảy ra reset Port C được sử dụng cho giao diệnJTAG và các chức năng đặc biệt khác như trong bảng:
Port Pin Alternate Function
PC7 TOSC2 (Time Oscillator Pin 2)
PC6 TOSC1 (Time Oscillator Pin 1)
PC5 TDI (JTAG Test Data In)
PC4 TDO (JTAG Test Data Out)
PC3 TMS (JTAG Test Mode Select)
PC2 TCK (JTAG Test Clock)
PC1 SDA (2- wire Serial Bus Data Input/Output Line)
PC0 SCL (2- wire Serial Bus Clock Line)
-Port D(PD7 PD0): là một cổng I/O 8 bit hai chiều trực tiếp có các điện trởkéo lên bên trong (được chọn cho từng bit) Port D cũng được dùng cho các chứcnăng đặc biệt khác của ATmega16 như trong bảng:
Port Pin Alternate Function
PD7 OC2 (Timer/Counter2 Output Compare Match Output)PD6 ICP (Timer/Counter1 Input Capture Pin)
PD5 OC1A (Timer/Counter1 Output CompareA Match Output)PD4 OC1B (Timer/Counter1 Output CompareB Match Output)PD3 INT1 (External Interrupt 1 Input)
Trang 16PD2 INT0 (External Interrupt 0 Input)
PD1 TXD (USART Output Pin)
PD0 RXD (USART Input Pin)
- RESET : Là đầu vào reset Một tín hiệu mực thấp đặt vào chân này trongkhoảng thời gian dài hơn độ dài xung nhỏ nhất sẽ phát ra một reset, ngay cả khixung nhịp không hoạt động Xung ngắn hơn thì không đảm bảo để phát ra một reset
-XTAL1: đầu vào cho bộ khuếch đại đảo dao động và đầu vào đến mạch hoạtđộng đồng hồ xung nhịp bên trong
-XTAL2: đầu ra cho bộ khuếch đại đảo dao động
-AVCC: là chân cấp nguồn áp cho Port A và bộ chuyển đổi A/D Chân nàynên được nối với VCC cả khi ADC không được sử dụng nếu ADC được sử dụng,chân AVCC nên được nối với VCC qua bộ lọc thông thấp
-AREF: chân điện áp tham chiếu của bộ chuyển đổi A/D
Trang 17Hình 1.8: Sơ đồ cấu trúc vi điều khiển Atmega16
2 Tìm hiểu về ADC
Trong các ứng dụng đo lường và điều khiển bằng vi điều khiển bộ chuyển đổitương tự-số (ADC) là một thành phần rất quan trọng Dữ liệu trong thế giới củachúng ta là các dữ liệu tương tự (analog) Ví dụ nhiệt độ không khí buổi sáng là25ºC và buổi trưa là 32ºC, giữa hai mức giá trị này có vô số các giá trị liên tục mànhiệt độ phải “đi qua” để có thể đạt mức 32ºC từ 25ºC, đại lượng nhiệt độ như thếgọi là một đại lượng analog Trong khi đó, rõ ràng vi điều khiển là một thiết bị số(digital), các giá trị mà một vi điều khiển có thể thao tác là các con số rời rạc vì thựcchất chúng được tạo thành từ sự kết hợp của hai mức 0 và 1 Ví dụ chúng ta muốn
Trang 18dùng một thanh ghi 8 bit trong vi điều khiển để lưu lại các giá trị nhiệt độ từ 0°C đến255°C, như chúng ta đã biết, một thanh ghi 8 bit có thể chứa tối đa 256 (28) giá trịnguyên từ 0 đến 255, như thế các mức nhiệt độ không nguyên như 28.123°C sẽkhông được ghi lại Nói cách khác, chúng ta đã “số hóa” (digitalize) một dữ liệuanalog thành một dữ liệu digital Quá trình “số hóa” này thường được thực hiện bởimột thiết bị gọi là “bộ chuyển đổi tương tự - số hay đơn giản là ADC (Analog toDigital Converter).
Có rất nhiều phương pháp chuyển đổi ADC, phương pháp chuyển đổi mà emnói ở đây là phương pháp chuyển đổi trực tiếp (direct converting) hoặc flash ADC Các bộ chuyển đổi ADC theo phương pháp này được cấu thành từ một dãy các bộ sosánh (như opamp), các bộ so sánh được mắc song song và được kết nối trực tiếp vớitín hiệu analog cần chuyển đổi Một điện áp tham chiếu (reference) và một mạchchia áp được sử dụng để tạo ra các mức điện áp so sánh khác nhau cho mỗi bộ sosánh Hình 1.9 mô tả một bộ chuyển đổi flash ADC có 4 bộ so sánh, Vin là tín hiệuanalog cần chuyển đổi và giá trị sau chuyển đổi là các con số tạo thành từ sự kết hợpcác mức nhị phân trên các chân Vₒ Trong hình 1.9, do anh hưởng của mạch chia áp(các điện trở mắc nối tiếp từ điện áp +15V đến đất), điện áp trên chân âm (chân -)của các bộ so sánh sẽ khác nhau Trong lúc chuyển đổi, giả sử điện áp Vin lớn hơnđiện áp V- của bộ so sánh 1 (opamp ở phía thấp nhất trong mạch) nhưng lại nhỏ hơnđiện áp V- của các bộ so sánh khác, khi đó ngõ Vo1 ở mức 1 và các ngõ Vo khác ởmức 0, chúng ta thu được một kết quả số Một cách tương tự, nếu tăng điện áp Vin tathu được các tổ hợp số khác nhau Với mạch điện có 4 bộ so sánh như trong hình1.9, sẽ có tất cả 5 trường hợp có thể xảy ra, hay nói theo cách khác điện áp analog
Vin được chia thành 5 mức số khác nhau Tuy nhiên, các ngõ Vₒ không phải là cácbit của tín hiệu số ngõ ra, chúng chỉ là đại diện để tổ hợp thành tín hiệu số ngõ ra,chúng ta không sử dụng được các bit Vₒ trực tiếp mà cần một bộ giải mã (decoder).Trong bảng 1 tôi trình bày kết quả sau khi giải mã ứng với các tổ hợp của các ngõVₒ
Trang 19Hình 1.9: Mạch flash ADC với 4 bộ so sánh.
Bảng 1 Giá trị số ngõ ra sau khi giải mã
Vₒ4 Vₒ3 Vₒ2 Vₒ1 Giá trị nhị phân Giá trị thập phân
Độ phân giải (resolution): như trong ví dụ trên, nếu mạch điện có 4 bộ so sánh,
ngõ ra digital sẽ có 5 mức giá trị Tương tự nếu mạch điện có 7 bộ so sánh thì sẽ có
8 mức giá trị có thể ở ngõ ra digital, khoảng cách giữa các mức tín hiệu trongtrường hợp 8 mức sẽ nhỏ hơn trường hợp 4 mức Nói cách khác, mạch chuyển đổivới 7 bộ so sánh có giá trị digital ngõ ra “mịn” hơn khi chỉ có 4 bộ, độ “mịn” càngcao tức độ phân giải (resolution) càng lớn Khái niệm độ phân giải được dùng đểchỉ số bit cần thiết để chứa hết các mức giá trị digital ngõ ra Trong trường hợp có 8mức giá trị ngõ ra, chúng ta cần 3 bit nhị phân để mã hóa hết các giá trị này, vì thế
Trang 20mạch chuyển đổi ADC với 7 bộ so sánh sẽ có độ phân giải là 3 bit Một cách tổngquát, nếu một mạch chuyển đổi ADC có độ phân giải n bit thì sẽ có 2n mức giá trị cóthể có ở ngõ ra digital Để tạo ra một mạch chuyển đổi flash ADC có độ phân giải nbit, chúng ta cần đến 2n-1 bộ so sánh, giá trị này rất lớn khi thiết kế bộ chuyển đổiADC có độ phân giải cao, vì thế các bộ chuyển đổi flash ADC thường có độ phângiải ít hơn 8 bit Độ phân giải liên quan mật thiết đến chất lượng chuyển đổi ADC,việc lựa chọn độ phân giải phải phù hợp với độ chính xác yêu cầu và khả năng xử lýcủa bô điều khiển Trong 2 mô tả một ví dụ “số hóa” một hàm sin analog thành dạngdigital.
Hình 1.10: Analog và digital của hàm sin.
Điện áp tham chiếu (reference voltage): Cùng một bộ chuyển đổi ADC nhưng
có người muốn dùng cho các mức điện áp khác nhau, ví dụ người A muốn chuyểnđổi điện áp trong khoảng 0-1V trong khi người B muốn dùng cho điện áp từ 0V đến5V Rõ ràng nếu hai người này dùng 2 bộ chuyển đổi ADC đều có khả năng chuyểnđổi đến điện áp 5V thì người A đang “phí phạm” tính chính xác của thiết bị Vấn đề
sẽ được giải quyết bằng một đại lượng gọi là điện áp tham chiếu - Vref (referencevoltage) Điện áp tham chiếu thường là giá trị điện áp lớn nhất mà bộ ADC có thểchuyển đổi Trong các bộ ADC, Vref thường là thông số được đặt bởi người dùng,
nó là điện áp lớn nhất mà thiết bị có thể chuyển đổi Ví dụ, một bộ ADC 10 bit (độphân giải) có Vref=3V, nếu điện áp ở ngõ vào là 1V thì giá trị số thu được sau khichuyển đổi sẽ là: 1023x(1/3)=314 Trong đó 1023 là giá trị lớn nhất mà một bộ ADC
10 bit có thể tạo ra (1023=210-1) Vì điện áp tham chiếu ảnh hưởng đến độ chính xác
Trang 21của quá trình chuyển đổi, chúng ta cần tính toán để chọn 1 điện áp tham chiếu phùhợp, không được nhỏ hơn giá trị lớn nhất của input nhưng cũng đừng quá lớn.
3 Chuyển đổi ADC trên Atmega16
Chip AVR Atmega16 của Atmel có tích hợp sẵn các bộ chuyển đổi ADC với độphân giải 10 bit Có tất cả 8 kênh đơn (các chân ADC0 đến ADC7), 16 tổ hợpchuyển đổi dạng so sánh, trong đó có 2 kênh so sánh có thể khuyếch đại Bộ chuyểnđổi ADC trên AVR không hoạt động theo nguyên lý flash ADC mà tôi đề cập ởphần trên, ADC trong AVR là loại chuyển đổi xấp xỉ lần lượt (successiveapproximation ADC)
ADC trên AVR cần được “nuôi” bằng nguồn điện áp riêng ở chân AVCC, giá trịđiện áp cấp cho AVCC không được khác nguồn nuôi chip (VCC) quá +/-0.3V.Nhiễu (noise) là vấn đề rất quan trọng khi sử dụng các bộ ADC, để giảm thiểu sai sốchuyển đổi do nhiễu, nguồn cấp cho ADC cần phải được “lọc” (filter) kỹ càng Mộtcách đơn giản để tạo nguồn AVCC là dùng một mạch LC kết nối từ nguồn VCC củachip như minh họa trong hình 1.11, đây là cách được gợi ý bởi nhà sản xuất AVR
Trang 22Hình 1.11: Tạo nguồn AVCC từ VCC.
Điện áp tham chiếu cho ADC trên AVR có thể được tạo bởi 3 nguồn: dùng điện
áp tham chiếu nội 2.56V (cố định), dùng điện áp AVCC hoặc điện áp ngoài đặt trênchân VREF Một lần nữa, bạn cần chú ý đến noise khi đặt điện áp tham chiếu, nếudùng điện áp ngoài đặt trên chân VREF thì điện áp này phải được lọc thật tốt, nếudùng điện áp tham chiếu nội 2.56V hoặc AVCC thì chân VREF cần được nối vớimột tụ điện Việc chọn điện áp tham chiếu sẽ được đề cập chi tiết trong phần sửdụng ADC
Các chân trên PORTA của chip Atmega16 được dùng cho bộ ADC, chân PA0 tươngứng kênh ADC0 và chân PA7 tương ứng với kênh ADC7
Thanh ghi:
Trang 23Có 4 thanh trong bộ ADC trên AVR trong đó có 2 thanh ghi data chứa dữ liệu sau khi chuyển đổi, 2 thanh ghi điều khiển và chứa trạng thái của ADC.
- ADMUX (ADC Multiplexer Selection Register): là 1 thanh ghi 8 bit điều
khiển việc chọn điện áp tham chiếu, kênh và chế độ hoạt động của ADC Chức năngcủa từng bit trên thanh ghi này sẽ được trình bày cụ thể như sau:
- Bit 7:6- REFS1:0 (Reference Selection Bits): là các bit chọn điện áp thamchiếu cho ADC, 1 trong 3 nguồn điện áp tham chiếu có thể được chọn là: điện ápngoài từ chân VREF, điện áp tham chiếu nội 2.56V hoặc điện áp AVCC Bảng 2tóm tắt giá trị các bit và điện áp tham chiếu tương ứng
Bảng 2: Chọn điện áp tham chiếu
- Bit 5-ADLAR (ADC Left Adjust Result): là bit cho phép hiệu chỉnh trái kếtquả chuyển đổi Sở dĩ có bit này là vì ADC trên AVR có độ phân giải 10 bit, nghĩa
là kết quả thu được sau chuyển đổi là 1 số có độ dài 10 bit (tối đa 1023), AVR bố trí
2 thanh ghi data 8 bit để chứa giá trị sau chuyển đổi Như thế giá trị chuyển đổi sẽkhông lắp đầy 2 thanh ghi data, trong một số trường hợp người dùng muốn 10 bitkết quả nằm lệch về phía trái trong khi cũng có trường hợp người dùng muốn kếtquả nằm về phía phải Bit ADLAR sẽ quyết định vị trí của 10 bit kết quả trong 16bit của 2 thanh ghi data Nếu ADLAR=0 kết quả sẽ được hiệu chỉnh về phía phải(thanh ghi ADCL chứa trọn 8 bit thấp và thanh ghi ADCH chứa 2 bit cao trong 10bit kết quả), và nếu ADLAR=1 thì kết quả được hiệu chỉnh trái (thanh ghi ADCH
Trang 24chứa trọn 8 bit cao nhất, các bit từ 9 đến 2, và thanh ADCL chứa 2 bit thấp nhấttrong 10 bit kết quả (bạn xem hình cách bố trí 2 thanh ghi ADCL và ADCH bêndưới để hiểu rõ hơn).
- Bits 4:0-MUX4:0 (Analog Channel and Gain Selection Bits): là 5 bit chophép chọn kênh, chế độ và cả hệ số khuyếch đại cho ADC Do bộ ADC trên AVR
có nhiều kênh và cho phép thực hiện chuyển đổi ADC kiểu so sánh (so sánh điện ápgiữa 2 chân analog) nên trước khi thực hiện chuyển đổi, chúng ta cần set các bitMUX để chọn kênh và chế độ cần sử dụng Bảng 3 tóm tắt các chế độ hoạt động củaADC thông qua các giá trị của các bit MUX Trong bảng này, ứng với các giá trị từ
00000 đến 00111 (nhị phân), các kênh ADC được chọn ở chế độ đơn kênh (tín hiệuinput lấy trực tiếp từ các chân analog và so sánh với 0V), giá trị từ 01000 đến 11101tương ứng với chế độ chuyển đổi so sánh
Trang 25Bảng 3: Chọn chế độ chuyển đổi.
Trang 26- ADCSRA (ADC Control and Status RegisterA): là thanh ghi chính điều
khiển hoạt động và chứa trạng thái của module ADC
Từng bit của thanh ghi ADCSRA được mô tả như bên dưới:
- Bit 7 - ADEN(ADC Enable): viết giá trị 1 vào bit này tức bạn đã cho phépmodule ADC được sử dụng Tuy nhiên khi ADEN=1 không có nghĩa là ADC đãhoạt động ngay, bạn cần set một bit khác lên 1 để bắt đầu quá trình chuyển đổi, đó làbit ADSC
- Bit 6 - ADSC(ADC Start Conversion): set bit này lên 1 là bắt đầu khởi độngquá trình chuyển đổi Trong suốt quá trình chuyển đổi, bit ADSC sẽ được giữnguyên giá trị 1, khi quá trình chuyển đổi kết thúc (tự động), bit này sẽ được trả về
0 Vì vậy bạn không cần và cũng không nên viết giá trị 0 vào bit này ở bất kỳ tìnhhuống nào Để thực hiện một chuyển đổi, thông thường chúng ta sẽ set bit ADEN=1trước và sau đó set ADSC=1
- Bit 4 – ADIF(ADC Interrupt Flag): cờ báo ngắt Khi một chuyển đổi kết thúc,bit này tự động được set lên 1, vì thế người dùng cần kiểm tra giá trị bit này trướckhi thực hiện đọc giá trị chuyển đổi để đảm bảo quá trình chuyển đổi đã thực sựhoàn tất
- Bit 3 – ADIE(ADC Interrupt Enable): bit cho phép ngắt, nếu bit này được setbằng 1 và bit cho phép ngắt toàn cục (bit I trong thanh ghi trạng thái của chip) đượcset, một ngắt sẽ xảy ra khi một quá trình chuyển đổi ADC kết thúc và các giá trịchuyển đổi đã được cập nhật (các giá trị chuyển đổi chứa trong 2 thanh ghi ADCL
và ADCH)
- Bit 2:0 – ADPS2:0(ADC Prescaler Select Bits): các bit chọn hệ số chia xungnhịp cho ADC ADC, cũng như tất cả các module khác trên AVR, cần được giữ nhịpbằng một nguồn xung clock Xung nhịp này được lấy từ nguồn xung chính của chip
Trang 27thông qua một hệ số chia Các bit ADPS cho phép người dùng chọn hệ số chia từnguồn clock chính đến ADC Tham khảo bảng 4 để biết cách chọn hệ số chia.
Bảng 4: Hệ số chia xung nhịp cho ADC
- ADCL và ADCH (ADC Data Register): 2 thanh ghi chứa giá trị của quá trình
chuyển đổi Do module ADC trên AVR có độ phân giải tối đa 10 bits nên cần 2thanh ghi để chứa giá trị chuyển đổi Tuy nhiên tổng số bít của 2 thanh ghi 8 bit là
16, con số này nhiều hơn 10 bit của kết quả chuyển đổi, vì thế chúng ta được phépchọn cách ghi 10 bit kết quả vào 2 thanh ghi này Bit ADLAR trong thanh ghiADMUX quy định cách mà kết quả được ghi vào