Სარჩევი:

უკაბელო კომუნიკაცია იაფი 433MHz RF მოდულების და Pic მიკროკონტროლერების გამოყენებით. ნაწილი 2: 4 ნაბიჯი (სურათებით)
უკაბელო კომუნიკაცია იაფი 433MHz RF მოდულების და Pic მიკროკონტროლერების გამოყენებით. ნაწილი 2: 4 ნაბიჯი (სურათებით)

ვიდეო: უკაბელო კომუნიკაცია იაფი 433MHz RF მოდულების და Pic მიკროკონტროლერების გამოყენებით. ნაწილი 2: 4 ნაბიჯი (სურათებით)

ვიდეო: უკაბელო კომუნიკაცია იაფი 433MHz RF მოდულების და Pic მიკროკონტროლერების გამოყენებით. ნაწილი 2: 4 ნაბიჯი (სურათებით)
ვიდეო: სად ღირს მობილური ინტერნეტი ყველაზე იაფი? 2024, ნოემბერი
Anonim
უკაბელო კომუნიკაცია იაფი 433MHz RF მოდულების და Pic მიკროკონტროლერების გამოყენებით. Მე -2 ნაწილი
უკაბელო კომუნიკაცია იაფი 433MHz RF მოდულების და Pic მიკროკონტროლერების გამოყენებით. Მე -2 ნაწილი

ამ ინსტრუქციის პირველ ნაწილში მე ვაჩვენე, თუ როგორ უნდა დავპროგრამო PIC12F1822 MPLAB IDE და XC8 შემდგენლის გამოყენებით, მარტივი სიმებიანი უკაბელოდ გაგზავნის იაფი TX/RX 433MHz მოდულების გამოყენებით.

მიმღების მოდული დაუკავშირდა USB– ს UART TTL საკაბელო ადაპტერს კომპიუტერთან და მიღებული მონაცემები ნაჩვენები იქნა RealTerm– ზე. კომუნიკაცია განხორციელდა 1200 ბაუდზე და მაქსიმალური მიღწეული მანძილი იყო დაახლოებით 20 მეტრი კედლების გავლით. ჩემმა ტესტებმა აჩვენა, რომ პროგრამებისთვის, სადაც არ არის საჭირო მონაცემთა მაღალი სიჩქარე და დიდი მანძილი და უწყვეტი გადაცემა, ეს მოდულები განსაკუთრებულად კარგად ასრულებდნენ.

ამ პროექტის მეორე ნაწილი გვიჩვენებს, თუ როგორ უნდა დავამატოთ მიმღებზე PIC16F887 მიკროკონტროლერი და 16 × 2 სიმბოლოიანი LCD მოდული. უფრო მეტიც, გადამცემზე, მარტივი პროტოკოლი მოჰყვება რამდენიმე წინასწარი ბაიტის დამატებით. ეს ბაიტი აუცილებელია RX მოდულისთვის, რათა შეცვალოს თავისი მოგება ფაქტობრივი დატვირთვის მიღებამდე. მიმღების მხარეს, PIC პასუხისმგებელია მიიღოს და დაადასტუროს მონაცემები, რომლებიც ნაჩვენებია LCD ეკრანზე.

ნაბიჯი 1: გადამცემის ცვლილებები

გადამცემის ცვლილებები
გადამცემის ცვლილებები
გადამცემის ცვლილებები
გადამცემის ცვლილებები
გადამცემის ცვლილებები
გადამცემის ცვლილებები

პირველ ნაწილში, გადამცემი უგზავნიდა მარტივ სტრიქონს ყოველ რამდენიმე ms– ში რვა მონაცემთა ბიტის, დაწყების და გაჩერების ბიტის გამოყენებით წამში 1200 ბიტი. ვინაიდან გადაცემა თითქმის უწყვეტი იყო, მიმღებს არ შეექმნა პრობლემა მიღებული მონაცემების მომატებასთან დაკავშირებით. მეორე ნაწილში, firmware შეცვლილია ისე, რომ გადაცემა ხორციელდება ყოველ 2.3 წამში. ეს მიიღწევა გუშაგის ტაიმერის შეწყვეტის გამოყენებით (დაყენებულია 2.3 წმ) მიკროკონტროლერის გაღვიძებისთვის, რომელიც ძილის რეჟიმშია გადაცემული თითოეულ გადაცემას შორის.

იმისათვის, რომ მიმღებს ჰქონდეს დრო დაარეგულიროს მისი მოგება, რამდენიმე პრეამბულა ბაიტი მოკლე LO დროით "(0Xf8) (0Xf8) (0Xf8) (0Xf8) (0Xf8) (0Xfa)" იგზავნება რეალურ მონაცემებამდე. დატვირთვა შემდეგ აღინიშნება დაწყების '&' და გაჩერების '*' ბაიტით.

ამრიგად, მარტივი პროტოკოლი აღწერილია შემდეგნაირად:

(0Xf8) (0Xf8) (0Xf8) (0Xf8) (0Xf8) (0Xfa) & გამარჯობა InstWorld!*

უფრო მეტიც, 10uF დაშლის ტანტალის კონდენსატორი ემატება RF მოდულის V+-სა და GND– ს შორის, რათა მოშორდეს dc-dc მომატებული მოდულით გამოწვეული ტალღა.

ბაუდის სიჩქარე იგივე დარჩა, მაგრამ ჩემმა ტესტებმა აჩვენა, რომ 2400 ბაუდზეც, გადაცემა ეფექტური იყო.

ნაბიჯი 2: მიმღების ცვლილებები: დაამატეთ PIC16F887 და HD44780 LCD

