Công nghệ cảm ứng đã thực sự xuất hiện từ nhiều năm nay, tuy nhiên trong vòng những năm gần đây công nghệ này mới được sử dụng phổ biến trong cuộc sống vì xu thế hiện đại chạm sẽ thay thể ấn. Với phát triển của công nghệ, cảm ứng điện dung không chỉ thây thế các phím bấm bình thường mà nó còn được sử dụng trong các màn hình cảm ứng của những chiếc smart phone tiện ích ngày nay. Công nghệ cảm ứng điện dung đã được rộng rãi trong các thiết bị dân dụng như bếp từ, bếp điện, các thiết bị điều khiển…
LỜI NÓI ĐẦU Cảm ứng điện dung ngày khơng xa lạ với Cảm ứng điện dung ứng dụng phổ biến Từ bàn phím thiết bị gia đình sản phẩm cao cấp điện thoại thông minh Công nghệ đại cho phép tạo thiết bị ngày tiện dụng tránh việc sử dụng phím cứng nhắc Công nghệ cảm ứng thực xuất từ nhiều năm nay, nhiên vòng năm gần công nghệ sử dụng phổ biến sống xu đại chạm thay thể ấn Với phát triển công nghệ, cảm ứng điện dung không thây phím bấm bình thường mà sử dụng hình cảm ứng smart phone tiện ích ngày Cơng nghệ cảm ứng điện dung rộng rãi thiết bị dân dụng bếp từ, bếp điện, thiết bị điều khiển… Từ ứng dụng thực tế phổ biến Chúng em tìm hiểu đề tài nhỏ liên quan tới cảm ứng điện dung Nhờ có giúp đỡ thầy : Nguyễn Hữu Trung chúng em hồn thành đề tài: Thiết kế điều khiển điện cảm ứng điện dung Chúng em mong có góp ý từ thầy MỤC LỤC CHƯƠNG 1:TÌM HIỂU VỀ CẢM ỨNG ĐIỆN DUNG TRÊN DỊNG VI ĐIỀU KHIỂN MSP430 1.1 TÌM HIỀU MSP430 1.1.1 Tổng quan MSP430 MSP 430 họ vi điều khiển cấu trúc RISC 16-bit sản xuất công ty Texas Instruments MSP chữ viết tắt “MIXED SIGNAL MICROCONTROLLER” Là dòng vi điều khiển siêu tiết kiệm lượng, sử dụng nguồn thấp, khoảng điện áp nguồn cấp từ 1.8V – 3.6V MSP 430 kết hợp đặc tính CPU đại tích hợp sẵn module ngoại vi Đặc biệt Chíp MSP 430 giải pháp thích hợp cho ứng dụng yêu cầu trộn tín hiệu a Thơng tin tổng qt - Ở chế độ rỗi, tiêu thụ dòng bé uA - Tốc độ CPU tối đa dòng MSP430 25Mhz (tùy chip) - Có chế độ lower-power khác nhau, thời gian wake-up nhỏ 1us - Tùy theo dòng chip mà tích hợp hay nhiều chức sau: dao động nội, timer, PWM, Wacthdog, USART, SPI, I2C, 10/12/14/16-bit ADCs, Comparators, on chip op-amps, 12-bit DAC, LCD driver, hardware multiplier, USB, DMA - Hạn chế: MSP430 bus nhớ ngồi (external memory bus ), nên bị hạn chế với nhớ on-chip (tối đa 256KB Flash memory 16KB RAM – tùy chip) Do MSP430 khơng phù hợp với hệ thống nhúng phức tạp, đòi hỏi nhớ đệm bảng tra có kích thước lớn b Tên tuổi dòng MSP430 Hình 1.0 Các dòng MSP430 Những nhìn hình rõ ràng khơng giải thích thêm đây: - Loại nhớ ROM, F: Flash ROM (thông dụng nhất), C: masked ROM, P: One-Time programmed, E: UV-eraseable EPROM, R: RAM-only - Generation ( Đời chip): Thường số lớn phức tạp, nhiều chức năng, giá cao (tất nhiên có ngoại lệ) - Trong đời chip có nhiều model Cái số nằm tên model đời chip ghi [5] - Họ (phân loại theo kích thước nhớ cấu hình ngoại vi) theo bảng sau: Bảng 1.0 Phân loại kích thước nhớ kích thước ngoại ngoại vi c Những đặc tính dòng MSP 430 bao gồm: - Điện áp nguồn: 1.8V – 3.6V - Mức tiêu thụ lượng thấp - Chế độ hoạt động: 270 µA 1MHz, 2.2V - Chế độ chờ : 0.7 µA - Chế độ tắt (RAM trì): 0.1 µA - Thời gian đánh thức từ chế độ Standby nhỏ 1µs - Cấu trúc RISC-16 bit, thời gian chu kỳ lệnh 62.5ns - Cấu hình module Clock bản: - Tần số nội lên tới 16 MHz với hiệu chỉnh tần số ± 1% - Thạch anh 32 KHz - Tần số làm việc lên tới 16 MHz - Bộ cộng hưởng - Nguồn tạo xung nhịp bên - Điện trở bên ngồi - Timer_A 16 bit với ghi hình, ghi so sánh độ rộng 16 bit - Timer_B 16 bit với ghi hình, ghi so sánh độ rộng 16 bit - Giao diện truyền thống nối tiếp - Hỗ trợ truyền thống nối tiếp nâng cao UART, tư động dò tìm tốc độ Baund - Bộ mã hóa giải mã IrDA (infrared Data Associatio) - Chuẩn giao tiếp đồng SPI - Chuẩn giao tiếp I2C - Bộ chuyển đổi ADC 10 bit, 200 ksps với điện áp tham chiết nội, lấy mẫu chốt Tự đông quét kênh, điều khiển chuyển đổi liệu - Hai khuyếch đại thuật toán (hoạt động) định cấu hình ( MSP430x22x4) - Bảo vệ sụt áp - Bộ nạp chương trình - Module mơ chip MSP430 sử dụng biết đến đặc biệt ứng dụng thiết bị đo có sử dụng khơng sử dụng LCD với chế độ nguồn nuôi thấp Với chế độ nguồn nuôi từ khoảng 1,8 đến 3,6v chế độ bảo vệ nguồn Với tiêu thụ dòng thấp chế độ tích cực dòng tiêu thụ 200uA, 1Mhz, 2.2v; với chế độ standby dòng tiêu thụ 0.7uA Và chế độ tắt trì nhớ Ram dòng tiêu thụ nhỏ 0.1uA MSP430 có ưu chế độ nguồn nuôi Thời gian chuyển chế độ từ chế độ standby sang chế độ tích cực nhỏ (< 6us) Và có tích hợp 96 kiểu hình cho hiển thị LCD 16 bit ghi, 16 bit RISC CPU Có đặc điểm họ nhà MSP MCU khơng có tín hiệu dao động ngoại, MSP tự động chuyển sang hoạt động chế độ dao động nội 1.2 CẢM ỨNG ĐIỆN DUNG TRÊN MSP430 1.2.1 Cảm ứng điện dung a Định nghĩa: Cảm ứng điện dung thay đổi mặt điện tích tụ điện có chạm vào vật b Cảm ứng điện dung vi khiển MSP430 Có nhiều cách để xác định thay đổi, phương pháp kinh điển đưa từ năm 1976 nạp tích điện cho tụ, sau cho tụ xả dần điện tích qua điện trở đo thời gian xả tụ, so sánh thời gian lần xả để xác nhận nút bấm Ở MSP430 xác định cách đếm số xung dao động tạo phần cứng bên VĐK tụ điện nối vào chân VĐK Khi tụ điện chân nối vào VĐK thay đổi số xung dao động tạo thay đổi VĐK đo thay đổi Có cách đo điện dung MSP430: + Cách đo RO (Relaxation Oscillator): Hình 1.1 Cách đo RO Đây sơ đồ bên chân dao động MSP430 hỗ trợ cảm ứng điện dung Trong khoảng thời gian Gate Time cố định, MSP430 đếm số dao động, điện dung thay đổi số xung đếm thay đổi Từ đưa giá trị điện dung + Cách đo RC (Resistor-Capacitor Timer Constant Measurement): Hình 1.2 Cách đo RC Ở cách đo này, MSP430 đếm số xung định Với giá trị tụ điện thời gian để đếm hết số xung xác định khác Dựa vào điểm mà ta tính tốn giá trị tụ điện tương ứng Từ ta xác định phím cảm ứng có nhấn hay không đưa thông số độ điện dung tụ đo c Bàn phím cảm ứng Ở TI KIT Launchpad, mặt cảm ứng hỗ trợ nhà sản xuất theo sơ đồ hình vẽ sau: Hình 1.3 Bàn phím cảm ứng điện dung hãng Vậy chân cần đặt output đề xuất xung dao động nhằm đếm xung ví dụ P2.0, P2.1, P2.2, P2.3, P2.4, P2.5 Mỗi pad chiếm diện tích đó, tụ điện, mặt cảm ứng tụ thứ Khi chạm vào mặt gần với pad hiệu ứng thay đổi điện dung pad rõ ràng nhất, làm thay đổi thông số đo tương ứng với chân VĐK Hình 1.4 Sự thay đổi điện dung tác động Tương ứng với trạng thái bị chạm hay nhiều, nhiễu, cần đặt hai thông số: - threshold: điện dung tối thiểu phải mức nhận lần nhấn vào pad - maxResponse: điện dung tối đa đếm được, cao đặt mức Khi chạm tay vào mặt cảm ứng, pad thay đổi điện dung, pad bị chạm diện tích lớn thay đổi điện dung nhiều nhất, dựa vào threshold maxResponse xem nút có diện tích chạm lớn xử lí Hình 2.1 Sơ đồ tồn mạch điều khiển phát RF J41 V out R 49 100k Q J45 V out D A1 C O N R ELAY SPD T G N D 51 D IO D E R 50 100k LS R 46 Q R 51 100k R ELAY SPD T J47 V out D A3 C O N 2 Q G N R ELAY SPD T D 54 D IO D E R 52 100k ~220V - LS5 Q C O N R E LA Y S PD T M O SF ET_EN _G D S D 53 G N R 48 D A2 330 LE D ~220V - LS M O S F E T_EN _G D S R 47 D A1 J46 V out D 52 D IO D E D 44 G N 330 C O N 2 M O S F ET_EN _G D S D 43 D A2 G N M O S FET_EN _G D S D A0 ~220V - ~220V + ~220V + G N ~220VLS2 ~220V + D 45 D IO D E ~220V+ D A0 D 55 G N D A3 330 LED R 53 G N 330 LED LE D J48 Vout G D D D D N A A A A 3 C O N J7 J8 C O N J10 C O N C O N Hình 2.2 Sơ đồ tồn mạch khối thu vào điều khiển replay Khối nguồn Hình 2.3 Sơ đồ khối nguồn - J6 Giắc cắm nguồn DC : Để lấy nguồn điện từ adapter nuôi thiết bị hoạt động - J49 Công tắc bật tắt nguồn - D1 Diode bảo vệ ngược nguồn DC - U4 IC nguồn lm7805cho điện áp 5V ổn định nuôi LCD thiết bị khác - U3 IC nguồn Lm1117 cho điện áp 3.3V ổn định nuôi vi điều khiển J9 C O N - R điện trở hạn dòng cho LED - D2 D3 LED báo nguồn 5V 3.3V 2.1.1 Chân nạp Hình 2.4 Chân nạp J5: Chân nạp có chức nạp chương trình từ máy tính cho MSP430 2.1.3 Khối bàn phím Hình 2.5 Khối phím bấm cứng phím cảm ứng SW4 : nút reset dùng để reset mạch SW5,6,7,8 : phím cảm ứng C4, R4 : tụ điện điện trở để chống nhiễu cho phím reset 2.1.4 Khối hiển thị Hình 2.6 LCD Chân 1: VSS nguồn GND Chân 2: VCC Nguồn +5V Chân 3: Vee Chỉnh độ tương phản Chân 4: RS mức logic 0/1 0->nhập lệnh, 1-> nhập liệu Chân 5: R/W mức logic 0/1 0-> ghi liệu, 1-> đọc liệu Chân 6: E mức logic 1,1/0 tín hiệu cho phép Chân 7: DB0 bus liệu Chân : DB1 bus liệu Chân 9: DB2 bus liệu Chân 10: DB3 bus liệu Chân 11: DB4 bus liệu Chân 12: DB5 bus liệu Chân 13: DB6 bus liệu Chân 14: DB7 bus liệu Chân 15: Lamp- Điện LCD 2.1.5 Khối điều khiển thiết bị điện Hình 2.7 Sơ đồ khối điều khiển Đây khối điều khiển thiết bị điện mạch điều khiển Đèn led D55 để báo hiệu thiết bị bật hay tắt R53 : điện trở hạn dòng cho led D55 LS5: rơ le để đóng ngắt thiết bị điện J47: nối thiết bị điện cần điều khiển D54: diode chống dòng ngược từ rơ le Q7: Mosfet để điều kiển rơ le 2.2 CÁC LINH KIỆN SỬ DỤNG 2.2.1 Chip MSP430G2553 Hình 2.7MSP430G2553 Chip MSP430G2553: chip vi điều khiển 16 bit TI, hỗ trợ nhiều phần cứng phần mềm nên chúng em lựa chọn MSP430G2553 thuộc dòng G mang gần đầy đủ tính dòng MSP430 giới thiệu 2.2.2 LCD1602 Hình 2.8 LCD1602 2.2.3 Rơ le 5V Hình 2.9 Rơ le Điều khiển với điện áp 5V DC đóng ngắt thiết bị điện tối đa lên tới 250VAC – 10A 30VDC – 10A 2.2.4 IC7805 Sơ đồ phía IC 7805 có chân: - Chân số chân IN - Chân số chân GND - Chân số chân OUT Hình 2.10 IC7805 Ngõ OUT ln ổn định 5V dù điện áp từ nguồn cung cấp thay đổi.Mạch dùng để bảo vệ mạch điện hoạt động điện áp 5V (các loại IC thường hoạt động điện áp này) Nếu nguồn điện có cố đột ngột: điện áp tăng cao mạch điện hoạt động ổn định nhờ có IC 7805 giữ điện áp ngõ OUT 5V không đổi 2.3 LAYOUT Hình 2.11 Mach layout điêu khiển trung tâm Hình 2.12 Layout khoi thu điều khiển replay CHƯƠNG 3: THIẾT KẾ PHẦN MỀM 3.1 YÊU CẦU - Hiển thị lên hình LCD - Điều khiển thiết bị điện 3.2 CODE #include /* Define User Configuration values */ /* */ /* Defines WDT SMCLK interval for sensor measurements*/ #define WDT_meas_setting (DIV_SMCLK_512) /* Defines WDT ACLK interval for delay between measurement cycles*/ #define WDT_delay_setting (DIV_ACLK_512) /* Sensor settings*/ #define NUM_SEN #define KEY_LVL 220 press /*Set to ~ half the max delta expected*/ // Defines number of sensors // Defines threshold for a key /* Definitions for use with the WDT settings*/ #define DIV_ACLK_32768 (WDT_ADLY_1000) // #define DIV_ACLK_8192 (WDT_ADLY_250) // #define DIV_ACLK_512 (WDT_ADLY_16) // #define DIV_ACLK_64 (WDT_ADLY_1_9) // #define DIV_SMCLK_32768 (WDT_MDLY_32) // #define DIV_SMCLK_8192 (WDT_MDLY_8) // #define DIV_SMCLK_512 (WDT_MDLY_0_5) // #define DIV_SMCLK_64 (WDT_MDLY_0_064) // #define LED_1 #define LED_2 (0x01) (0x40) ACLK/32768 ACLK/8192 ACLK/512 ACLK/64 SMCLK/32768 SMCLK/8192 SMCLK/512 SMCLK/64 // P1.0 LED output // P1.6 LED output // Global variables for sensing unsigned int base_cnt[NUM_SEN]; unsigned int meas_cnt[NUM_SEN]; int delta_cnt[NUM_SEN]; unsigned char key_press[NUM_SEN]; char key_pressed; int cycles; const unsigned char electrode_bit[NUM_SEN]={BIT1, BIT2, BIT4, BIT5}; /* System Routines*/ void measure_count(void); // Measures each capacitive sensor void pulse_LED(void); // LED gradient routine /* Main Function*/ int main(void) { unsigned int i,j; WDTCTL = WDTPW + WDTHOLD; if (CALBC1_1MHZ==0xFF) constant erased { while(1); } DCOCTL = 0; settings BCSCTL1 = CALBC1_1MHZ; DCOCTL = CALDCO_1MHZ; BCSCTL3 |= LFXT1S_2; IE1 |= WDTIE; P2SEL = 0x00; P1DIR = LED_1 + LED_2; P1OUT = 0x00; bis_SR_register(GIE); measure_count(); for (i = 0; i0; i ) // Repeat and avg base measurement { measure_count(); for (j = 0; j 1; // Re-average quickly delta_cnt[i] = 0; // Zero out for pos determination } if (delta_cnt[i] > j) // Determine if each key is pressed { // per a preset threshold key_press[i] = 1; // Specific key pressed j = delta_cnt[i]; key_pressed = i+1; } else key_press[i] = 0; // key pressed } /* Delay to next sample, sample if (key_pressed) { BCSCTL1 = (BCSCTL1 & 0x0CF) + cycles = 20; } else { cycles ; if (cycles > 0) BCSCTL1 = (BCSCTL1 & 0x0CF) else { BCSCTL1 = (BCSCTL1 & 0x0CF) cycles = 0; } } WDTCTL = WDT_delay_setting; more slowly if no keys are pressed*/ DIVA_0; // ACLK/(0:1,1:2,2:4,3:8) + DIVA_0; // ACLK/(0:1,1:2,2:4,3:8) + DIVA_3; // ACLK/(0:1,1:2,2:4,3:8) // WDT, ACLK, interval timer /* Handle baseline measurment for a base C increase*/ if (!key_pressed) // Only adjust baseline down { // if no keys are touched for (i = 0; i