This is default featured slide 1 title
Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.
This is default featured slide 2 title
Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.
This is default featured slide 3 title
Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.
This is default featured slide 4 title
Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.
This is default featured slide 5 title
Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.
Chủ Nhật, 6 tháng 12, 2015
Thứ Hai, 9 tháng 2, 2015
TỤ ĐIỆN
Bài viết: Tụ điện
Nguồn Zing Blog
Cảm biến siêu âm SRF05
Cảm biến SRF05 là một loại cảm biến khoảng cách dựa trên nguyên lý thu phát siêu âm. Cảm biến gồm một bộ phát và một bộ thu sóng siêu âm. Sóng siêu âm từ đầu phát truyền đi trong không khí, gặp vật cản (vật cần đo khoảng cách tới) sẽ phản xạ ngược trở lại và được đầu thu ghi lại. Vận tốc truyền âm thanh trong không khí là một giá trị xác định trước, ít thay đổi. Do đó nếu xác định được khoảng thời gian từ lúc phát sóng siêu âm tới lúc nó phản xạ về đầu thu sẽ quy đổi được khoảng cách từ cảm biến tới vật thể. Cảm biến SRF05 cho khoảng cách đo tối đa lên tới 3-4 mét.
Tổng quan
SRF05 có thể thiết lập cách hoạt động thông qua các chân điều khiển MODE. Nối hoặc không nối chân MODE xuống GND cho phép cảm biến được điều khiển thông qua giao tiếp dùng 1 chân hay 2 chân IO.
Cách 1 – Tách riêng chân TRIGGER và ECHO (tương thích với cảm biến SRF04)
Modun cảm biến SRF05 có hai chân TRIGGER và ECHO riêng biệt. Khi chân MODE để trống (chân MODE có điện trở kéo lên VCC, khi để trống nó sẽ nhận mức điện áp VCC) SRF05 sẽ sử dụng cả 2 chân chức năng TRIGGER và ECHO cho việc điều khiển hoạt động của cảm biến.
Từ hình vẽ mô tả trên, để điều khiển SRF05 ở MODE1 cần cấp cho chân TRIGGER một xung điều khiển với độ rộng tối thiểu 10uS. Sau đó một khoảng thời gian, đầu phát sóng siêu âm sẽ phát ra sóng siêu âm, vi xử lý tích hợp trên modun sẽ tự xác định thời điểm phát sóng siêu âm và thu sóng siêu âm. Vi xử lý tích hợp này sẽ đưa kết quả thu được ra chân ECHO. Độ rộng xung vuông tại chân ECHO tỉ lệ với khoảng cách từ cảm biến tới vật thể.
Cách 2: Sử dụng một chân cho cả TRIGGER và ECHO
Ở chế độ này, một chân của vi xử lý sẽ điều khiển quá trình phát xung của cảm biến siêu âm và việc đọc tín hiệu trả về. Yêu cầu lúc đó chân MODE cần được nối đất (GND). Đầu tiên xuất một xung với độ rộng tối thiểu 10uS vào chân TRIGGER-ECHO (chân số 3) của cảm biến. Sau đó vi xử lý tích hợp trên cảm biến sẽ phát ra tín hiệu điều khiển đầu phát siêu âm. Sau 700uS kể từ lúc kết thúc tín hiệu điều khiển, từ chân TRIGGER-ECHO có thể đọc ra một xung mà độ rộng tỉ lệ với khoảng cách từ cảm biến tới vật thể.
Video trên youtube:
Sử dụng IC PT2262 và PT2272 trong Điều khiển từ xa
Sử dụng IC PT2262 và PT2272 trong Điều khiển từ xa
Tóm lại bạn xài cặp này bạn có thể làm mạch RF rồi lấy data ở ngõ ra pt2262 và trả lại data cho pt2272, rồi toàn quyền xử lý(có thể nối với vi điều khiển) hoặc mua mạch RF có bán sẵn rồi nối với cặp pt là xong.
Sơ đồ mạch phát dùng PT2262:
Sơ đồ mạch thu dùng PT2272:
Theo : ant7.com/forum
Cặp ic PT2262 và PT2272 có rất nhiều hữu ích trong công việc mã hóa , giải mã hay điều khiển. Giá mua lẻ có 5500 đ --> 6000 đ 1 con.
Giới thiệu: PT2262 và PT2272 là sản phẩm của Princeton Technology được phát triển và ra đời sau dòng mã hóa 12E/D của hãng Holtek.
PT2262 có 2 loại chính : loại có 8 địa chỉ mã hóa , 4 địa chỉ dữ liệu và loại có 6 địa chỉ mã hóa và 6 địa chỉ dữ liệu. Mã hóa 12 bit 1 khung A0-->A7, D0-->D3.
Các linh kiện PT2262 đưa vào việt Nam chỉ có loại PT2262 với 8 địa chỉ mã hóa và 4 địa chỉ dữ liệu.
Tương tự với PT2262 có 2 kiểu thì PT2272 cũng có 2 kiểu:
PT2262 có 2 loại chính : loại có 8 địa chỉ mã hóa , 4 địa chỉ dữ liệu và loại có 6 địa chỉ mã hóa và 6 địa chỉ dữ liệu. Mã hóa 12 bit 1 khung A0-->A7, D0-->D3.
Các linh kiện PT2262 đưa vào việt Nam chỉ có loại PT2262 với 8 địa chỉ mã hóa và 4 địa chỉ dữ liệu.
Tương tự với PT2262 có 2 kiểu thì PT2272 cũng có 2 kiểu:
- PT2272 có 8 địa chỉ giải mã và 4 dữ liệu đầu ra thường được kí hiệu: T2272 - L4
- PT2272 có 6 địa chỉ giải mã và 6 giữ liệu ra: kí hiệu PT2272 - L6 .
Loại L4 là thông dụng ở việt nam và ít có loại L6.
PT2262 có " 3 mũ 12 " mã hóa tức là có thể mã hóa 531441 mã mới có thể trùng lặp lại. So với thằng anh HT12E ra đời trước nó thì nó trội hơn hẳn về cái khoản mật mã này. ( HT12E chỉ có 2 mũ 12 mã hóa ).
Cách mã hóa PT2262 có thể làm được bằng cách nối ngắn mạch các chân "mã hóa địa chỉ " lên dương nguồn (mã hóa +) và xuống âm nguồn (mã hóa -) hoặc có thể bỏ trống (mã hóa 0).
+ Dữ liệu + mã hóa được truyền trên một khung 12 bit gồm 8 bit đầu là mã hóa (A0-->A7 ) và 4 dữ liệu . Bởi vậy bạn có thể truyền được song song 4 bit dữ liệu 0 hoặc 1. Nếu để truyền dữ liệu thì nên để mặc định cho 4 chân dữ liệu này là 0 hoặc là 1 bằng cách nối thêm điện trở " kéo lên " hoặc " đưa xuống GND) để tránh nhiễu.
PT2262 dùng dao động ngoài: đơn giản là chỉ cần lắp thêm 1 điện trở dao động vào chân 15 và chân 16 của PT2262.
+ Tín hiệu encoder được đưa ra ở chân 17 của PT2262, chân này thường ở mức 1 khi tín hiệu nghỉ và mức 0 khi tín hiệu hoạt động.
Tín hiệu đưa ra gồm : sóng mang dao động < 700KHz + địa chỉ mã hóa + dữ liệu.
+ Tần số Sóng mang dao động được quyết định bởi R chân 15 và 16 và được tính bằng : f = R/12 . Ví dụ : mắc điện trở 470k vào chân 15 và 16 đầu ra chân 17 sẽ có 470/12 = khoảng 39Khz ( cái này có thể làm điều khiển hoặc truyền dữ liệu bằng hồng ngoại với con PT2262 đấy nhé. )
(PT2262 có điện áp rộng : Có thể làm việc được từ 2,5V đến 15 V . Trong datasheet của nó là từ 4 V nhưng qua thời gian rất dài làm việc và nghiên cứu con này có thể khẳng định được về điện áp của nó làm việc rất thấp. --- " đã từng chế tạo và xuất xưởng gần 1 vạn mạch sử dụng cặp PT2262 và PT2272 để làm điều khiển ".
PT2272 là con giải mã của PT2262 nó cũng có 8 địa chỉ giải mã tương ứng + 4 dữ liệu ra + 1 chân báo hiệu mã đúng VT ( chân 17 ).
Cách giải mã như sau : Chân 15 và 16 cũng cần một điện trở để làm dao động giải mã . Trong dải hồng ngoại hoặc dưới 100KHz có thể dùng R rất lớn hoặc không cần. Nhưng từ khoảng 100KHz dao động trở lên --- thì bắt buộc phải dùng R để tạo dao động cho PT2272.
Giá trị R của PT2272 sẽ bằng khoảng : ( Giá trị R của PT2262) chia cho 10
---> ví dụ : PT2262 mắc điện trở 4,7 megaom thì PT2272 sẽ mắc 470k
Giải mã : các chân mã hóa của PT2262 ( chân 1 đến chân 8 ),nối thế nào thì các chân giải mã của PT2272 cũng phải nối tương tự như vậy.
Chân nào nối dương, chân nào nối âm, chân nào bỏ trống ...v.v thì chân ( 1 đến 8 )của PT2272 hãy làm như thế . Khi truyền một mã đúng và giải mã đúng thì chân 17 của PT2272 sẽ có điện áp cao đưa ra , báo hiệu là đã đúng mã hóa. 4 chân dữ liệu có thể truyền song song, nối tiếp rất động lập.
PT2262 có " 3 mũ 12 " mã hóa tức là có thể mã hóa 531441 mã mới có thể trùng lặp lại. So với thằng anh HT12E ra đời trước nó thì nó trội hơn hẳn về cái khoản mật mã này. ( HT12E chỉ có 2 mũ 12 mã hóa ).
Cách mã hóa PT2262 có thể làm được bằng cách nối ngắn mạch các chân "mã hóa địa chỉ " lên dương nguồn (mã hóa +) và xuống âm nguồn (mã hóa -) hoặc có thể bỏ trống (mã hóa 0).
+ Dữ liệu + mã hóa được truyền trên một khung 12 bit gồm 8 bit đầu là mã hóa (A0-->A7 ) và 4 dữ liệu . Bởi vậy bạn có thể truyền được song song 4 bit dữ liệu 0 hoặc 1. Nếu để truyền dữ liệu thì nên để mặc định cho 4 chân dữ liệu này là 0 hoặc là 1 bằng cách nối thêm điện trở " kéo lên " hoặc " đưa xuống GND) để tránh nhiễu.
PT2262 dùng dao động ngoài: đơn giản là chỉ cần lắp thêm 1 điện trở dao động vào chân 15 và chân 16 của PT2262.
+ Tín hiệu encoder được đưa ra ở chân 17 của PT2262, chân này thường ở mức 1 khi tín hiệu nghỉ và mức 0 khi tín hiệu hoạt động.
Tín hiệu đưa ra gồm : sóng mang dao động < 700KHz + địa chỉ mã hóa + dữ liệu.
+ Tần số Sóng mang dao động được quyết định bởi R chân 15 và 16 và được tính bằng : f = R/12 . Ví dụ : mắc điện trở 470k vào chân 15 và 16 đầu ra chân 17 sẽ có 470/12 = khoảng 39Khz ( cái này có thể làm điều khiển hoặc truyền dữ liệu bằng hồng ngoại với con PT2262 đấy nhé. )
(PT2262 có điện áp rộng : Có thể làm việc được từ 2,5V đến 15 V . Trong datasheet của nó là từ 4 V nhưng qua thời gian rất dài làm việc và nghiên cứu con này có thể khẳng định được về điện áp của nó làm việc rất thấp. --- " đã từng chế tạo và xuất xưởng gần 1 vạn mạch sử dụng cặp PT2262 và PT2272 để làm điều khiển ".
PT2272 là con giải mã của PT2262 nó cũng có 8 địa chỉ giải mã tương ứng + 4 dữ liệu ra + 1 chân báo hiệu mã đúng VT ( chân 17 ).
Cách giải mã như sau : Chân 15 và 16 cũng cần một điện trở để làm dao động giải mã . Trong dải hồng ngoại hoặc dưới 100KHz có thể dùng R rất lớn hoặc không cần. Nhưng từ khoảng 100KHz dao động trở lên --- thì bắt buộc phải dùng R để tạo dao động cho PT2272.
Giá trị R của PT2272 sẽ bằng khoảng : ( Giá trị R của PT2262) chia cho 10
---> ví dụ : PT2262 mắc điện trở 4,7 megaom thì PT2272 sẽ mắc 470k
Giải mã : các chân mã hóa của PT2262 ( chân 1 đến chân 8 ),nối thế nào thì các chân giải mã của PT2272 cũng phải nối tương tự như vậy.
Chân nào nối dương, chân nào nối âm, chân nào bỏ trống ...v.v thì chân ( 1 đến 8 )của PT2272 hãy làm như thế . Khi truyền một mã đúng và giải mã đúng thì chân 17 của PT2272 sẽ có điện áp cao đưa ra , báo hiệu là đã đúng mã hóa. 4 chân dữ liệu có thể truyền song song, nối tiếp rất động lập.
Tóm lại bạn xài cặp này bạn có thể làm mạch RF rồi lấy data ở ngõ ra pt2262 và trả lại data cho pt2272, rồi toàn quyền xử lý(có thể nối với vi điều khiển) hoặc mua mạch RF có bán sẵn rồi nối với cặp pt là xong.
Sơ đồ mạch phát dùng PT2262:
Sơ đồ mạch thu dùng PT2272:
Theo : ant7.com/forum
Module nRF24L01 2.4G
Module nRF24L01 2.4G
o Modul nRF24L01 hoạt động ở tần số sóng ngắn 2.4G nên Modul này khả năng truyền dữ liệu tốc độ cao và truyền nhận dữ liệu trong điều kiện môi trường có vật cản o Modul nRF24L01 có 126 kênh truyền. Điều này giúp ta có thể truyền nhận dữ liệu trên nhiều kênh khác nhau. o Modul khả năng thay đổi công suất phát bằng chương trình, điều này giúp nó có thể hoạt động trong chế độ tiết kiệm năng lượng.
c. - Kênh truyền nhận và địa chỉ nhận.
- nRF24L01 có 126 kênh truyền. Ban có thể lựa chọn kênh truyền nào bạn muốn bằng hàm.
o Modul nRF24L01 hoạt động ở tần số sóng ngắn 2.4G nên Modul này khả năng truyền dữ liệu tốc độ cao và truyền nhận dữ liệu trong điều kiện môi trường có vật cản o Modul nRF24L01 có 126 kênh truyền. Điều này giúp ta có thể truyền nhận dữ liệu trên nhiều kênh khác nhau. o Modul khả năng thay đổi công suất phát bằng chương trình, điều này giúp nó có thể hoạt động trong chế độ tiết kiệm năng lượng.
1.Thông số kỹ thuật:
- Radio
o Hoạt động ở giải tần 2.4G
o Có 126 kênh
o Truyền và nhận dữ liệu
o Truyền tốc độ cao 1Mbps hoặc 2Mbps.
- Công suất phát:
o Có thể cài đặt được 4 công suất nguồn phát: 0,-6,-12,-18dBm.
- Thu:
o Có bộ lọc nhiễu tại đầu thu
o Kếch đại bị ảnh hưởng bởi nhiễu thấp (LNA)
- Nguồn cấp:
o Hoạt động từ 1.9-3.6V.
o Các chân IO chạy được cả 3.3 lẫn 5V.
- Giao tiếp:
o 4 pin SPI
o Tốc độ tối đa 8Mbps
o 3-32 bytes trên 1 khung truyền nhận
-Phân tích:
o Modul nRF24L01 hoạt động ở tần số sóng ngắn 2.4G nên Modul này khả năng truyền dữ liệu tốc độ cao và truyền nhận dữ liệu trong điều kiện môi trường có vật cản
o Modul nRF24L01 có 126 kênh truyền. Điều này giúp ta có thể truyền nhận dữ liệu trên nhiều kênh khác nhau.
o Modul khả năng thay đổi công suất phát bằng chương trình, điều này giúp nó có thể hoạt động trong chế độ tiết kiệm năng lượng.
o Chú ý: Điện áp cung cấp cho là 1.9à3.6V. Điện áp thường cung cấp là 3.3V. Nhưng các chân IO tương thích với chuẩn 5V. Điều này giúp nó giao tiếp rộng dãi với các dòng vi điều khiển.
2. Sơ đồ phần cứng:
Sơ đồ kết nối vi điều khiển:
- Radio
o Hoạt động ở giải tần 2.4G
o Có 126 kênh
o Truyền và nhận dữ liệu
o Truyền tốc độ cao 1Mbps hoặc 2Mbps.
- Công suất phát:
o Có thể cài đặt được 4 công suất nguồn phát: 0,-6,-12,-18dBm.
- Thu:
o Có bộ lọc nhiễu tại đầu thu
o Kếch đại bị ảnh hưởng bởi nhiễu thấp (LNA)
- Nguồn cấp:
o Hoạt động từ 1.9-3.6V.
o Các chân IO chạy được cả 3.3 lẫn 5V.
- Giao tiếp:
o 4 pin SPI
o Tốc độ tối đa 8Mbps
o 3-32 bytes trên 1 khung truyền nhận
-Phân tích:
o Modul nRF24L01 hoạt động ở tần số sóng ngắn 2.4G nên Modul này khả năng truyền dữ liệu tốc độ cao và truyền nhận dữ liệu trong điều kiện môi trường có vật cản
o Modul nRF24L01 có 126 kênh truyền. Điều này giúp ta có thể truyền nhận dữ liệu trên nhiều kênh khác nhau.
o Modul khả năng thay đổi công suất phát bằng chương trình, điều này giúp nó có thể hoạt động trong chế độ tiết kiệm năng lượng.
o Chú ý: Điện áp cung cấp cho là 1.9à3.6V. Điện áp thường cung cấp là 3.3V. Nhưng các chân IO tương thích với chuẩn 5V. Điều này giúp nó giao tiếp rộng dãi với các dòng vi điều khiển.
2. Sơ đồ phần cứng:
Sơ đồ kết nối vi điều khiển:
Khi kết nối tới vi điều khiển bạn nhớ cấu hình chân đó là output hay input (AVR, PIC)
3.Phần mềm.
Bạn có thể tham khảo trong code của mình update theo Product. Mình sẽ giải thích cách cài đặt để hoạt động trong các chế độ.
Khung truyền:
a. - Địa chỉ truyền nhận:
Khung truyền của nRF24L01 từ 3-5 bytes dùng làm địa chỉ. Bạn có thể cấu hình, nhưng địa chỉ truyền như thế nào thì địa chỉ nhận của chip tương ứng phải giống như thế để có thể thu được tín hiệu. Trong chương trình mình dùng 5 byte cho địa chỉ truyền nhận.
Bạn có thể tham khảo trong code của mình update theo Product. Mình sẽ giải thích cách cài đặt để hoạt động trong các chế độ.
Khung truyền:
a. - Địa chỉ truyền nhận:
Khung truyền của nRF24L01 từ 3-5 bytes dùng làm địa chỉ. Bạn có thể cấu hình, nhưng địa chỉ truyền như thế nào thì địa chỉ nhận của chip tương ứng phải giống như thế để có thể thu được tín hiệu. Trong chương trình mình dùng 5 byte cho địa chỉ truyền nhận.
HTML:
#define TX_ADR_WIDTH 5 // 5 uints TX address width #define RX_ADR_WIDTH 5 // 5 uints RX address width unsigned char const TX_ADDRESS[TX_ADR_WIDTH]= {0x34,0x43,0x10,0x10,0x01}; unsigned char const RX_ADDRESS[RX_ADR_WIDTH]= {0x34,0x43,0x10,0x10,0x01};
Hàm void init_NRF24L01(void)cấu hình truyền nhận :
HTML:
SPI_Write_Buf(WRITE_REG + TX_ADDR, TX_ADDRESS, TX_ADR_WIDTH); SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, RX_ADDRESS, RX_ADR_WIDTH);
b. Khung dữ liệu
Khung dữ liệu từ 0-32 byte, hiện tại mình dùng 32 byte. Nếu bạn dùng số lượng byte khác thì có thể cấu hình trong biến.
Khung dữ liệu từ 0-32 byte, hiện tại mình dùng 32 byte. Nếu bạn dùng số lượng byte khác thì có thể cấu hình trong biến.
HTML:
#define TX_PLOAD_WIDTH 32 // 32 uints TX payload #define RX_PLOAD_WIDTH 32 // 32 uints TX payload
Hàm nRF24L01_TxPacket(unsigned char * tx_buf) gửi dữ liệu trong tx_buf
HTML:
SPI_Write_Buf(WR_TX_PLOAD, tx_buf, TX_PLOAD_WIDTH); // gửi dữ liệu 32 byte
Trong hàmvoid init_NRF24L01(void)cấu hình số byte nhận.
HTML:
SPI_RW_Reg(WRITE_REG + RX_PW_P0, RX_PLOAD_WIDTH); // Do rong data nhận 32 byte
c. - Kênh truyền nhận và địa chỉ nhận.
- nRF24L01 có 126 kênh truyền. Ban có thể lựa chọn kênh truyền nào bạn muốn bằng hàm.
HTML:
SPI_RW_Reg(WRITE_REG + RF_CH, 0); // kênh 0, tần số RF = 2400 + RF_CH* (1or 2 M)
- Trong 1 kênh truyền, nRF24L01 có thể nhận được 6 luồng dữ liệu. Do đó bạn phải lựa chọn 1 trong 6 luồng đó.
HTML:
SPI_RW_Reg(WRITE_REG + EN_AA, 0x01); // 0x01 Luồng P0 // 0x02 Luồng P1 // 0x03 Luồng P2 // 0x04 Luồng P3 // 0x05 Luồng P4 // 0x06 Luồng P5 SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x01); // 0x01 Enable Luồng P0 // 0x02 Enable Luồng P1 // 0x03 Enable Luồng P2 // 0x04 Enable Luồng P3 // 0x05 Enable Luồng P4 // 0x06 Enable Luồng P5
d. Tốc độ đường truyền và công suất nguồn phát
HTML:
SPI_RW_Reg(WRITE_REG + RF_SETUP, 0x07); // 1M, 0dbm
e. Mã CRC, truyền nhận
- Truyền:
- Truyền:
HTML:
SPI_RW_Reg(WRITE_REG + CONFIG, 0x0E); // Enable CRC, 2 byte CRC, Send
- Nhận:
HTML:
SPI_RW_Reg(WRITE_REG + CONFIG, 0x0F); // Enable CRC, 2 byte CRC, Recive
f. Cách gửi dữ liệu:
Sau khi cấu hình các trạng thái hoạt động của nRF24L01 thông qua hàm:
void init_NRF24L01(void)
Để gửi dữ liệu đi bạn làm theo các bước sau.
- Cho dữ liệu vào buffer, biến TxBuf[32]
- Chọn nRF24L01 ở chế độ phát, gọi hàm void SetTX_Mode(void);
- Gọi hàm void nRF24L01_TxPacket(unsigned char * tx_buf); để truyền dữ liệu trong TxBuf[32] đi
g. Cách nhận dữ liệu
- Chọn nRF24L01 ở chế độ thu, gọi hàm void SetRX_Mode(void);
- Độ dữ liệu trong bộ đệm sau khi gọi hàm unsigned char nRF24L01_RxPacket(unsigned char* rx_buf);
Sau khi cấu hình các trạng thái hoạt động của nRF24L01 thông qua hàm:
void init_NRF24L01(void)
Để gửi dữ liệu đi bạn làm theo các bước sau.
- Cho dữ liệu vào buffer, biến TxBuf[32]
- Chọn nRF24L01 ở chế độ phát, gọi hàm void SetTX_Mode(void);
- Gọi hàm void nRF24L01_TxPacket(unsigned char * tx_buf); để truyền dữ liệu trong TxBuf[32] đi
g. Cách nhận dữ liệu
- Chọn nRF24L01 ở chế độ thu, gọi hàm void SetRX_Mode(void);
- Độ dữ liệu trong bộ đệm sau khi gọi hàm unsigned char nRF24L01_RxPacket(unsigned char* rx_buf);
Đăng ký:
Bài đăng (Atom)