Სარჩევი:
- მარაგები
- ნაბიჯი 1: TSSOP ჩიპის დალევა ბრეაკოუტ დაფაზე
- ნაბიჯი 2: გაყვანილობა
- ნაბიჯი 3: მიიღეთ Arduino ბიბლიოთეკა DigiPot– ის გასაკონტროლებლად
- ნაბიჯი 4: ახალი ბიბლიოთეკის იმპორტი Arduino IDE– ში
- ნაბიჯი 5: ბიბლიოთეკის მაგალითები
- ნაბიჯი 6: წყაროს კოდის შესწავლა
- ნაბიჯი 7: წყაროს კოდის გაგება და ესკიზის გაშვება
- ნაბიჯი 8: პრობლემების მოგვარება
- ნაბიჯი 9: შიდა და დამატებითი ინფორმაცია
- ნაბიჯი 10: ალტერნატიული გაყვანილობის დიაგრამა
ვიდეო: MCP41HVX1 ციფრული პოტენომეტრი Arduino– სთვის: 10 ნაბიჯი (სურათებით)
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:16
MCP41HVX1 ციფრული პოტენომეტრების ოჯახი (იგივე DigiPots) არის მოწყობილობები, რომლებიც ასახავს ანალოგური პოტენომეტრის ფუნქციას და კონტროლდება SPI– ით. განაცხადის მაგალითი იქნება სტერეოზე ხმის ღილაკის შეცვლა DigiPot– ით, რომელსაც აკონტროლებს Arduino. ეს ვარაუდობს, რომ ხმის კონტროლი თქვენს სტერეოზე არის პოტენომეტრი და არა მბრუნავი კოდირება.
MCP41HVX1 ოდნავ განსხვავდება სხვა DigiPots– დან იმით, რომ მათ აქვთ გაყოფილი სარკინიგზო დიზაინი. ეს ნიშნავს, რომ სანამ DigiPot თავად შეიძლება კონტროლდებოდეს არდუინოს გამომავალი ძაბვით, სიგნალი, რომელიც გადადის რეზისტორების ქსელში, მუშაობს ძაბვის გაცილებით დიდი დიაპაზონით (36 ვოლტამდე). DigiPots– ის უმრავლესობა, რომლის კონტროლიც შესაძლებელია 5 ვოლტით, შემოიფარგლება 5 ვოლტიანი რეზისტორული ქსელის მასშტაბით, რაც ზღუდავს მათ გამოყენებას არსებული მიკროსქემის გადაკეთებისათვის, რომელიც მუშაობს უფრო მაღალ ძაბვაზე, როგორიცაა მანქანაში ან ნავში.
MCP41HVX1 ოჯახი შედგება შემდეგი ჩიპებისგან:
- MCP41HV31-104E/ST - 100k ohm (7 ბიტი)
- MCP41HV31-503E/ST - 50k ohm (7 ბიტი)
- MCP41HV31-103E/ST - 10k ohm (7 ბიტი)
- MCP41HV31-502E/ST - 5k ohm (7 ბიტი)
- MCP41HV31-103E/MQ - 10k ohm (7 ბიტი)
- MCP41HV51-104E/ST - 100k ohm (8 ბიტი)
- MCP41HV51-503E/ST - 50k ohm (8 ბიტი)
- MCP41HV51T -503E/ST - 50k ohm (8 ბიტი)
- MCP41HV51-103E/ST - 10k ohm (8 ბიტი)
- MCP41HV51-502E/ST - 5k ohm (8 ბიტი)
7 ბიტიანი ჩიპი იძლევა 128 საფეხურს რეზისტორის ქსელში და 8 ბიტიანი ჩიპი 256 საფეხურს რეზისტორის ქსელში. ეს ნიშნავს, რომ 8 ბიტიანი ჩიპი იძლევა ორჯერ მეტ წინააღმდეგობის მნიშვნელობას პოტენომეტრიდან.
მარაგები
- აირჩიეთ შესაბამისი MCP41HVX1 ჩიპი ზემოთ ჩამოთვლილი სიიდან. თქვენს მიერ არჩეული ჩიპი ემყარება თქვენი განაცხადისათვის საჭირო წინააღმდეგობის დიაპაზონს. ეს ინსტრუქცია დაფუძნებულია ჩიპის TSSOP 14 პაკეტის ვერსიებზე, რათა ამ სახელმძღვანელოსთან ერთად აირჩიოთ ნებისმიერი ჩიპი სიაში, გარდა MCP41HV31-103E/MQ, რომელიც არის QFN პაკეტი. მიზანშეწონილია მიიღოთ რამდენიმე დამატებითი ჩიპი, რადგან მე ცუდს შევხვდი და ისინი იაფია. ჩემი შევუკვეთე დიგი-კის.
- მეორადი DC კვების წყარო, რომელიც არის 10 -დან 36 ვოლტამდე. ჩემს მაგალითში ვიყენებ 17 ვოლტიანი კედლის მეჭეჭის DC კვების ბლოკს ძველი კვების ბლოკიდან.
- შედუღების ნაკადი
- გასაყიდი რკინა
- Solder
- პინცეტი და / ან კბილის ჯაგრისი
- TSSOP 14 პინი გარღვევის დაფა - Amazon - QLOUNI 40 ცალი PCB პროტო დაფები SMD to DIP Adapter Plate Converter TQFP (32 44 48 64 84 100 100) SOP SSOP TSSOP 8 10 14 16 20 20 24 24 28 (ასორტიმენტი. ბევრი ხელმისაწვდომია მრავალი პროექტისთვის)
- რაოდენობრივი 2 - 7 პინიანი სათაურები - ამაზონი - DEPEPE 30 ცალი 40 პინ 2.54 მმ მამრობითი და მდედრობითი ქინძისთავები Arduino Prototype Shield– ისთვის (საჭიროა ზომის შემცირება. ბევრი პაკეტი მრავალი პროექტისათვის)
- Arduino Uno - თუ არ გაქვთ, მე გირჩევთ მიიღოთ ოფიციალური დაფა. მე არაერთ ოფიციალურ ვერსიასთან გამიმართლა. დიგი -გასაღები - არდუინო უნო
- მრავალმეტრიანი, რომელსაც შეუძლია გაზომოთ წინააღმდეგობა და ასევე შეამოწმოთ უწყვეტობა
- ჯუმბერის მავთულები
- პურის დაფა
- ძალიან რეკომენდირებულია, მაგრამ აბსოლუტურად არ არის საჭირო ხელის თავისუფალი გამადიდებელი, რადგან TSSOP ჩიპები ძალიან მცირეა. მულტიმეტრზე შესადუღებლად და შესამოწმებლად დაგჭირდებათ ორივე ხელი. მე ვიყენებ წყვილ Harbor Freight 3x Clip-On გამადიდებელს ჩემი დანიშნულების სათვალეების ზემოთ და თავისუფალ ფეხზე / არტიკულტირებულ გამადიდებელ შუშას. სხვა ვარიანტებია წყვილი იაფი მკითხველი ფასდაკლებით ან დოლარის მაღაზიიდან. თქვენ შეგიძლიათ მკითხველებიც კი ატაროთ დანიშნულებისამებრ სათვალეზე ან მიიღოთ ორი წყვილი მკითხველი (ერთი მეორესთან ერთად) იმის მიხედვით, თუ რამდენად კარგი (ან ცუდი) არის თქვენი ხედვა. თუ თქვენ აორმაგებთ სათვალეებს, იყავით ფრთხილად, რადგან თქვენი მხედველობის დიაპაზონი ძალიან შეზღუდული იქნება, ასე რომ დარწმუნდით, რომ ამოიღოთ ისინი სხვა რამის გაკეთებამდე. ასევე ფრთხილად იყავით შედუღების დროს.
- კიდევ ერთი პუნქტი, რომელიც არ არის საჭირო, მაგრამ რეკომენდირებულია არის Harbor Freight Helping Hands. ისინი ალიგატორის სამაგრებია, რომლებიც მიმაგრებულია ლითონის ფუძეზე. ეს ხელმისაწვდომია მრავალი სხვა გამყიდველისგან ინტერნეტში, ასევე სხვადასხვა ბრენდის სახელებით. ეს ძალიან გამოსადეგია ჩიპის გამობერვისას დაფაზე.
ნაბიჯი 1: TSSOP ჩიპის დალევა ბრეაკოუტ დაფაზე
TSSOP ჩიპი უნდა იყოს შეკრული ბრეაკოუტ დაფაზე, ასე რომ თქვენ შეგიძლიათ გამოიყენოთ ის პურის დაფაზე ან პირდაპირ DuPont მხტუნავებთან. პროტოტიპის მუშაობისთვის ისინი ძალიან მცირეა უშუალო მუშაობისთვის.
მათი მცირე ზომის გამო, TSSOP ჩიპის შედუღება შეიძლება იყოს ამ პროექტის ყველაზე რთული ნაწილი, მაგრამ ამის ხრიკის ცოდნა ხდის ამოცანას, რომლის შესრულებაც ნებისმიერს შეუძლია. არსებობს რამდენიმე ტექნიკა, ერთი ქვემოთ არის ის, რაც მე გავაკეთე.
სტრატეგია მდგომარეობს იმაში, რომ შედუღება უნდა მოხდეს ბრეაკოუტ დაფის კვალზე.
- არ დადოთ ჩიპი ბრეკაუტ დაფაზე ინსტრუქციის მიღებამდე.
- პირველი რაც უნდა გააკეთოთ არის დიდი რაოდენობის ნაკადის გადატანა გარღვევის დაფაზე.
- შემდეგი, თქვენი soldering რკინის სითბოს ზოგიერთი solder და მიედინება მას კვალი.
- მოათავსეთ კიდევ რამდენიმე ნაკადი თავზე, რომელიც გადმოიყარეთ კვალიზე, ასევე ჩიპის ფეხების ბოლოში.
- მოათავსეთ ჩიპი იმ კვალის თავზე, სადაც უბრალოდ მოათავსეთ შედუღება და ნაკადი. პინცეტი ან კბილის ჩიპი ქმნის კარგ ინსტრუმენტებს ჩიპის ზუსტად დაყენების მიზნით. დარწმუნდით, რომ ჩიპი სწორად გასწორებულია ისე, რომ ყველა ქინძისთავები იყოს პირდაპირ კვალის ზემოთ. გასწორება pin ერთი ჩიპი ერთად მარკირების pin ერთი შესვენება out ფორუმში.
- თქვენი გამაგრილებელი რკინის გამოყენებით გაათბეთ ჩიპის ბოლოს ერთი ქინძისთავი (ან პინი 1, 7, 8, ან 14) დაჭერით მას კვალში. Solder რომ თქვენ ადრე მიმართა იქნება დნება და შემოვა გარშემო pin.
უყურეთ ვიდეოს ამ ნაბიჯში, რომ ნახოთ დემონსტრაცია, თუ როგორ უნდა შედუღოთ ჩიპი გარღვევის დაფაზე. ერთი წინადადება, რომელიც მე მაქვს, რომელიც განსხვავდება ვიდეოსგან არის ის, რომ მას შემდეგ რაც შეაერთეთ პირველი პინ სტოპი და გადაამოწმეთ მთელი ჩიპის გასწორება, რომ დარწმუნდეთ რომ ყველა ქინძისთავები კვლავ არის კვალის თავზე. თუ ცოტათი გათიშული ხართ, ადვილია ამ ეტაპზე გამოსწორება. როდესაც თავს კომფორტულად გრძნობთ, ყველაფერი კარგად გამოიყურება, ჩიპის საპირისპირო ბოლოში მიამაგრეთ სხვა პინი და კვლავ შეამოწმეთ განლაგება. თუ ეს კარგად გამოიყურება, წადი და გააკეთე დანარჩენი ქინძისთავები.
მას შემდეგ რაც გაამაგრეთ ყველა ქინძისთავი ვიდეო გვთავაზობს გამადიდებელი შუშის გამოყენებას თქვენი კავშირების გადამოწმების მიზნით. უკეთესი მეთოდია მულტიმეტრის გამოყენება უწყვეტობის შესამოწმებლად. თქვენ უნდა მოათავსოთ ერთი ზონდი ქინძის ფეხიზე და მეორე ზონდი დაფის იმ ნაწილზე, სადაც თავსაბურავს შეაერთებთ (იხილეთ მეორე სურათი ამ ნაბიჯში). თქვენ ასევე უნდა შეამოწმოთ მიმდებარე ქინძისთავები, რომ დარწმუნდეთ, რომ ისინი ერთმანეთთან არ არის დაკავშირებული რამოდენიმე ქინძის ერთად შედუღების გამო. მაგალითად, თუ თქვენ ადასტურებთ პინ 4 -ს, ასევე შეამოწმეთ პინ 3 და პინ 5. პინ 4 უნდა აჩვენოს უწყვეტობა, ხოლო პინ 3 და პინ 5 უნდა აჩვენოს ღია წრე. ერთადერთი გამონაკლისი არის ის, რომ Wiper P0W შეიძლება აჩვენოს კავშირი P0A ან P0B.
ᲠᲩᲔᲕᲔᲑᲘ:
- როგორც აღვნიშნეთ მასალების ჩამონათვალში გარკვეული გადიდება, რაც ხელებს თავისუფლად ტოვებს სამუშაოდ, ძალიან დაგეხმარებათ ამ ნაბიჯში.
- ალიგატორის დამჭერის გამოყენება, რომელიც ხელს უწყობს გარღვევის დაფის დაჭერას, ამარტივებს ყველაფერს ოდნავ.
- ჩაწერეთ ჩიპის ნომერი ნიღბის ფირზე და დაიდეთ ბოლოში გამყოფი დაფის ბოლოში (იხილეთ ამ სურათის მესამე სურათი). თუ მომავალში თქვენ გჭირდებათ ჩიპის იდენტიფიცირება, გაცილებით ადვილი იქნება ნიღაბი ფირის წაკითხვა. ჩემი პირადი გამოცდილება არის ის, რომ მე მივიღე ცოტა ნაკადი ჩიპზე და ნომერი მთლიანად გამოვიდა, ასე რომ, მე მხოლოდ ფირზე მაქვს.
ნაბიჯი 2: გაყვანილობა
თქვენ უნდა დაუკავშიროთ არდუინო და დიგიპოტი, როგორც ეს ნაჩვენებია გაყვანილობის დიაგრამაში. ქინძისთავები, რომლებიც გამოიყენება ემყარება Arduino Uno– ს განლაგებას. თუ თქვენ იყენებთ სხვა Arduino– ს, ნახეთ ბოლო ნაბიჯი.
ნაბიჯი 3: მიიღეთ Arduino ბიბლიოთეკა DigiPot– ის გასაკონტროლებლად
პროგრამირების გასაადვილებლად შევქმენი ბიბლიოთეკა, რომელიც ხელმისაწვდომია Github– ზე. გადადით github.com/gregsrabian/MCP41HVX1 MCP41HVX1 ბიბლიოთეკის მისაღებად. თქვენ უნდა აირჩიოთ "კლონი" ღილაკი და შემდეგ აირჩიოთ "ჩამოტვირთეთ Zip". დარწმუნდით, რომ შეინახეთ Zip ფაილი იმ ადგილას, სადაც იცით სად არის. დესკტოპის ან გადმოტვირთვის საქაღალდე მოსახერხებელი ადგილებია. მას შემდეგ რაც შემოიტანთ Arduino IDE– ში შეგიძლიათ წაშალოთ გადმოტვირთვის ადგილიდან.
ნაბიჯი 4: ახალი ბიბლიოთეკის იმპორტი Arduino IDE– ში
Arduino IDE– ში გადადით "ესკიზზე", შემდეგ აირჩიეთ "ბიბლიოთეკის ჩართვა", შემდეგ "ZIP ბიბლიოთეკის დამატება..". გამოჩნდება ახალი დიალოგური ფანჯარა, რომლის საშუალებითაც შეგიძლიათ აირჩიოთ. ZIP ფაილი, რომელიც გადმოწერეთ GitHub– დან.
ნაბიჯი 5: ბიბლიოთეკის მაგალითები
მას შემდეგ რაც დაამატეთ ახალი ბიბლიოთეკა შეამჩნევთ, რომ თუ გადახვალთ "ფაილზე", შემდეგ აირჩიეთ "მაგალითები" და შემდეგ აირჩევთ "მაგალითები მორგებული ბიბლიოთეკიდან", ახლა თქვენ ნახავთ ჩანაწერს MCP41HVX1 სიაში. თუ თქვენ გადაადგილდებით ამ ჩანაწერს, ნახავთ WLAT, Wiper Control და SHDN, რომლებიც ესკიზის მაგალითია. ამ ინსტრუქციაში ჩვენ ვიყენებთ Wiper Control მაგალითს.
ნაბიჯი 6: წყაროს კოდის შესწავლა
#მოიცავს "MCP41HVX1.h" // განსაზღვრეთ Arduino- ში გამოყენებული ქინძისთავები#განსაზღვრეთ WLAT_PIN 8 // თუ დაყენებულია დაბალზე "გადაიტანეთ და გამოიყენეთ" #define SHDN_PIN 9 // დააყენეთ მაღლა, რათა გაუშვათ რეზისტორული ქსელი#განსაზღვრეთ CS_PIN 10 // დაბალზე დაყენება SPI– სთვის ჩიპის შესარჩევად // განსაზღვრეთ ტესტის პროგრამისთვის გამოყენებული ზოგიერთი მნიშვნელობა#განსაზღვრეთ FORWARD true#განსაზღვრეთ REVERSE false#განსაზღვრეთ MAX_WIPER_VALUE 255 // მაქსიმალური გამწმენდი დაფასებულია MCP41HVX1 Digipot (CS_PIN, SHDN_PIN, WLAT_PIN); ბათილად დაყენება () { სერიული.დაწყება (9600); Serial.print ("საწყისი პოზიცია ="); Serial.println (Digipot. WiperGetPosition ()); // საწყისი მნიშვნელობის ჩვენება Serial.print ("დააყენეთ გამწმენდის პოზიცია ="); Serial.println (Digipot. WiperSetPosition (0)); // გამწმენდის პოზიციის დაყენება 0} void loop () {static bool bDirection = FORWARD; int nWiper = Digipot. WiperGetPosition (); // მიიღეთ მიმდინარე გამწმენდის პოზიცია // განსაზღვრეთ მიმართულება. if (MAX_WIPER_VALUE == nWiper) {bDirection = REVERSE; } else if (0 == nWiper) {bDirection = FORWARD; } // გადაიტანეთ დიგიპოტის გამწმენდი თუ (FORWARD == bDirection) {nWiper = Digipot. WiperIncrement (); // მიმართულება წინ არის Serial.print ("ზრდა -"); } else {nWiper = Digipot. WiperDecrement (); // მიმართულება არის ჩამორჩენილი Serial.print ("შემცირება -"); } Serial.print ("გამწმენდის პოზიცია ="); Serial.println (nWiper); დაგვიანება (100);}
ნაბიჯი 7: წყაროს კოდის გაგება და ესკიზის გაშვება
ეს წყაროს კოდი ხელმისაწვდომია Arduino IDE– ში, მაგალითების მენიუში გადასვლით და თქვენ მიერ დაინსტალირებული MCP41HVX1– ით (იხ. წინა ნაბიჯი). MCP41HVX1- ში გახსენით "Wiper Control" მაგალითი. უმჯობესია გამოიყენოთ კოდი, რომელიც შედის ბიბლიოთეკასთან, თითქოს რაიმე ხარვეზის გამოსწორება მოხდება, ის განახლდება.
Wiper Control– ის მაგალითი აჩვენებს შემდეგ API– ს MCP41HVX1 ბიბლიოთეკიდან:
- კონსტრუქტორი MCP41HVX1 (int nCSPin, int nSHDNPin, int nWLATPin)
- WiperGetPosition ()
- WiperSetPosition (byte byWiper)
- WiperIncrement ()
- WiperDecrement ()
ნიმუშის კოდის ფარგლებში დარწმუნდით, რომ დააყენეთ MAX_WIPER_VALUE 127 -ზე, თუ იყენებთ 7 ბიტიან ჩიპს. ნაგულისხმევი არის 255 რაც არის 8 ბიტიანი ჩიპებისთვის. თუ თქვენ შეცვლით ნიმუშს Arduino IDE აიძულებს თქვენ აირჩიოთ ახალი სახელი პროექტისთვის, რადგან ის არ მოგცემთ საშუალებას განაახლოთ მაგალითის კოდი. ეს მოსალოდნელი საქციელია.
ყოველ ჯერზე მარყუჟის გავლით, მტვერსასრუტი გაიზრდება ერთი ნაბიჯით ან შემცირდება ერთი საფეხურით, იმისდა მიხედვით, თუ რა მიმართულებით მიდის იგი. თუ მიმართულება მაღლა დგას და ის მიაღწევს MAX_WIPER_VALUE- ს, ის გადააბრუნებს მიმართულებას. თუ ის 0 -ს დაარტყამს, ის კვლავ უკან ბრუნდება.
ესკიზის გაშვებისას სერიული მონიტორი განახლდება მიმდინარე გამწმენდის პოზიციით.
წინააღმდეგობის ცვლილების სანახავად თქვენ უნდა გამოიყენოთ მულტიმეტრიანი კომპლექტი Ohms– ის წასაკითხად. განათავსეთ მრიცხველის ზონდები P0B (პინი 11) და P0W (პინ 12) დიგიპოტზე, რათა ნახოთ წინააღმდეგობის ცვლილება აპლიკაციის მუშაობისას. გაითვალისწინეთ, რომ წინააღმდეგობის მნიშვნელობა არ დაეცემა ნულამდე, რადგან ჩიპში არის შიდა წინააღმდეგობა, მაგრამ ის მიაღწევს 0 Ohms– ს. დიდი ალბათობით ის არც მაქსიმალურ მნიშვნელობას მიაღწევს, მაგრამ ახლოს იქნება.
ვიდეოს ყურებისას თქვენ ხედავთ, რომ მულტიმეტრი აჩვენებს წინააღმდეგობის გაზრდას მანამ, სანამ არ მიაღწევს მაქსიმალურ მნიშვნელობას და შემდეგ იწყებს კლებას. ვიდეოში გამოყენებული ჩიპი არის MCP41HV51-104E/ST, რომელიც არის 8 ბიტიანი ჩიპი 100k ohm მაქსიმალური მნიშვნელობით.
ნაბიჯი 8: პრობლემების მოგვარება
თუ საქმეები არ მუშაობს ისე, როგორც მოსალოდნელი იყო, აქ არის რამოდენიმე რამ, რაც უნდა გამოიყურებოდეს.
- შეამოწმეთ თქვენი გაყვანილობა. ყველაფერი სწორად უნდა იყოს დაკავშირებული. დარწმუნდით, რომ თქვენ იყენებთ გაყვანილობის სრულ დიაგრამას, როგორც ეს მითითებულია ამ ინსტრუქციაში. არსებობს ალტერნატიული გაყვანილობის დიაგრამები წარმოდგენილი README, ბიბლიოთეკის წყაროს კოდი და ქვემოთ მოცემულ ინსტრუქციებში, მაგრამ დაიცავით ის, რაც დოკუმენტირებულია ზემოთ გაყვანილობის საფეხურზე ზემოთ.
- დარწმუნდით, რომ თქვენი ციფრული ქოთნის ყველა პინი შეკერილია ბრეაკოუტ დაფაზე. ვიზუალური შემოწმების გამოყენება არ არის საკმარისი. დარწმუნდით, რომ გადაამოწმეთ თქვენი მულტიმეტრის უწყვეტობის ფუნქციის გამოყენებით, რომ გადაამოწმოთ, რომ დიგიპოტის ყველა ქინძისთავები ელექტრონულად არის დაკავშირებული ბრეაკოუტ დაფაზე და არ არის შედუღების ქინძისთავების ჯვარედინი კავშირი, რომელიც შესაძლოა გადალახული იყოს კვალზე.
- თუ სერიული მონიტორი აჩვენებს, რომ ესკიზის გაშვებისას იცვლება გამწმენდის პოზიცია, მაგრამ წინააღმდეგობის მნიშვნელობა არ იცვლება, ეს არის მაჩვენებელი იმისა, რომ WLAT ან SHDN არ ახდენს სათანადო კავშირს გარღვევის დაფასთან ან WLAT– ის ან SHDN– ის გამწმენდ მოწყობილობებთან. არ არის დაკავშირებული სწორად არდუინოსთან.
- დარწმუნდით, რომ იყენებთ მეორადი კვების ბლოკს, რომელიც არის DC 10 -დან 36 ვოლტამდე.
- დარწმუნდით, რომ 10 -დან 36 ვოლტამდე კვების ბლოკი მუშაობს ძაბვის გაზომვით თქვენი მულტიმეტრით.
- სცადეთ გამოიყენოთ ორიგინალური ესკიზი. თუ რაიმე ცვლილებები შეიტანეთ, შესაძლოა შეცდომა დაუშვათ.
- თუ პრობლემების მოგვარების არცერთი ნაბიჯი არ დაგვეხმარა სხვა დიგიპოტის ჩიპის ცდაში. ვიმედოვნებთ, რომ თქვენ იყიდეთ რამოდენიმე და მიამაგრეთ ისინი ერთდროულად TSSOP ბრეაკოუტ დაფაზე, ასე რომ, საქმე მხოლოდ ერთი მეორის შეცვლაზე უნდა იყოს. მე მქონდა ცუდი ჩიპი, რამაც საკმაოდ დიდი იმედგაცრუება გამოიწვია და ეს იყო გამოსწორება.
ნაბიჯი 9: შიდა და დამატებითი ინფორმაცია
Დამატებითი ინფორმაცია:
დამატებითი ინფორმაცია შეგიძლიათ იხილოთ MCP41HVX1 მონაცემთა ფურცელში.
MCP41HVX1 ბიბლიოთეკის სრული დოკუმენტაცია ხელმისაწვდომია README.md ფაილში, რომელიც ბიბლიოთეკის გადმოტვირთვის ნაწილია. ეს ფაილი ჩაწერილია დაბლოკვით და მისი ნახვა შესაძლებელია Github– ის შესაბამისი ფორმატირებით (გადახედეთ გვერდის ბოლოში) ან ნიშნის ქვემოთ დამთვალიერებელი / რედაქტორით.
კომუნიკაცია არდუინოსა და დიგიპოტს შორის:
არდუინო DigiPot– თან კომუნიკაციას ახდენს SPI– ის გამოყენებით. მას შემდეგ, რაც ბიბლიოთეკა აგზავნის wiper პოზიციის ბრძანებას, როგორიცაა WiperIncrement, WiperDecrement, ან WiperSetPosition, ის შემდეგ ურეკავს WiperGetPosition- ს, რომ მიიღოს ჩამწერიდან მტვერსასრუტის პოზიცია. ამ Wiper ბრძანებებისგან დაბრუნებული მნიშვნელობა არის wiper- ის პოზიცია, როგორც ჩიპი ხედავს მას და შეიძლება გამოყენებულ იქნას იმის დასადასტურებლად, რომ wiper გადავიდა მოსალოდნელ ადგილას.
გაფართოებული ფუნქციონირება (WLAT & SHDN)
ეს მოწინავე ფუნქციები არ არის ნაჩვენები "Wiper Control" მაგალითში. ბიბლიოთეკაში არის API პროგრამები WLAT & SHDN კონტროლისთვის. ასევე არსებობს WLAT და SHDN მაგალითის ესკიზები (იმავე ადგილას, როგორც Wiper Control ესკიზი) ბიბლიოთეკასთან ერთად.
SHDN (გამორთვა)
SHDN გამოიყენება რეზისტორული ქსელის გამორთვის ან ჩართვის მიზნით. SHDN- ის დაბალ გამორთვაზე და მაღალზე დაყენება რეზისტორების ქსელს. როდესაც რეზისტორის ქსელი გამორთულია P0A (DigiPot pin 13) გათიშულია და P0B (DigiPot pin 11) უკავშირდება P0W (DigiPot pin 12). მცირე წინააღმდეგობა იქნება P0B და P0W შორის, ასე რომ თქვენი მრიცხველი არ წაიკითხავს 0 Ohms.
თუ თქვენს აპლიკაციას არ სჭირდება SHDN- ის კონტროლი, შეგიძლიათ პირდაპირ მიაწოდოთ HIGH (იხ. გაყვანილობის ალტერნატიული დიაგრამა). თქვენ დაგჭირდებათ სწორი კონსტრუქტორის გამოყენება ან MCP41HVX1_PIN_NOT_CONFIGURED კონსტრუქტორზე გადასვლა იმის მითითებაზე, რომ SHDN მყარად არის დაკავშირებული. მნიშვნელოვანია აღინიშნოს, რომ თუ თქვენ მიჰყვებით მაგალითს, თქვენ უნდა გამოიყენოთ გაყვანილობის სრული სქემა (იხ. გაყვანილობის ნაბიჯი ზემოთ).
WLAT (ჩაწერეთ ჩანაწერი)
შიდა არქიტექტურა არის ორი კომპონენტი ერთ ჩიპზე. ერთ -ერთი კომპონენტია SDI ინტერფეისი და რეესტრი, რომელსაც აქვს გამწმენდის მნიშვნელობა. მეორე კომპონენტი არის რეზისტორული ქსელი. WLAT აკავშირებს ორივე შიდა კომპონენტს.
როდესაც WLAT დაყენებულია LOW– ზე ნებისმიერი მითითებული wiper პოზიციის ბრძანების ინფორმაცია გადადის პირდაპირ რეზისტორულ ქსელში და ხდება wiper– ის პოზიციის განახლება.
თუ WLAT დაყენებულია HIGH– ზე, SPI– ით გადატანილი გამწმენდის პოზიციის ინფორმაცია ინახება შიდა რეესტრში, მაგრამ არ გადადის რეზისტორების ქსელში და, შესაბამისად, გამწმენდის პოზიცია არ განახლდება. მას შემდეგ, რაც WLAT დაყენებულია LOW– ზე, მნიშვნელობა გადადის რეგისტრიდან რეზისტორულ ქსელში.
WLAT სასარგებლოა, თუ თქვენ იყენებთ მრავალ დიგიპოტს, რომლის სინქრონიზაციაც გჭირდებათ. სტრატეგია არის WLAT- ის დაყენება HIGH- ზე ყველა დიგიპოტზე და შემდეგ ყველა ჩიპზე wiper მნიშვნელობის დაყენება. მას შემდეგ, რაც გამწმენდის მნიშვნელობა გაიგზავნება ყველა დიგიპოტზე, WLAT შეიძლება დაყენდეს LOW ყველა მოწყობილობაზე ერთდროულად ისე, რომ ყველა მათგანს ერთდროულად გადაადგილდეს.
თუ თქვენ აკონტროლებთ მხოლოდ ერთ DigiPot– ს ან გაქვთ მრავალჯერადი, მაგრამ მათ არ სჭირდებათ სინქრონიზაცია, თქვენ სავარაუდოდ არ დაგჭირდებათ ეს ფუნქციონირება და, შესაბამისად, შეგიძლიათ WLAT პირდაპირ LOW– ზე მიაწოდოთ (იხ. გაყვანილობის ალტერნატიული დიაგრამა). თქვენ უნდა გამოვიყენოთ სწორი კონსტრუქტორი ან გავლა MCP41HVX1_PIN_NOT_CONFIGURED კონსტრუქტორზე იმის მითითებით, რომ WLAT მყარად არის დაკავშირებული. მნიშვნელოვანია აღინიშნოს, რომ თუ თქვენ მიჰყვებით მაგალითს, თქვენ უნდა გამოიყენოთ გაყვანილობის სრული სქემა (იხ. გაყვანილობის ნაბიჯი ზემოთ).
ნაბიჯი 10: ალტერნატიული გაყვანილობის დიაგრამა
გაყვანილობა
თქვენ გაქვთ შესაძლებლობა დაუკავშიროთ WLAT დიპპოტიდან პირდაპირ LOW / GND– ს, ციფრული პინთან შეერთების ნაცვლად. თუ ამას აკეთებთ, თქვენ ვერ შეძლებთ WLAT- ის კონტროლს. თქვენ ასევე გაქვთ შესაძლებლობა დაუკავშიროთ SHDN პირდაპირ HIGH– ს ციფრული პინის ნაცვლად. თუ ამას გააკეთებთ, თქვენ ვერ შეძლებთ SHDN- ის კონტროლს.
WLAT და SHDN ერთმანეთისგან დამოუკიდებელია, ასე რომ თქვენ შეგიძლიათ ერთი მაგარი მავთული დაუკავშიროთ და მეორე დაუკავშიროთ ციფრულ პინს, მყარი მავთული ორივე, ან დაუკავშიროთ ორივე ციფრულ ქინძისთავებს ისე, რომ მათი კონტროლი იყოს შესაძლებელი. მიმართეთ გაყვანილობის ალტერნატიულ დიაგრამას იმათთვის, ვისაც გინდათ მყარი მავთულები და გადახედეთ მთავარ გაყვანილობის დიაგრამას მე –2 საფეხურზე გაყვანილობის გასაკონტროლებლად ციფრული ქინძისთავებისთვის.
კონსტრუქტორები
MCP41HVX კლასში არის სამი კონსტრუქტორი. ჩვენ განვიხილავთ ორ მათგანს. ისინი ყველა დოკუმენტირებულია README.md ფაილში, ასე რომ, თუ დაინტერესებული ხართ მესამე კონსტრუქტორით, მიმართეთ დოკუმენტაციას.
- MCP41HVX1 (int nCSPin) - გამოიყენეთ ეს კონსტრუქტორი მხოლოდ იმ შემთხვევაში, თუ ორივე WLAT და SHDN მყარად არის დაკავშირებული.
- MCP41HVX1 (int nCSPin, int nSHDNPin, int nWLATPin) - გამოიყენეთ ეს კონსტრუქტორი, თუ WLAT ან SHDN მყარად არის დაკავშირებული. გაიარეთ მუდმივი MCP41HVX1_PIN_NOT_CONFIGURED, თუ პინი მტკიცედ არის სადენიანი ან პინის ნომერი, თუ ის ციფრულ პინთან არის დაკავშირებული.
nCSPin უნდა იყოს დაკავშირებული ციფრულ პინთან. არასწორია MCP41HVX1_PIN_NOT_CONFIGURED კონსტრუქტორზე გადაცემა nCSPin– ისთვის.
რა მოხდება, თუ არ ვიყენებ Arduino Uno– ს?
Arduino იყენებს SPI დიგიპოტთან კომუნიკაციისთვის. SPI ქინძისთავები არის კონკრეტული ქინძისთავები Arduino დაფაზე. SPI ქინძისთავები Uno– ში არის:
- SCK - პინ 13 Uno- ზე, რომელიც დაკავშირებულია დიგიპოტზე პინ 2 -თან
- MOSI - პინ 11 Uno- ზე, რომელიც დაკავშირებულია დიგიპოტზე 4 პინთან
- MISO - პინ 12 უნოზე, რომელიც დაკავშირებულია დიგიპოტზე პინ 5 -თან
თუ თქვენ იყენებთ არდუინოს, რომელიც არ არის Uno, თქვენ უნდა გაარკვიოთ რომელი პინია SCK, MOSI და MISO და დააკავშიროთ ისინი დიგიპოტთან.
ესკიზში გამოყენებული სხვა ქინძისთავები არის ჩვეულებრივი ციფრული ქინძისთავები, ასე რომ ნებისმიერი ციფრული პინი იმუშავებს. თქვენ უნდა შეცვალოთ ესკიზი, რათა მიუთითოთ ის პინები, რომლებსაც ირჩევთ არდუინოს დაფაზე, რომელსაც თქვენ იყენებთ. რეგულარული ციფრული ქინძისთავებია:
- CS - პინ 10 Uno დაკავშირებულია დიგიპოტზე 3 პინთან (განაახლეთ CS_PIN ესკიზში ახალი მნიშვნელობით)
- WLAT - პინ 8 Uno დაკავშირებულია დიგიპოტზე პინ 6 -თან (განახლეთ WLAT_PIN ესკიზში ახალი მნიშვნელობით)
- SHDN - პინ 9 Uno დაკავშირებულია დიგიპოტზე პინ 7 -თან (განახლეთ SHDN_PIN ესკიზში ახალი მნიშვნელობით)
გირჩევთ:
როგორ დაანგრიოთ ციფრული კალიპერი და როგორ მუშაობს ციფრული კალიბრი: 4 ნაბიჯი
როგორ დაანგრიოთ ციფრული კალიპერი და როგორ მუშაობს ციფრული კალიბრი: ბევრმა ადამიანმა იცის როგორ გამოიყენოს კალიბრები გაზომვისთვის. ეს გაკვეთილი გასწავლით თუ როგორ უნდა დაანგრიოთ ციფრული ხალიჩა და ახსნა თუ როგორ მუშაობს ციფრული ხალიჩა
პოტენომეტრი და სერვისი: კონტროლირებადი მოძრაობა არდუინოსთან ერთად: 4 ნაბიჯი
პოტენომეტრი და სერვო: კონტროლირებადი მოძრაობა არდუინოსთან ერთად: პირველ რიგში თქვენ უნდა შეაგროვოთ შესაბამისი მასალები ამ წრის გასაერთიანებლად
2 პოტენომეტრი და 2 სერვისი: კონტროლირებადი მოძრაობა არდუინოსთან ერთად: 4 ნაბიჯი
2 პოტენომეტრი და 2 სერვისი: კონტროლირებადი მოძრაობა არდუინოსთან ერთად: პირველ რიგში თქვენ უნდა შეაგროვოთ შესაბამისი მასალები ამ წრის გასაერთიანებლად
ტემპერატურის სენსორი Arduino– სთვის გამოიყენება COVID 19: 12 ნაბიჯი (სურათებით)
ტემპერატურის სენსორი არდუინოსთვის გამოიყენება COVID 19: ტემპერატურის სენსორი არდუინოსთვის არის ფუნდამენტური ელემენტი, როდესაც გვსურს გავზომოთ ადამიანის სხეულის პროცესორის ტემპერატურა. ტემპერატურის სენსორი არდუინოსთან უნდა იყოს კონტაქტში ან ახლოს, რომ მიიღოთ და გაზომოთ სითბოს დონე. ასეა
ციფრული Synth VRA8-Px Arduino Uno– სთვის: 3 ნაბიჯი
ციფრული Synth VRA8-Px Arduino Uno– სთვის: დამზადებულია ISGK ინსტრუმენტებით https://github.com/risgk/digital-synth-vra8-p/tree/vra8-px-v2 http://risgk.github.io/Concept 3 ხმის პარაფონიული სინთეზატორი Arduino Uno– სთვის ციფრული სინთის VRA8-P ვარიანტი