Სარჩევი:
- ნაბიჯი 1: სისტემის ბლოკირების დიაგრამა
- ნაბიჯი 2: SLG46108 მბრუნავი დეკოდერის დიზაინი
- ნაბიჯი 3: SLG46826 გულშემატკივართა კონტროლერის დიზაინი
- ნაბიჯი 4: PWM თაობა ოფსეტური მრიცხველებით
- ნაბიჯი 5: მორიგე ციკლის კონტროლი საათის ინექციით და საათის გამოტოვებით
- ნაბიჯი 6: ღილაკის შეყვანა
- ნაბიჯი 7: მორიგე ციკლის გადახვევის პრევენცია
- ნაბიჯი 8: სამუშაო ციკლის კონტროლი I2C– ით
- ნაბიჯი 9: ტაქომეტრის კითხვა
- ნაბიჯი 10: გარე წრედის დიზაინი
- ნაბიჯი 11: PCB დიზაინი
- ნაბიჯი 12: C# პროგრამა
ვიდეო: წვრილმანი PWM კონტროლი კომპიუტერის ფანებისთვის: 12 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:17
ეს ინსტრუქცია აღწერს სრულად გამორჩეული 12 V კომპიუტერის გულშემატკივართა PWM კონტროლერის შექმნას. დიზაინს შეუძლია გააკონტროლოს 16 – მდე 3 – პინიანი კომპიუტერის გულშემატკივარი. დიზაინი იყენებს წყვილ დიალოგურ GreenPAK ™ კონფიგურირებადი შერეული სიგნალის IC- ებს თითოეული გულშემატკივრის სამუშაო ციკლის გასაკონტროლებლად. ის ასევე მოიცავს ორ გზას, რომ შეცვალოთ ვენტილატორის სიჩქარე:
ა კვადრატის/მბრუნავი კოდირებით
ბ C# - ში ჩაშენებული Windows პროგრამით, რომელიც GreenPAK– თან კომუნიკაციას ახდენს I2C– ით.
ქვემოთ ჩვენ აღვწერეთ საჭირო ნაბიჯები იმის გასაგებად, თუ როგორ არის დაპროგრამებული GreenPAK ჩიპი კომპიუტერის მოყვარულთათვის PWM კონტროლის შესაქმნელად. თუმცა, თუ თქვენ უბრალოდ გსურთ მიიღოთ პროგრამირების შედეგი, გადმოწერეთ GreenPAK პროგრამული უზრუნველყოფა, რომ ნახოთ უკვე დასრულებული GreenPAK დიზაინის ფაილი. შეაერთეთ GreenPAK განვითარების ნაკრები თქვენს კომპიუტერში და დააჭირეთ პროგრამას, რომ შექმნათ პერსონალური IC კომპიუტერის მოყვარულთათვის PWM კონტროლისთვის.
ნაბიჯი 1: სისტემის ბლოკირების დიაგრამა
ნაბიჯი 2: SLG46108 მბრუნავი დეკოდერის დიზაინი
მბრუნავი კოდირება გამოიყენება გულშემატკივართა მუშაობის ციკლის ხელით გაზრდის ან შემცირების მიზნით. ეს მოწყობილობა გამოსცემს იმპულსებს მის A და B არხებზე, რომლებიც დაშორებულია 90 ° –ით. იხილეთ AN-1101: Unclocked Quadrature Decoder დამატებითი ინფორმაციისათვის, თუ როგორ მუშაობს მბრუნავი კოდირება.
საათის მბრუნავი დეკოდირების შექმნა შესაძლებელია დიალოგური GreenPAK SLG46108 გამოყენებით არხის A და B არხების სიგნალების დასამუშავებლად და გამოსაწერად საათის ისრის საწინააღმდეგოდ (CCW) და საათის ისრის მიმართულებით (CW) იმპულსების სახით.
როდესაც A არხი ხელმძღვანელობს B არხს, დიზაინი გამოდის მოკლე პულსი CW– ზე. როდესაც B არხი იწვევს A არხს, ის გამოდის მოკლე პულსი CCW– ზე
სამი DFF ა სინქრონიზებს A არხის შეყვანას საათთან. ანალოგიურად, მილის დაყოვნება OUT0– ით დაყენებულია ორ DFF– ზე და OUT1 სამი DFF– ით ქმნის ერთსა და იმავე ფუნქციურობას B არხისთვის.
CW და CCW შედეგების შესაქმნელად გამოიყენეთ რამდენიმე LUT, ამ სტანდარტული მბრუნავი დეკოდერის დიზაინის შესახებ დამატებითი ინფორმაციისათვის ეწვიეთ ამ ვებგვერდს.
GreenPAK- ის მბრუნავი დეკოდირება მიიღებს A და B იმპულსებს და გამოუშვებს CW და CCW იმპულსებს, როგორც ეს ნაჩვენებია სურათ 4 -ში.
სქემა XOR კარიბჭის შემდეგ უზრუნველყოფს იმას, რომ არასოდეს იქნება CW პულსი და CCW პულსი ერთდროულად, რაც საშუალებას მისცემს რაიმე შეცდომას მბრუნავი კოდირებით. CW და CCW სიგნალებზე 8 ms დაცემის ზღვარი აიძულებს მათ დარჩეს მაღალი 8 ms პლუს ერთი საათის ციკლი, რაც აუცილებელია ქვემო დინების SLG46826 GreenPAK– ებისთვის.
ნაბიჯი 3: SLG46826 გულშემატკივართა კონტროლერის დიზაინი
ნაბიჯი 4: PWM თაობა ოფსეტური მრიცხველებით
წყვილი ოფსეტური მრიცხველები იმავე პერიოდით გამოიყენება PWM სიგნალის შესაქმნელად. პირველი მრიცხველი ადგენს DFF- ს, მეორე კი აღადგენს მას, ქმნის თანმიმდევრულ ციკლის PWM სიგნალს, როგორც ეს ნაჩვენებია ფიგურაში 6 და სურათი 7.
CNT6 ადგენს DFF10- ს და CNT1- ის შებრუნებული გამომუშავება აღადგენს DFF10- ს. ქინძისთავები 18 და 19 გამოიყენება PWM სიგნალის გარე წრედში გამოსასვლელად
ნაბიჯი 5: მორიგე ციკლის კონტროლი საათის ინექციით და საათის გამოტოვებით
გულშემატკივართა კონტროლერი იღებს CW და CCW სიგნალებს მბრუნავი დეკოდირების შეყვანის სახით და იყენებს მათ PWM სიგნალის გაზრდის ან შემცირების მიზნით, რომელიც აკონტროლებს ვენტილატორის სიჩქარეს. ეს მიიღწევა ციფრული ლოგიკის რამდენიმე კომპონენტის გამოყენებით.
მოვალეობის ციკლი უნდა გაიზარდოს CW პულსის მიღებისას. ეს კეთდება CNT6 ბლოკში დამატებითი საათის იმპულსის ინექციით, რის შედეგადაც იგი გამოდის ერთი საათის ციკლით უფრო ადრე, ვიდრე სხვაგვარად იქნებოდა. ეს პროცესი ნაჩვენებია ფიგურაში 8.
CNT1 კვლავ დარეკილია მუდმივი სიჩქარით, მაგრამ CNT6– ს აქვს რამდენიმე დამატებითი საათის ინექცია. ყოველ ჯერზე, როდესაც მრიცხველს აქვს დამატებითი საათი, ის ცვლის თავის გამომავალს ერთი საათის პერიოდს მარცხნივ.
პირიქით, სამუშაო ციკლის შესამცირებლად, გამოტოვეთ საათის პულსი CNT6– ისთვის, როგორც ეს ნაჩვენებია ფიგურაში 9. CNT1 კვლავ დარეკილია მუდმივი სიჩქარით და არის გამოტოვებული საათის იმპულსები CNT6– ისთვის, სადაც მრიცხველი არ იყო დარეკილი, როდესაც ვარაუდობდნენ რათა ამრიგად, CNT6– ის გამომუშავება გადადის მარჯვნივ ერთი საათის განმავლობაში, რაც ამცირებს გამომავალი PWM სამუშაო ციკლს.
საათის ინექციისა და საათის გამოტოვების ფუნქცია ხორციელდება GreenPAK– ის ზოგიერთი ციფრული ლოგიკური ელემენტის გამოყენებით. წყვილი მრავალფუნქციური ბლოკი გამოიყენება წყვილი საკეტის/კიდეების დეტექტორის კომბინაციის შესაქმნელად. 4 ბიტიანი LUT0 გამოიყენება საერთო საათის სიგნალს (CLK/8) და საათის ინექციის ან საათის გამოტოვების სიგნალებს შორის. ეს ფუნქცია უფრო დეტალურად არის აღწერილი მე –7 ნაბიჯში.
ნაბიჯი 6: ღილაკის შეყვანა
ღილაკის შეყვანის დებიუნაცია ხდება 20 ms, შემდეგ გამოიყენება ჩამკეტის გადასართავად, რომელიც განსაზღვრავს არჩეულია თუ არა ეს კონკრეტული ჩიპი. თუ ის არჩეულია, მაშინ 4 ბიტიანი LUT გადის საათის გამოტოვების ან ინექციის სიგნალებს. თუ ჩიპი არ არის არჩეული, მაშინ 4 ბიტიანი LUT უბრალოდ გადის CLK/8 სიგნალს.
ნაბიჯი 7: მორიგე ციკლის გადახვევის პრევენცია
RS ჩამკეტები 3-ბიტიანი LUT5 და 3-ბიტიანი LUT3 გამოიყენება იმისათვის, რომ დარწმუნდეთ, რომ თქვენ არ შეგიძლიათ ინექცია ან გამოტოვება იმდენი საათი, რომ ოფსეტური მრიცხველები გადატრიალდეს. ეს არის იმისთვის, რომ სისტემა არ მიაღწიოს 100 % –იან სამუშაო ციკლს და შემდეგ გადავიდეს 1 % –იან სამუშაო ციკლზე, თუ ის მიიღებს სხვა ინექციურ საათს.
RS ჩამკეტები ხელს უშლიან ამას მოხდეს მრავალფუნქციური ბლოკებით შეყვანისას, როდესაც სისტემა ერთი საათის ციკლით არის დაშორებული. წყვილი DFF აყოვნებს PWM_SET და PWM_nRST სიგნალებს ერთი საათის პერიოდით, როგორც ეს მოცემულია ფიგურაში 11.
წყვილი LUT გამოიყენება საჭირო ლოგიკის შესაქმნელად. თუ მოვალეობის ციკლი იმდენად დაბალია, რომ დაგვიანებული PWM_SET სიგნალი ხდება PWM_nRST სიგნალის პარალელურად, მორიგე ციკლის შემდგომი შემცირება გამოიწვევს გადატრიალებას.
ანალოგიურად, მაქსიმალური მოვალეობის ციკლის მოახლოებისას, ისეთი, რომ დაგვიანებული PWM_nRST სიგნალი მოხდეს PWM_SET სიგნალის პარალელურად, აუცილებელია მოვერიდოთ მორიგე ციკლის შემდგომ ზრდას. ამ შემთხვევაში, გადადეთ nRST სიგნალი ორი საათის ციკლით, რათა დარწმუნდეთ, რომ სისტემა არ გადავა 99 % -დან 1 % -მდე.
ნაბიჯი 8: სამუშაო ციკლის კონტროლი I2C– ით
ეს დიზაინი აერთიანებს მორიგე ციკლის კონტროლის სხვა გზას, გარდა საათის გამოტოვების/საათის ინექციისა. გარე მიკროკონტროლი შეიძლება გამოყენებულ იქნას GreenPAK– ში I2C ბრძანებების დასაწერად, მოვალეობის ციკლის დასადგენად.
I2C– ზე მოვალეობის ციკლის კონტროლი მოითხოვს, რომ კონტროლერმა შეასრულოს ბრძანების კონკრეტული თანმიმდევრობა. ეს ბრძანებები ნაჩვენებია ცხრილში 1. "x" მიუთითებს ცოტაზე, რომელიც არ უნდა შეიცვალოს, "[" მიუთითებს დაწყების ბიტზე და "]" მიუთითებს STOP ბიტზე
PDLY ბლოკი წარმოქმნის მოკლე აქტიურ მაღალ პულსს CLK/8 სიგნალის დაცემულ ზღვარზე, რომელსაც ეწოდება! CLK/8. ეს სიგნალი გამოიყენება მუდმივი სიხშირით DFF14- ის დასაყენებლად. როდესაც I2C_SET ასინქრონულად მაღლა იწევს, CLK/8 -ის შემდეგი მზარდი ზღვარი იწვევს DFF14- ის გამოშვებას მაღალი, რაც იწვევს CNT5 OneShot- ს. OneShot მუშაობს საათის ციკლების რაოდენობაზე, რაც მომხმარებელმა დაწერა, როგორც ეს მითითებულია ცხრილში 1 "ჩაწერეთ CNT5" I2C ბრძანებაში. ამ შემთხვევაში, ეს არის 10 საათის ციკლი. OneShot საშუალებას აძლევს 25 MHz ოსცილატორს იმუშაოს ზუსტად მისი ხანგრძლივობით და არა უმეტეს, ასე რომ 3 ბიტიანი LUT0 მიიღებს საათის ციკლის რაოდენობას, რომელიც დაწერილია CNT5– ზე.
სურათი 15 გვიჩვენებს ამ სიგნალებს, სადაც წითელი საათებია ის, რაც იგზავნება 3 ბიტიან LUT0– ზე, რომელიც გადადის მათ CNT6– ში (PWM_SET მრიცხველი), რითაც ქმნის კომპენსაციას სამუშაო ციკლის წარმოქმნისათვის.
ნაბიჯი 9: ტაქომეტრის კითხვა
თუ სასურველია, მომხმარებელს შეუძლია წაიკითხოს ტაქომეტრის მნიშვნელობა I2C– ზე, რათა თვალყური ადევნოს რამდენად სწრაფად ბრუნავს ვენტილატორი CNT2 მნიშვნელობის კითხვით. CNT2 იზრდება ყოველ ჯერზე, როდესაც ACMP0H- ს აქვს აღმავალი ზღვარი და მისი ასინქრონული გადატვირთვა შესაძლებელია I2C ბრძანებით. გაითვალისწინეთ, რომ ეს არჩევითი ფუნქციაა და ACMP0H- ის ბარიერი უნდა შეიცვალოს კონკრეტული გულშემატკივართა სპეციფიკაციების შესაბამისად.
ნაბიჯი 10: გარე წრედის დიზაინი
გარე წრე საკმაოდ მარტივია. არსებობს GreenPAK– ის Pin6– თან დაკავშირებული ღილაკი, რომ ჩართოთ თუ არა ეს კონკრეტული მოწყობილობა მბრუნავი კონტროლისთვის და LED, რომელიც დაკავშირებულია Pin12– თან და Pin13– თან, მოწყობილობის არჩევისას.
ვინაიდან ვენტილატორი გადის 12 ვ, საჭიროა მისი გადართვის კონტროლის წყვილი FET. GreenPAK– ის Pin18 და Pin19 მართავს nFET– ს. როდესაც nFET ჩართულია, ის გაიყვანს pFET LOW- ის კარიბჭეს, რომელიც აკავშირებს ვენტილატორს +12 V. როდესაც nFET გამორთულია, PFET- ის კარიბჭე იწევს 1 kΩ რეზისტორით, რომელიც წყვეტს ვენტილატორს +12 ვ -დან
ნაბიჯი 11: PCB დიზაინი
დიზაინის პროტოტიპისთვის შეიკრიბა რამდენიმე PCB. PCB მარცხნივ არის "გულშემატკივართა კონტროლერი", რომელშიც განთავსებულია მბრუნავი კოდირება, 12 V ბუდე, SLG46108 GreenPAK და კონექტორები FT232H USB to I2C გარღვევის დაფისთვის. ორი PCB მარჯვნივ არის "გულშემატკივართა დაფები", რომელიც შეიცავს SLG46826 GreenPAK- ებს, ღილაკებს, კონცენტრატორებს, LED- ებს და გულშემატკივართა სათაურებს.
თითოეულ გულშემატკივართა დაფას აქვს დაფარული მამრობითი სათაური მარცხენა მხარეს და ქალი თავით მარჯვენა მხარეს, რათა მათ ერთმანეთთან მიჯაჭვული ჰქონდეთ. თითოეული გულშემატკივართა საბჭო შეიძლება იყოს დასახლებული რესურსებით, რომ დამოუკიდებლად გააკონტროლოს ორი გულშემატკივარი.
ნაბიჯი 12: C# პროგრამა
C# პროგრამა დაიწერა გულშემატკივართა დაფებთან ინტერფეისისათვის FT232H USB-I2C ხიდის საშუალებით. ეს პროგრამა შეიძლება გამოყენებულ იქნას თითოეული გულშემატკივრის სიხშირის შესაცვლელად I2C ბრძანებებით, რომლებიც გენერირდება აპლიკაციის მიერ.
პროგრამა პინგს უყრის ყველა 16 I2C მისამართს წამში ერთხელ და ავსებს GUI მონა მისამართებს, რომლებიც არსებობს. ამ მაგალითში გულშემატკივართა 1 (მონა მისამართის 0001) და ფან 3 (მონა მისამართის 0011) დაკავშირებულია დაფაზე. თითოეული გულშემატკივართა მოვალეობის ციკლის მორგება ინდივიდუალურად შეიძლება განხორციელდეს სლაიდერის ზოლის გადაადგილებით ან სლაიდერის ზოლის ქვეშ ტექსტში 0-256 მნიშვნელობის აკრეფით.
დასკვნები
ამ დიზაინის გამოყენებით შესაძლებელია 16 -მდე გულშემატკივრის დამოუკიდებლად გაკონტროლება (ვინაიდან არსებობს 16 შესაძლო I2C მონა მისამართები) მბრუნავი კოდირებით ან C# აპლიკაციით. ნაჩვენებია, თუ როგორ უნდა შეიქმნას PWM სიგნალი წყვილი ოფსეტური მრიცხველებით და როგორ გაიზარდოს და შემცირდეს ამ სიგნალის სამუშაო ციკლი გადატრიალების გარეშე.
გირჩევთ:
კომპიუტერის კონტროლი ჟესტებისა და შეხების საშუალებით: 3 ნაბიჯი
კომპიუტერის კონტროლი ჟესტებისა და შეხების საშუალებით: ეს არის დემო პროექტი ახალი Piksey Atto– სთვის. ჩვენ ვიყენებთ TTP224 touch IC და APDS-9960 ჟესტების მოდულს კომპიუტერის გასაკონტროლებლად. ჩვენ ვტვირთავთ ესკიზს Atto– ში, რომელიც მას USB კლავიატურის მსგავსად აქცევს და შემდეგ აგზავნის შესაბამის კლავიშთა კოდს
კომპიუტერის კონტროლი ნებისმიერი ელექტრონული მიკროსქემის ნაკრები: 4 ნაბიჯი
კომპიუტერის კონტროლი ნებისმიერი ელექტრონული მიკროსქემის ნაკრები: მე ნამდვილად მიყვარს მარტივი ელექტრონიკის ნაკრები, როგორიცაა Tronex 72+ სამეცნიერო სემინარი Tedco Toys– დან. გარდა იმისა, რომ ადვილი გამოსაყენებელია, Tronex– ს აქვს საკმარისი კომპონენტები პროექტების პროტოტიპირებისთვის ძალიან სწრაფად, რადგან თქვენ არ გჭირდებათ რაიმე ნაწილის დევნა, რადგან ისინი
სიკაშკაშის კონტროლი PWM დაფუძნებული LED კონტროლი Push ღილაკების, ჟოლოს Pi და Scratch გამოყენებით: 8 ნაბიჯი (სურათებით)
სიკაშკაშის კონტროლი PWM დაფუძნებული LED კონტროლი Push Buttons, Raspberry Pi და Scratch გამოყენებით: მე ვცდილობდი მეპოვა გზა იმის ახსნა, თუ როგორ მუშაობდა PWM ჩემს მოსწავლეებზე, ამიტომ მე დავაყენე საკუთარი თავი ამოცანა ვცდილობდი გავაკონტროლო LED სიკაშკაშე 2 ღილაკის გამოყენებით - ერთი ღილაკი გაზრდის LED- ს სიკაშკაშეს და მეორე აფერხებს მას. წინსვლისთვის
PSP როგორც კომპიუტერის ჯოისტიკი და შემდეგ თქვენი კომპიუტერის კონტროლი PSP– ით: 5 ნაბიჯი (სურათებით)
PSP როგორც კომპიუტერის ჯოისტიკი და შემდეგ თქვენი კომპიუტერის კონტროლი PSP– ით: თქვენ შეგიძლიათ ბევრი მაგარი რამ გააკეთოთ PSP homebrew– ით და ამ სასწავლო ინსტრუქციაში მე გასწავლით თუ როგორ გამოიყენოთ თქვენი PSP როგორც ჯოისტიკი თამაშების სათამაშოდ, მაგრამ ასევე არსებობს პროგრამა, რომელიც საშუალებას გაძლევთ გამოიყენოთ თქვენი ჯოისტიკი, როგორც თქვენი მაუსი. აქ არის დედა
სუპერ მარტივი კომპიუტერის კონტროლი 110 Vac– ით Crydom Solid-State Relay– ის გამოყენებით: 3 ნაბიჯი (სურათებით)
სუპერ მარტივი PC კონტროლი 110 ვაკის გამოყენებით Crydom Solid-State Relay: მე ვემზადები, რომ ვცადო ჩემი ხელი ცხელი ფირფიტის შედუღების დროს. ამიტომ, მე მჭირდებოდა გზა, რომ გამეკონტროლებინა 110Vac ჩემი კომპიუტერიდან. ეს ინსტრუქცია გვიჩვენებს, თუ როგორ ადვილად ვაკონტროლოთ 110Vac სერიული გამომავალი პორტიდან კომპიუტერზე. სერიული პორტი, რომელსაც ვიყენებდი იყო USB ტიპის