მიმღების ცვლილებები: ემატება PIC16F887 და HD44780 LCD
მიმღების ცვლილებები: ემატება PIC16F887 და HD44780 LCD
მიმღების ცვლილებები: ემატება PIC16F887 და HD44780 LCD
მიმღების ცვლილებები: ემატება PIC16F887 და HD44780 LCD
მიმღების ცვლილებები: ემატება PIC16F887 და HD44780 LCD
მიმღების ცვლილებები: ემატება PIC16F887 და HD44780 LCD

მიმღების დიზაინი ემყარებოდა PIC16F887- ს, მაგრამ თქვენ შეგიძლიათ გამოიყენოთ განსხვავებული PIC მცირე მოდიფიკაციებით. ჩემს პროექტში გამოვიყენე ეს 40 pin μC, რადგან მე დამჭირდება დამატებითი ქინძისთავები მომავალი დიზაინისთვის ამ დიზაინის საფუძველზე. RF მოდულის გამომავალი დაკავშირებულია UART rx პინთან, ხოლო 16x2 სიმბოლო LCD (HD44780) დაკავშირებულია PORTB ქინძისთავებით b2-b7 მიღებული მონაცემების საჩვენებლად.

როგორც 1 ნაწილის შემთხვევაში, მიღებული მონაცემები ასევე ნაჩვენებია RealTerm– ზე. ეს მიიღწევა UART tx pin– ის გამოყენებით, რომელიც დაკავშირებულია USB– ით UART TTL საკაბელო ადაპტერთან კომპიუტერთან.

Firmware- ის დათვალიერებისას, როდესაც ხდება UART შეფერხება, პროგრამა ამოწმებს არის თუ არა მიღებული ბაიტი საწყისი ბაიტი ('&'). თუ კი, ის იწყებს მომდევნო ბაიტების ჩაწერას, სანამ სტოპ ბაიტი არ დაიჭირება ('*'). როგორც კი მთელი წინადადება მიიღება და თუ იგი შეესაბამება ადრე აღწერილ მარტივ პროტოკოლს, შემდეგ იგზავნება LCD ეკრანზე, ასევე UART tx პორტში.

დაწყებული ბაიტის მიღებამდე, მიმღებმა უკვე შეასრულა თავისი მოგება წინა პრეამბულა ბაიტების გამოყენებით. ეს კრიტიკულია მიმღების შეუფერხებელი მუშაობისთვის. ტარდება გადაფარვისა და ჩარჩოს შეცდომის მარტივი შემოწმება, თუმცა ეს მხოლოდ ძირითადი UART შეცდომის დამუშავების განხორციელებაა.

ტექნიკის თვალსაზრისით, მიმღებისთვის საჭიროა რამდენიმე ნაწილი:

1 x PIC16F887

1 x HD44780

1 x RF Rx მოდული 433 MHz

1 x 10 μF ტანტალის კონდენსატორი (გათიშვა)

1 x 10 K ტრიმერი (LCD შრიფტის სიკაშკაშე)

1 x 220 Ω 1/4 ვტ რეზისტორი (LCD განათება)

1 x 1 KΩ 1/4 W

1 x ანტენა 433Mhz, 3dbi

პრაქტიკაში, მიღებულები განსაკუთრებულად კარგად მუშაობდნენ კედლების 20 მეტრამდე მანძილზე.

ნაბიჯი 3: რამდენიმე მითითება…

ინტერნეტში არის მრავალი ბლოგი, რომელიც იძლევა რჩევებს PIC პროგრამირებისა და პრობლემების მოგვარების შესახებ, გარდა მიკროჩიპის ოფიციალური ვებგვერდისა. შემდეგი ძალიან დამხმარე აღმოვაჩინე:

www.romanblack.com/

0xee.net/

www.ibrahimlabs.com/

picforum.ric323.com/

ნაბიჯი 4: დასკვნები და მომავალი მუშაობა

ვიმედოვნებ, რომ ეს ინსტრუქცია დაგეხმარებათ გაიგოთ როგორ გამოიყენოთ RF მოდულები და Pic მიკროკონტროლერები. თქვენ შეგიძლიათ მოაწყოთ თქვენი firmware თქვენს საჭიროებებზე და ჩართოთ CRC და დაშიფვრა. თუ გსურთ გახადოთ თქვენი დიზაინი კიდევ უფრო დახვეწილი, შეგიძლიათ გამოიყენოთ Microschip– ის Keeloq ტექნოლოგია. თუ თქვენს აპლიკაციას სჭირდება ორმხრივი მონაცემები, თქვენ უნდა გქონდეთ წყვილი TX/RX ორივე მიკროკონტროლერზე, ან შეგიძლიათ გამოიყენოთ უფრო დახვეწილი გადამცემი მოდულები. თუმცა, ამ ტიპის 433MHz იაფი მოდულების გამოყენებით, შესაძლებელია მხოლოდ ნახევრად დუპლექსური კომუნიკაციის განხორციელება. გარდა ამისა, იმისათვის, რომ კომუნიკაცია იყოს უფრო საიმედო, თქვენ უნდა გქონდეთ ხელის ჩამორთმევის რაიმე ფორმა TX და RX შორის.

მომდევნო ინსტრუქციაზე მე გაჩვენებთ პრაქტიკულ გამოყენებას, სადაც გადამცემზე ემატება გარემოს სენსორი ტემპერატურის, ბარომეტრული წნევის და ტენიანობის მაჩვენებლებით. აქ, გადაცემული მონაცემები მოიცავს CRC და ექნება ძირითადი დაშიფვრა.

სენსორი გამოიყენებს PIC12F1822 i2c პორტს, ხოლო გადამცემის და მიმღების განხორციელება გამოჩნდება სქემატური და pcb ფაილების საშუალებით. მადლობა რომ წამიკითხავთ!

გირჩევთ: