Trong dự án này, chúng ta sẽ giao tiếp LDR với vi điều khiển ATMEGA8, và với điều này, chúng ta có thể đo MỨC ĐỘ ÁNH SÁNG trong khu vực. Trong ATMEGA8, chúng tôi sẽ sử dụng tính năng 10bit ADC (Analog to Digital Conversion) để đo cường độ ánh sáng.
Am LDR là một đầu dò thay đổi điện trở của nó khi LIGHT rơi trên bề mặt của nó thay đổi. Cảm biến LDR có nhiều kích cỡ và hình dạng khác nhau.
LDR được làm từ vật liệu bán dẫn để cho phép chúng có đặc tính nhạy sáng. Có nhiều loại vật liệu được sử dụng, nhưng một loại vật liệu phổ biến là CADMIUM SULPHIDE (CdS). Các LDR hoặc BỘ ĐĂNG KÝ ẢNH này hoạt động dựa trên nguyên tắc “Độ dẫn ảnh”. Bây giờ nguyên tắc này nói gì là bất cứ khi nào ánh sáng rơi trên bề mặt của LDR (trong trường hợp này) thì độ dẫn của phần tử tăng lên hay nói cách khác là điện trở của LDR giảm khi ánh sáng rơi trên bề mặt của LDR. Tính chất giảm điện trở của LDR này đạt được vì nó là đặc tính của vật liệu bán dẫn được sử dụng trên bề mặt. LDR thường được sử dụng để phát hiện sự hiện diện của ánh sáng hoặc để đo cường độ ánh sáng.
Có nhiều loại LDR khác nhau như thể hiện trong hình trên và mỗi loại có thông số kỹ thuật khác nhau. Thông thường, một LDR sẽ có 1MΩ-2MΩ ở toàn bộ bóng tối, 10-20KΩ ở 10 LUX, 2-5KΩ ở 100 LUX. Đồ thị kháng LUX điển hình của một LDR được thể hiện trong hình.
Như trong hình trên, điện trở giữa hai tiếp điểm của cảm biến giảm khi cường độ ánh sáng hoặc độ dẫn giữa hai tiếp điểm của cảm biến tăng lên.
Bây giờ để chuyển đổi sự thay đổi này trong điện trở thành sự thay đổi điện áp, chúng ta sẽ sử dụng mạch phân áp. Trong mạng điện trở này, chúng ta có một điện trở không đổi và điện trở khác. Như trong hình, R1 ở đây là điện trở không đổi và R2 là cảm biến FORCE hoạt động như một điện trở.
Điểm giữa của nhánh được lấy để đo. Khi điện trở R2 thay đổi, Vout thay đổi theo tuyến tính. Vì vậy, với điều này, chúng tôi có một điện áp thay đổi theo trọng lượng.
Bây giờ điều quan trọng cần lưu ý ở đây là, đầu vào được bộ điều khiển thực hiện để chuyển đổi ADC thấp nhất là 50µAmp. Hiệu ứng tải của bộ chia điện áp dựa trên điện trở này rất quan trọng vì dòng điện được rút ra từ Vout của bộ chia điện áp làm tăng tỷ lệ phần trăm lỗi tăng lên, bây giờ chúng ta không cần phải lo lắng về hiệu ứng tải.
Những gì chúng ta sẽ làm ở đây là chúng ta sẽ lấy hai điện trở và tạo thành một mạch chia sao cho Vin 25Volt, chúng ta nhận được 5Volt Vout. Vì vậy, tất cả những gì chúng ta phải làm là nhân giá trị Vout với "5" trong chương trình để có được điện áp đầu vào thực.
Các thành phần
Phần cứng: ATMEGA8, nguồn điện (5v), AVR-ISP PROGRAMMER, JHD_162ALCD (16 * 2LCD), tụ điện 100uF, tụ điện 100nF (5 miếng), điện trở 10KΩ, LDR (Điện trở phụ thuộc ánh sáng).
Phần mềm: Atmel studio 6.1, progisp hoặc flash magic.
Sơ đồ mạch & Giải thích hoạt động
Trong mạch PORTD của ATMEGA8 được kết nối với màn hình LCD cổng dữ liệu. Trong LCD 16 * 2 có 16 chân trên tất cả nếu có đèn nền, nếu không có đèn nền sẽ có 14 chân. Người ta có thể cấp nguồn hoặc để lại các chân đèn sau. Bây giờ trong 14 chân có 8 dữ liệu ghim (7-14 hoặc D0-D7), 2 chân cung cấp điện (1 & 2 hoặc VSS & VDD hoặc GND & + 5V), 3 thứ pin cho điều khiển độ tương phản (VEE-điều khiển như thế nào dày các nhân vật nên được hiển thị) và 3 chân điều khiển (RS & RW & E)
Trong mạch, bạn có thể quan sát thấy tôi chỉ lấy hai chân điều khiển. Bit tương phản và READ / WRITE không thường xuyên được sử dụng để chúng có thể được nối đất. Điều này đặt LCD ở chế độ đọc và độ tương phản cao nhất. Chúng ta chỉ cần điều khiển các chân ENABLE và RS để gửi các ký tự và dữ liệu cho phù hợp.
Các kết nối cho LCD được đưa ra dưới đây:
PIN1 hoặc VSS ------------------ mặt đất
PIN2 hoặc VDD hoặc VCC ------------ + Nguồn 5v
PIN3 hoặc VEE --------------- mặt đất (mang lại độ tương phản tối đa tốt nhất cho người mới bắt đầu)
PIN4 hoặc RS (Lựa chọn đăng ký) --------------- PB0 của uC
PIN5 hoặc RW (Đọc / Ghi) ----------------- mặt đất (đặt màn hình LCD ở chế độ đọc giúp giảm bớt giao tiếp cho người dùng)
PIN6 hoặc E (Bật) ------------------- PB1 của uC
PIN7 hoặc D0 ----------------------------- PD0 của uC
PIN8 hoặc D1 ----------------------------- PD1 của uC
PIN9 hoặc D2 ----------------------------- PD2 của uC
PIN10 hoặc D3 ----------------------------- PD3 của uC
PIN11 hoặc D4 ----------------------------- PD4 của uC
PIN12 hoặc D5 ----------------------------- PD5 của uC
PIN13 hoặc D6 ----------------------------- PD6 của uC
PIN14 hoặc D7 ----------------------------- PD7 của uC
Trong mạch các bạn có thể thấy chúng ta đã sử dụng giao tiếp 8bit (D0-D7) tuy nhiên đây không phải là điều bắt buộc, chúng ta có thể sử dụng giao tiếp 4bit (D4-D7) nhưng với giao tiếp 4 bit chương trình trở nên hơi phức tạp. Vì vậy, chỉ quan sát từ bảng trên, chúng tôi đang kết nối 10 chân của LCD với bộ điều khiển trong đó 8 chân là chân dữ liệu và 2 chân để điều khiển.
Điện áp trên R2 không hoàn toàn tuyến tính; nó sẽ là một ồn ào. Để lọc bỏ nhiễu, người ta đặt các tụ điện trên mỗi điện trở trong mạch chia như hình vẽ.
Trong ATMEGA8, chúng tôi có thể cung cấp đầu vào Analog cho bất kỳ kênh nào trong số BỐN kênh của PORTC, không quan trọng chúng tôi chọn kênh nào vì tất cả đều giống nhau. Chúng tôi sẽ chọn kênh 0 hoặc mã PIN0 của PORTC. Trong ATMEGA8, ADC có độ phân giải 10 bit, vì vậy bộ điều khiển có thể phát hiện sự thay đổi tối thiểu của Vref / 2 ^ 10, vì vậy nếu điện áp tham chiếu là 5V, chúng ta nhận được mức tăng đầu ra kỹ thuật số cho mỗi 5/2 ^ 10 = 5mV. Vì vậy, với mỗi mức tăng 5mV ở đầu vào, chúng ta sẽ có mức tăng là một ở đầu ra kỹ thuật số.
Bây giờ chúng ta cần thiết lập sổ đăng ký ADC dựa trên các điều khoản sau:
1. Trước hết chúng ta cần kích hoạt tính năng ADC trong ADC.
2. Ở đây sẽ nhận được điện áp đầu vào tối đa để chuyển đổi ADC là + 5V. Vì vậy, chúng tôi có thể thiết lập giá trị lớn nhất hoặc tham chiếu của ADC đến 5V.
3. Bộ điều khiển có tính năng chuyển đổi kích hoạt có nghĩa là chuyển đổi ADC chỉ diễn ra sau một trình kích hoạt bên ngoài, vì chúng tôi không muốn rằng chúng tôi cần đặt các thanh ghi để ADC chạy ở chế độ chạy tự do liên tục.
4. Đối với bất kỳ ADC nào, tần số chuyển đổi (giá trị Tương tự sang giá trị Kỹ thuật số) và độ chính xác của đầu ra kỹ thuật số tỷ lệ nghịch. Vì vậy, để có độ chính xác tốt hơn của đầu ra kỹ thuật số, chúng ta phải chọn tần số thấp hơn. Đối với đồng hồ ADC bình thường, chúng tôi đang đặt giá trị trước của ADC thành giá trị lớn nhất (2). Vì chúng tôi đang sử dụng đồng hồ bên trong 1MHZ, đồng hồ của ADC sẽ là (1000000/2).
Đây là bốn điều duy nhất chúng ta cần biết để bắt đầu với ADC.
Tất cả bốn tính năng trên được thiết lập bởi hai thanh ghi,
ĐỎ (ADEN): Bit này phải được đặt để kích hoạt tính năng ADC của ATMEGA.
BLUE (REFS1, REFS0): Hai bit này được sử dụng để đặt điện áp tham chiếu (hoặc điện áp đầu vào tối đa mà chúng ta sẽ cung cấp). Vì chúng ta muốn có điện áp tham chiếu 5V, REFS0 nên được thiết lập.
VÀNG (ADFR): Bit này phải được thiết lập để ADC chạy liên tục (chế độ chạy tự do).
PINK (MUX0-MUX3): Bốn bit này dùng để báo kênh đầu vào. Vì chúng ta sẽ sử dụng ADC0 hoặc PIN0, chúng ta không cần đặt bất kỳ bit nào như trên bảng.
BROWN (ADPS0-ADPS2): ba bit này dùng để thiết lập vị trí đặt trước cho ADC. Vì chúng tôi đang sử dụng một điểm đặt trước là 2, chúng tôi phải đặt một bit.
DARK GREEN (ADSC): bit này được thiết lập để ADC bắt đầu chuyển đổi. Bit này có thể bị vô hiệu hóa trong chương trình khi chúng ta cần dừng chuyển đổi.
Vì vậy, với điện trở của LDR trên màn hình LCD 16x2, chúng ta có thể so khớp nó với đồ thị LUX để nhận cường độ ánh sáng.