Tui không rành về PIC lắm, nhưng tui có một số gốp ý như sau: Theo mình biết thì frame nhận chỉ có 13 bit thôi, trong đó gồm: 1 bit start + 5 bit địa chỉ + 7 bit câu lệnh. Mình nghĩ cách giải mã của bạn có vấn đề (giải mã tới 14 bit). Gợi ý của mình là: sau khi chờ bit start xong bạn tiến hành giải mã 12 bit còn lại, delay 800us thôi, nếu lấy cả 5 bit địa chỉ + 7 bit câu lệnh thì bạn phải dùng 1 biến kiểu int (bạn đang dùng biến kiểu byte thì phải), nếu chỉ lấy 7 bit câu lệnh thì dùng biến kiểu byte (sau khi giải mã xong chỉ lấy 7 bit cuối). Bạn nên tìm hiểu kỹ hơn về remote SONY. Chúc bạn thành công!
Thông báo
Collapse
No announcement yet.
[IR] nhờ anh Mod gợi ý giúp em nhận đúng tín hiệu từ remote Sony
Collapse
X
-
chắc u đã giao tiếp với Remote Sony rùi . Cho tui vài thắc mắc nhỏ nha
- Theo như tài liệu ở trên (SV HN đã làm đc rùi) thì bit Start có thời gian delay khá dài ,cỡ 1800us , tui delay 1500u thì hợp chuẩn wa rùi . Nếu delay ít như u , có khi nào nhiễu cũng gây ra nhận bit Start ko ?
- Theo lý thuyết thì 13 bit trong 1 frame . Tui nghĩ giải mã bao nhiêu bit cũng đc .
Lý do : khi nhận xong 13 bit đúng cũng khung truyền , các bit còn lại của ta nhận đều = 1( cho là có nhiễu thì vài bit xuống 0) --> 13bit đầu luôn luôn đúng với bảng mã phím 1 -10 , các phím Program + ....khác .
Bạn để ý , trong chương trình , vòng lặp For , khi nào tới bit 14 thì hết vòng lặp & thoát ---> dù ta có nhấn 2 lần thì PIC cũng chỉ thu 1 lần đầu thui --> ko có sự thu nhầm qua frame lần nhấn thứ 2
- biến để tui thu bit là biến var_IR kiểu unsigned char . Đâu có dính tới số gì âm đâu mà ta dùng int . Dùng unsigned char tới 256 . wa đẹp rùi còn gì
Để tui thu lại như gợi ý của u thử .... rùi báo cáo kết quả để a e cùng theo dõi quá trình
Comment
-
Nguyên văn bởi Zz_Bi_zZ Xem bài viếtchắc u đã giao tiếp với Remote Sony rùi . Cho tui vài thắc mắc nhỏ nha
- Theo như tài liệu ở trên (SV HN đã làm đc rùi) thì bit Start có thời gian delay khá dài ,cỡ 1800us , tui delay 1500u thì hợp chuẩn wa rùi . Nếu delay ít như u , có khi nào nhiễu cũng gây ra nhận bit Start ko ?
- Theo lý thuyết thì 13 bit trong 1 frame . Tui nghĩ giải mã bao nhiêu bit cũng đc .
Lý do : khi nhận xong 13 bit đúng cũng khung truyền , các bit còn lại của ta nhận đều = 1( cho là có nhiễu thì vài bit xuống 0) --> 13bit đầu luôn luôn đúng với bảng mã phím 1 -10 , các phím Program + ....khác .
Bạn để ý , trong chương trình , vòng lặp For , khi nào tới bit 14 thì hết vòng lặp & thoát ---> dù ta có nhấn 2 lần thì PIC cũng chỉ thu 1 lần đầu thui --> ko có sự thu nhầm qua frame lần nhấn thứ 2
- biến để tui thu bit là biến var_IR kiểu unsigned char . Đâu có dính tới số gì âm đâu mà ta dùng int . Dùng unsigned char tới 256 . wa đẹp rùi còn gì
Để tui thu lại như gợi ý của u thử .... rùi báo cáo kết quả để a e cùng theo dõi quá trìnhVà con tim đã vui trở lại ....
Comment
-
Nguyên văn bởi Zz_Bi_zZ Xem bài viếtui , em vẫn chưa giải quyết đc sự cố này , mod có thể chỉ cho em bit chỗ sai ở đâu đc ko ? có cao thủ nào làm rùi chỉ dẫn tui zới !
- Tạo một Timer0 ngắt mỗi 100us, hai biến width_thấp, width_cao đếm độ rộng xung bằng 0
- Ban đầu ta đặt ngắt ngoài vào là ngắt cạnh xuống
- Khởi động cho Timer0 chạy
- Khi có ngắt cạnh xuống thì đọc biến width_cao, lưu lại, cho width_thấp=0, đặt lại là ngắt cạnh lên.
- Khi có ngắt cạnh lên thì đọc biến width_thấp, lưu lại, cho width_cao=0, đặt lại là ngắt cạnh xuống.
- Nếu biến width nào đó=500 tức là khoảng 5ms tức là không bấm remote nữa, lúc này là lúc ta xử lý chuỗi data nhận được nãy giờ
- Nếu biến width_thấp = 250 tức là 2.5ms đây sẽ là start part
- Nếu width_thấp = 5, width_cao=7: bit 0
- Nếu width_thấp = 5, width_cao=13: bit 1.
Rất đơn giản phải không, tuy nhiên đây mới là cái quan trọng nhất là:
Với mỗi hãng sản xuất, dù là cùng sản xuất remote sony nhưng mỗi thằng sản xuất một kiểu, không nhất thiết start part là phải 2.5ms, bit 0 là 500us và 700us. bit 1 là 500us và 1300us mà có thể sai khác chút xíu, cộng trừ 200us. Do đó độ rộng xung nhận được phải cộng trừ 2 quanh giá trị 5,7,13 đó.Email: - Mobil: tạm thời ngừng liên lạc 1 thời gian
Giới thiệu website kiếm tiền trực tuyến & tăng thứ hạng website.
Comment
-
Nguyên văn bởi Zz_Bi_zZ Xem bài viếtchắc u đã giao tiếp với Remote Sony rùi . Cho tui vài thắc mắc nhỏ nha
- Theo như tài liệu ở trên (SV HN đã làm đc rùi) thì bit Start có thời gian delay khá dài ,cỡ 1800us , tui delay 1500u thì hợp chuẩn wa rùi . Nếu delay ít như u , có khi nào nhiễu cũng gây ra nhận bit Start ko ?
- Theo lý thuyết thì 13 bit trong 1 frame . Tui nghĩ giải mã bao nhiêu bit cũng đc .
Lý do : khi nhận xong 13 bit đúng cũng khung truyền , các bit còn lại của ta nhận đều = 1( cho là có nhiễu thì vài bit xuống 0) --> 13bit đầu luôn luôn đúng với bảng mã phím 1 -10 , các phím Program + ....khác .
Bạn để ý , trong chương trình , vòng lặp For , khi nào tới bit 14 thì hết vòng lặp & thoát ---> dù ta có nhấn 2 lần thì PIC cũng chỉ thu 1 lần đầu thui --> ko có sự thu nhầm qua frame lần nhấn thứ 2
- biến để tui thu bit là biến var_IR kiểu unsigned char . Đâu có dính tới số gì âm đâu mà ta dùng int . Dùng unsigned char tới 256 . wa đẹp rùi còn gì
Để tui thu lại như gợi ý của u thử .... rùi báo cáo kết quả để a e cùng theo dõi quá trình
Giải mã phải theo đúng chuẩn của frame truyền nếu không ta sẽ nhận được rác -> không biết đường đâu mà mò, ta tự làm khó cho ta (vì frame truyền không chỉ truyền 1 lần, nếu có oscilloscope bạn sẽ rõ).
Bạn dùng biến unsigned char chỉ chứa được 8 bit thôi (trong khi ta thu tới 12 bit, trong lệnh chương trình bạn set tới bit 14 ở đâu ra). Nếu chỉ nhận 7 bit command thì bạn dùng biến unsigned char thì ok (dùng lệnh dịch bit), giải mã xong ta sẽ bỏ bit cuối bit thứ 7, cái đó là tui góp ý để bạn cẩn thận thôi, khi lập trình những sai sót nhỏ cũng tạo ra rắc rối lớn.
Còn 1 lưu ý nữa, nếu bạn dùng ngắt ngoài thì khi nhảy vào ngắt thì bạn phải vô hiệu hóa cái ngắt đó đi, giải mã xong rồi mới cho phép nó hoạt động lại, nếu không mỗi khi nhận được mức 0 thì nó sẽ làm lại đoạn chương trình mà bạn đã để trong thân nó.
Những gợi ý nhỏ này mong sẽ giúp ích cho bạn, chúc bạn sớm thành công!
Comment
-
trước hết , thk 2 cao thủ đã gợi ý giúp tui ! Nhưng tui có thắc mắc nhỏ
- Với cách lấy bit START của u hoc_hoi_dt , u sẽ luôn bị nhảy vào ngắt , lí do : 1 tín hiệu lạ nào đó của môi trường cũng làm u nhảy vào ngắt , sau đó là thực thi lấy data --> ko còn thời gian để scan Led . U delay để chắc chắn rằng bit o mà u nhận đc chính là bit START của remote chứ ko phải là bit bất kỳ nào #
trong tuần này đang thi học kỳ ,,,nên chưa làm tiếp đc .... sau khi thi qua xong...sẽ có báo cáo mới với các u để ko uổn công gợi ý ! heeee...
Comment
-
Nguyên văn bởi Zz_Bi_zZ Xem bài viếttrước hết , thk 2 cao thủ đã gợi ý giúp tui ! Nhưng tui có thắc mắc nhỏ
- Với cách lấy bit START của u hoc_hoi_dt , u sẽ luôn bị nhảy vào ngắt , lí do : 1 tín hiệu lạ nào đó của môi trường cũng làm u nhảy vào ngắt , sau đó là thực thi lấy data --> ko còn thời gian để scan Led . U delay để chắc chắn rằng bit o mà u nhận đc chính là bit START của remote chứ ko phải là bit bất kỳ nào #
trong tuần này đang thi học kỳ ,,,nên chưa làm tiếp đc .... sau khi thi qua xong...sẽ có báo cáo mới với các u để ko uổn công gợi ý ! heeee...Email: - Mobil: tạm thời ngừng liên lạc 1 thời gian
Giới thiệu website kiếm tiền trực tuyến & tăng thứ hạng website.
Comment
-
http://lirc.sourceforge.net/remotes/
đây là thư viện các thông số loại remote của chương trình LIRC ( Linux infrared remote Control ) đây chỉ là những file config cho LIRC thôi nên đọc đôi lúc cũng hơi khó hiểu nếu bạn chưa biết nhiều về các loại mã hóa IR nhưng cũng dùng để tham khảo và tìm hiểu đc nếu có cái nào khó thì lại post lên để mọi người cũng thảo luận.
http://winlirc.sourceforge.net/technicaldetails.html
ý nghĩa của các trường trong file config được nói ở trên. ( có những cái tớ đọc cũng chưa hiểu lắm ) vì mình cũng đang tìm hiểu về lập trình decode IR trên PIC mà.
Mong được giúp đỡ
Comment
-
Em ko dùng PIC mà sử dụng AVR để nhận tín hiệu IR sony, Không sử dụng ngắt mà sử dụng hỏi vòng để kiểm tra đầu vào,.. Bác thử xem nhé, em đã chạy thử và không thấy nhiễu !Attached Files
Comment
-
Không biết bạn Zz_Bi_zZ đã làm được cái này chưa? nêu chưa thì vào đây nhé :http://ccsinfo.com/forum/viewtopic.p...b5414a91c43fc9
Comment
-
Điều khiển bằng REMOTE TV
Nguyên văn bởi Zz_Bi_zZ Xem bài viếtui , em vẫn chưa giải quyết đc sự cố này , mod có thể chỉ cho em bit chỗ sai ở đâu đc ko ? có cao thủ nào làm rùi chỉ dẫn tui zới !
Về phần mắt thu nên dùng loại bọc vỏ sắt (dung loại này chống nhiễu tốt hơn loại vỏ nhựa HS0038,SM0038...
Như mấy anh trước có nói đấy,cái bộ nguồn ở phần mạch thu nó là yếu tố quyết định đến nhiễu rất nhiều,lầm tốt bộ nguồn này bạn sẽ thấy hiệu quả ngay (theo cách của tui thì "tui dùng biến áp chuyển 220 V -> 12 V chỉnh lưu và dùng tụ lọc (2 con tụ 1000 uF (//) sau đó cho vào IC ổn áp 7805 Ura tui cho con tụ 1000uF lọc nữa đó xong bộ nguồn tui làm)
Ghép nối mắt thu: Tiếp mass chắc chắn ở chân mass của mắt thu,mắc thêm con tụ 100uF vao chân Vcc và mass của mắt thu gần ngay 2 chân này)
Về phần chương trình tui cũng viết như thuật toán ở trên thôi,nhưng khâu tạo trễ trước khi đo mức tín hiệu tui cho tui để mức 760 us thấy rất ổn(càng ngắn càng đỡ nhiễu tui đã thủ và nhận thấy thế).sau khi thu hết tín hiệu rồi chuyển sang kiểm tra phím bấm,mỗi lần phím thực hiên song lệnh tui bạn để trễ một khoảng lớn một chút tầm trên 0,7 s la OK)
Còn về một ý bạn nói là bật tắt bóng đèn sợi đốt nó gây ra nhiễu mình nghĩ chắc ko phai đâu ...|
Comment
-
Nguyên văn bởi Zz_Bi_zZ Xem bài viếtcảm ơn tất cả mọi ng . Cái này tui làm , gắn vô catset , chạy rầm rầm lâu oy . Chúc ae đi sau làm thành côngNếu chẳng một phen sương thấm lạnh
Hoa mai đâu dễ tỏa mùi hương
Comment
Bài viết mới nhất
Collapse
-
Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.bởi nguyendinhvanTheo tôi thì khi hpj sản xuất ra cái loa đó, đã có nhiều chuyên gia kỹ thuật hiệu chỉnh, tính toán các phần tử kỹ lưỡng rồi.
Bây giờ tính toán hiệu chỉnh lại cần có đội ngũ tương đương với nhà sản xuất.
Cách đơn giản...-
Channel: Điện thanh
hôm nay, 00:04 -
-
bởi Ng.Phuong.5Vấn đề cũ: khi in mạch ra pdf và bấm chọn Keep Drill Holes Open, in ra thì pdf trắng đen các lỗ chân linh kiện như nhau. Mặc dù có linh kiện phần Drill là 1mm, có linh kiện thì là 3mm. Cho em hỏi cách sửa phần này ở Orcad 9.2 với ạ.
Mấy con...-
Channel: Hướng dẫn sử dụng diễn đàn
Hôm qua, 22:44 -
-
Trả lời cho Sửa bộ nguồn DC 60V 45Abởi mèomướpDạ cháu có ý tốt muốn động viên chú ấy ngâm cứu khoa học thôi ạ. Về phần kiểm tra dao động thì chú ấy chưa biết thì sẽ tìm hiểu được là cần những gì ạ, chắc chắn là khi hướng dẫn phần ấy các cô chú nào đó sẽ lưu ý cần loại sò công suất ra tránh cháy nổ rồi ạ....
-
Channel: Điện tử công suất
Hôm qua, 19:02 -
-
Trả lời cho Sửa bộ nguồn DC 60V 45Abởi tuyennhanChủ thớt hỏi có kiểm tra được dao động mà không cấp nguồn thì rõ trình ở mức nào mà mèo còn xúi ngâm cứu nữa ác vậy ....
-
Channel: Điện tử công suất
Hôm qua, 15:43 -
-
Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.bởi tuyennhanLoa bass đấu trực tiếp không qua phân tần để thành loa toàn dải xem có thoát tiếng khộng , nếu không thoát cần phải sửa lại mạch cs hay âm sắc nếu đủ trình còn nếu thoát ca hay nhưng chưa vừa ý vì bass kém chăc thì đấu lại như cũ và đấu thêm loa mid treble bên ngoài .
-
Channel: Điện thanh
Hôm qua, 15:28 -
-
Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.bởi mèomướpDạ loa tép bé xíu như ngón chân cái thôi ạ. Thiếu gì chỗ để đâu. Quan trọng là gắn thêm nó loa nghe ok hay ko thôi ạ...
-
Channel: Điện thanh
Hôm qua, 11:44 -
-
Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.bởi viettinhNó không phải cái loa rời. Chả nhẽ đèo thêm 2 con loa tép ngoài thì kỳ lắm....
-
Channel: Điện thanh
Hôm qua, 09:45 -
-
Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.bởi mèomướpDạ chú mua thêm loa tép nối tiếp qua con tụ rồi mắc vào cùng loa trung là được ạ...
-
Channel: Điện thanh
07-01-2025, 19:53 -
-
Trả lời cho Tìm datasheet linh kiện điện tử.bởi mèomướpDạ cháu hỏi bạn cháu thì bạn ấy trả lời như thế này ạ. Cháu cũng hông bít có đúng hông nữa ạ
Linh kiện điện tử với mã "943BA" và "W58BAL" là một loại cầu chì tự động (circuit breaker) do TE Connectivity sản...-
Channel: Điện tử dành cho người mới bắt đầu
07-01-2025, 19:50 -
-
bởi viettinhChuyện là mình mới đập hộp con loa kéo Sony SRS-XV900. Do khu vực mình k có sẵn hàng để trải nghiệm thực tế nên chỉ tham khảo các kênh revew online.
Mua về sử dụng thì thấy hơi buồn về chất âm, Mở max k to bằng cái loa kéo china, bass...-
Channel: Điện thanh
07-01-2025, 17:18 -
Comment