สารบัญ:

MCP41HVX1 Digital Potentiometer สำหรับ Arduino: 10 ขั้นตอน (พร้อมรูปภาพ)
MCP41HVX1 Digital Potentiometer สำหรับ Arduino: 10 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: MCP41HVX1 Digital Potentiometer สำหรับ Arduino: 10 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: MCP41HVX1 Digital Potentiometer สำหรับ Arduino: 10 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: This component can control tons of circuits! Digital Potentiometer Guide! EB#51 2024, กรกฎาคม
Anonim
MCP41HVX1 โพเทนชิโอมิเตอร์แบบดิจิตอลสำหรับ Arduino
MCP41HVX1 โพเทนชิโอมิเตอร์แบบดิจิตอลสำหรับ Arduino

โพเทนชิโอมิเตอร์แบบดิจิตอลตระกูล MCP41HVX1 (หรือที่เรียกว่า DigiPots) เป็นอุปกรณ์ที่เลียนแบบการทำงานของโพเทนชิออมิเตอร์แบบอะนาล็อกและควบคุมผ่าน SPI ตัวอย่างแอปพลิเคชันจะแทนที่ปุ่มปรับระดับเสียงบนสเตอริโอของคุณด้วย DigiPot ที่ควบคุมโดย Arduino นี่ถือว่าตัวควบคุมระดับเสียงบนสเตอริโอของคุณเป็นโพเทนชิออมิเตอร์ ไม่ใช่ตัวเข้ารหัสแบบหมุน

MCP41HVX1 นั้นแตกต่างเล็กน้อยจาก DigiPots อื่น ๆ เนื่องจากมีการออกแบบรางแยก ซึ่งหมายความว่าในขณะที่ DigiPot สามารถควบคุมได้ด้วยแรงดันเอาต์พุตของ Arduino แต่สัญญาณที่ส่งผ่านเครือข่ายตัวต้านทานจะทำงานได้ในช่วงแรงดันไฟฟ้าที่มากกว่า (สูงสุด 36 โวลต์) DigiPots ส่วนใหญ่ที่สามารถควบคุมได้โดย 5 โวลต์จะถูก จำกัด ไว้ที่ 5 โวลต์ในเครือข่ายตัวต้านทานซึ่งจำกัดการใช้งานสำหรับการติดตั้งวงจรที่มีอยู่ซึ่งทำงานด้วยแรงดันไฟฟ้าที่สูงขึ้นเช่นสิ่งที่คุณพบในรถยนต์หรือเรือ

ตระกูล MCP41HVX1 ประกอบด้วยชิปต่อไปนี้:

  • MCP41HV31-104E/ST - 100k โอห์ม (7 บิต)
  • MCP41HV31-503E/ST - 50k โอห์ม (7 บิต)
  • MCP41HV31-103E/ST - 10k โอห์ม (7 บิต)
  • MCP41HV31-502E/ST - 5k โอห์ม (7 บิต)
  • MCP41HV31-103E/MQ - 10k โอห์ม (7 บิต)
  • MCP41HV51-104E/ST - 100k โอห์ม (8 บิต)
  • MCP41HV51-503E/ST - 50k โอห์ม (8 บิต)
  • MCP41HV51T-503E/ST - 50k โอห์ม (8 บิต)
  • MCP41HV51-103E/ST - 10k โอห์ม (8 บิต)
  • MCP41HV51-502E/ST - 5k โอห์ม (8 บิต)

ชิป 7 บิตอนุญาตให้มี 128 ขั้นตอนในเครือข่ายตัวต้านทานและชิป 8 บิตอนุญาตให้ 256 ขั้นตอนในเครือข่ายตัวต้านทาน ซึ่งหมายความว่าชิป 8 บิตอนุญาตให้มีค่าความต้านทานเป็นสองเท่าจากโพเทนชิออมิเตอร์

เสบียง

  • เลือกชิป MCP41HVX1 ที่เหมาะสมจากรายการด้านบน ชิปที่คุณเลือกจะขึ้นอยู่กับช่วงความต้านทานที่จำเป็นสำหรับแอปพลิเคชันของคุณ คำแนะนำนี้ใช้ชิปรุ่นแพ็คเกจ TSSOP 14 ดังนั้นให้ทำตามคำแนะนำนี้โดยเลือกชิปในรายการยกเว้น MCP41HV31-103E / MQ ซึ่งเป็นแพ็คเกจ QFN ขอแนะนำให้ซื้อชิปเพิ่มสักสองสามอันเพราะผมเจออันที่แย่และราคาไม่แพง ฉันสั่งของฉันจาก Digi-Key
  • แหล่งจ่ายไฟ DC สำรองที่มีตั้งแต่ 10 ถึง 36 โวลต์ ในตัวอย่างของฉัน ฉันใช้แหล่งจ่ายไฟ DC หูดที่ผนัง 17 โวลต์จากกล่องจ่ายไฟเก่าของฉัน
  • ฟลักซ์การบัดกรี
  • หัวแร้ง
  • ประสาน
  • แหนบและ\หรือไม้จิ้มฟัน
  • TSSOP 14 pin breakout board - Amazon - QLOUNI 40pcs PCB Proto Boards SMD to DIP Adapter Plate Converter TQFP (32 44 48 64 84 100) SOP SSOP TSSOP 8 10 14 16 20 23 24 28 (คละขนาด มีให้เลือกหลายแบบ)
  • หาจำนวน 2 - 7 หัวต่อพิน - Amazon - DEPEPE 30 ชิ้น 40 ขา 2.54 มม. หัวพินตัวผู้และตัวเมียสำหรับ Arduino Prototype Shield - (ต้องตัดตามขนาด มีมากมายในแพ็คเกจสำหรับหลายโครงการ)
  • Arduino Uno - หากคุณไม่มี ฉันขอแนะนำให้หาบอร์ดอย่างเป็นทางการ ฉันมีโชคผสมกับเวอร์ชันที่ไม่เป็นทางการ Digi-Key - Arduino Uno
  • มัลติมิเตอร์ที่สามารถวัดความต้านทานและตรวจสอบความต่อเนื่องได้
  • สายจัมเปอร์
  • เขียงหั่นขนม
  • แนะนำเป็นอย่างยิ่งแต่ไม่จำเป็นอย่างยิ่งคือแว่นขยายแบบแฮนด์ฟรีเนื่องจากชิป TSSOP มีขนาดเล็กมาก คุณจะต้องใช้มือทั้งสองข้างในการบัดกรีและทดสอบด้วยมัลติมิเตอร์ ฉันใช้แว่นขยายแบบคลิปหนีบ Harbor Freight 3x คู่กับแว่นสายตาและแว่นขยายแบบตั้งอิสระ ตัวเลือกอื่น ๆ คือคู่ของผู้อ่านราคาไม่แพงจากร้านค้าส่วนลดหรือดอลลาร์ คุณยังสามารถสวมแว่นอ่านหนังสือทับแว่นสายตาหรือซื้อเครื่องอ่านสองคู่ (อันใดอันหนึ่ง) ขึ้นอยู่กับว่าวิสัยทัศน์ของคุณดี (หรือไม่ดี) หากคุณกำลังสวมแว่นตาเป็นสองเท่า ให้ระวัง เนื่องจากช่วงการมองเห็นของคุณจะจำกัดมาก ดังนั้นโปรดถอดแว่นตาออกก่อนทำอย่างอื่น ระมัดระวังเป็นพิเศษในการบัดกรี
  • อีกหนึ่งรายการที่ไม่จำเป็นแต่แนะนำเป็นอย่างยิ่งคือ Harbor Freight Helping Hands เป็นคลิปหนีบปากจระเข้ติดกับฐานโลหะ สิ่งเหล่านี้สามารถหาได้จากผู้ขายรายอื่น ๆ บนอินเทอร์เน็ตและภายใต้ชื่อแบรนด์ต่างๆ สิ่งเหล่านี้มีประโยชน์มากเมื่อทำการบัดกรีชิปบนบอร์ดฝ่าวงล้อม

ขั้นตอนที่ 1: บัดกรีชิป TSSOP เข้ากับบอร์ดฝ่าวงล้อม

Image
Image
การบัดกรีชิป TSSOP เข้ากับบอร์ดฝ่าวงล้อม
การบัดกรีชิป TSSOP เข้ากับบอร์ดฝ่าวงล้อม
การบัดกรีชิป TSSOP เข้ากับบอร์ดฝ่าวงล้อม
การบัดกรีชิป TSSOP เข้ากับบอร์ดฝ่าวงล้อม

ต้องบัดกรีชิป TSSOP กับบอร์ดฝ่าวงล้อมเพื่อให้คุณสามารถใช้กับเขียงหั่นขนมหรือโดยตรงกับจัมเปอร์ของดูปองท์ สำหรับงานสร้างต้นแบบนั้นมีขนาดเล็กเกินไปที่จะทำงานโดยตรง

เนื่องจากมีขนาดเล็ก การบัดกรีชิป TSSOP อาจเป็นส่วนที่ท้าทายที่สุดของโครงการนี้ แต่การรู้เคล็ดลับในการทำเช่นนี้ทำให้เป็นงานที่ทุกคนสามารถทำได้ มีหลายเทคนิค วิธีด้านล่างนี้คือสิ่งที่ฉันทำ

กลยุทธ์คือการประสานไปยังร่องรอยของกระดานฝ่าวงล้อมก่อน

  • อย่าวางชิปบนกระดานฝ่าวงล้อมจนกว่าจะได้รับคำสั่ง
  • สิ่งแรกที่ต้องทำคือใส่ฟลักซ์ในปริมาณที่พอเหมาะลงบนกระดานฝ่าวงล้อม
  • จากนั้น ใช้หัวแร้งบัดกรีให้ร้อนและไหลไปตามรอย
  • ใส่ฟลักซ์เพิ่มเติมที่ด้านบนของตัวประสานที่คุณไหลออกมาตามรอยและด้านล่างของขาของชิป
  • วางชิปไว้บนรอยที่คุณเพิ่งวางบัดกรีและฟลักซ์ แหนบหรือไม้จิ้มฟันเป็นเครื่องมือที่ดีในการตั้งชิปให้เข้าที่ ตรวจสอบให้แน่ใจว่าได้จัดตำแหน่งชิปอย่างถูกต้องเพื่อให้หมุดทั้งหมดอยู่เหนือร่องรอยโดยตรง จัดตำแหน่งพินชิปตัวใดตัวหนึ่งโดยทำเครื่องหมายสำหรับพินหนึ่งอันบนบอร์ดแยก
  • การใช้หัวแร้งบัดกรีให้ความร้อนหมุดตัวใดตัวหนึ่งที่ส่วนปลายของชิป (พิน 1, 7, 8 หรือ 14) กดเข้าไปในรอย บัดกรีที่คุณใช้ก่อนหน้านี้จะละลายและไหลไปรอบๆ หมุด

ดูวิดีโอในขั้นตอนนี้เพื่อดูการสาธิตวิธีประสานชิปกับบอร์ดฝ่าวงล้อม คำแนะนำหนึ่งที่ฉันมีซึ่งแตกต่างจากวิดีโอคือหลังจากที่คุณบัดกรีหมุดหยุดแรกแล้วตรวจสอบการจัดตำแหน่งของชิปทั้งหมดอีกครั้งเพื่อให้แน่ใจว่าหมุดทั้งหมดยังคงอยู่ด้านบนของร่องรอย หากคุณรู้สึกแย่ คุณสามารถแก้ไขได้ง่ายในจุดนี้ เมื่อคุณรู้สึกสบายแล้วทุกอย่างก็ดูดี ให้บัดกรีหมุดอีกอันที่ปลายอีกด้านของชิปแล้วตรวจสอบการจัดตำแหน่งอีกครั้ง หากดูดีให้ทำหมุดที่เหลือ

หลังจากที่คุณบัดกรีหมุดทั้งหมดแล้ว วิดีโอแนะนำให้ใช้แว่นขยายเพื่อตรวจสอบการเชื่อมต่อของคุณ วิธีที่ดีกว่าคือการใช้มัลติมิเตอร์เพื่อตรวจสอบความต่อเนื่อง คุณควรวางโพรบตัวหนึ่งไว้ที่ขาของพิน และโพรบอีกตัวหนึ่งบนส่วนของบอร์ดที่คุณจะประสานส่วนหัว (ดูภาพที่สองในขั้นตอนนี้) คุณควรตรวจสอบหมุดที่อยู่ติดกันเพื่อให้แน่ใจว่าไม่ได้เชื่อมต่อเนื่องจากการบัดกรีให้หมุดหลายอันเข้าด้วยกัน ตัวอย่างเช่น หากคุณกำลังตรวจสอบพิน 4 ให้ตรวจสอบพิน 3 และพิน 5 ด้วยพิน 4 ควรแสดงความต่อเนื่องในขณะที่พิน 3 และพิน 5 ควรแสดงวงจรเปิด ข้อยกเว้นเพียงอย่างเดียวคือที่ปัดน้ำฝน P0W อาจแสดงการเชื่อมต่อกับ P0A หรือ P0B

เคล็ดลับ:

  • ดังที่กล่าวไว้ในรายการวัสดุที่มีกำลังขยายที่ปล่อยให้มือของคุณทำงานได้อย่างอิสระจะมีประโยชน์มากในขั้นตอนนี้
  • การใช้คลิปหนีบปากจระเข้ช่วยจับกระดานฝ่าวงล้อมทำให้การบัดกรีง่ายขึ้นเล็กน้อย
  • เขียนหมายเลขชิปบนเทปกาวแล้วติดที่ด้านล่างของกระดานฝ่าวงล้อม (ดูภาพที่สามในหัวข้อนี้) หากในอนาคตคุณจำเป็นต้องระบุชิป การอ่านเทปกาวจะง่ายกว่ามาก ประสบการณ์ส่วนตัวของฉันคือฉันมีฟลักซ์เล็กน้อยบนชิปและตัวเลขก็หลุดออกมาอย่างสมบูรณ์ดังนั้นสิ่งที่ฉันมีคือเทป

ขั้นตอนที่ 2: การเดินสายไฟ

การเดินสายไฟ
การเดินสายไฟ

คุณจะต้องเชื่อมต่อ Arduino และ Digipot ตามที่แสดงในแผนภาพการเดินสาย พินที่ใช้จะขึ้นอยู่กับเลย์เอาต์ของ Arduino Uno หากคุณกำลังใช้ Arduino อื่น โปรดดูขั้นตอนสุดท้าย

ขั้นตอนที่ 3: รับ Arduino Library สำหรับควบคุม DigiPot

รับ Arduino Library สำหรับควบคุม DigiPot
รับ Arduino Library สำหรับควบคุม DigiPot

เพื่อให้การเขียนโปรแกรมง่ายขึ้น ฉันได้สร้างไลบรารีที่พร้อมใช้งานบน Github ไปที่ github.com/gregrabian/MCP41HVX1 เพื่อรับไลบรารี MCP41HVX1 คุณจะต้องเลือกปุ่ม "โคลน" จากนั้นเลือก "ดาวน์โหลด Zip" ตรวจสอบให้แน่ใจว่าได้บันทึกไฟล์ Zip ไปยังตำแหน่งที่คุณรู้ว่ามันอยู่ที่ไหน เดสก์ท็อปหรือโฟลเดอร์ดาวน์โหลดเป็นตำแหน่งที่สะดวก เมื่อคุณนำเข้าไปยัง Arduino IDE คุณสามารถลบออกจากตำแหน่งดาวน์โหลด

ขั้นตอนที่ 4: การนำเข้าไลบรารีใหม่ไปยัง Arduino IDE

การนำเข้าไลบรารีใหม่ไปยัง Arduino IDE
การนำเข้าไลบรารีใหม่ไปยัง Arduino IDE

ภายใน Arduino IDE ให้ไปที่ "Sketch" จากนั้นเลือก "Include Library" จากนั้นเลือก "Add ZIP Library.." กล่องโต้ตอบใหม่จะปรากฏขึ้นเพื่อให้คุณเลือกไฟล์. ZIP ที่คุณดาวน์โหลดจาก GitHub

ขั้นตอนที่ 5: ตัวอย่างห้องสมุด

ตัวอย่างห้องสมุด
ตัวอย่างห้องสมุด

หลังจากที่คุณเพิ่มไลบรารีใหม่แล้ว คุณจะสังเกตเห็นว่าหากคุณไปที่ "ไฟล์" จากนั้นเลือก "ตัวอย่าง" จากนั้นเลือก "ตัวอย่างจากไลบรารีที่กำหนดเอง" คุณจะเห็นรายการสำหรับ MCP41HVX1 ในรายการ หากคุณวางเมาส์เหนือรายการนั้น คุณจะเห็น WLAT, Wiper Control และ SHDN ซึ่งเป็นภาพร่างตัวอย่าง ในคำแนะนำนี้ เราจะใช้ตัวอย่างการควบคุมที่ปัดน้ำฝน

ขั้นตอนที่ 6: การตรวจสอบซอร์สโค้ด

#include "MCP41HVX1.h" // กำหนดพินที่ใช้กับ Arduino#define WLAT_PIN 8 // หากตั้งค่าเป็น Low "transfer and use"#define SHDN_PIN 9 // ตั้งค่าสูงเพื่อเปิดใช้งานเครือข่ายตัวต้านทาน#define CS_PIN 10 // ตั้งค่าเป็นต่ำเพื่อเลือกชิปสำหรับ SPI // กำหนดค่าบางอย่างที่ใช้สำหรับแอปทดสอบ#define FORWARD true#define REVERSE false#define MAX_WIPER_VALUE 255 // ค่าที่ปัดน้ำฝนสูงสุด MCP41HVX1 Digipot (CS_PIN, SHDN_PIN, WLAT_PIN); ตั้งค่าเป็นโมฆะ (){ Serial.begin(9600); Serial.print("ตำแหน่งเริ่มต้น = "); Serial.println(Digipot. WiperGetPosition()); // แสดงค่าเริ่มต้น Serial.print("Set Wiper Position = "); Serial.println(Digipot. WiperSetPosition(0)); // ตั้งค่าตำแหน่งปัดน้ำฝนเป็น 0} วงเป็นโมฆะ () { บูลแบบคงที่ bDirection = ไปข้างหน้า; int nWiper = Digipot. WiperGetPosition(); // รับตำแหน่งปัดน้ำฝนปัจจุบัน // กำหนดทิศทาง ถ้า (MAX_WIPER_VALUE == nWiper) { bDirection = REVERSE; } else if (0 == nWiper) { bDirection = FORWARD; } // ย้ายที่ปัดน้ำฝน Digipot ถ้า (ไปข้างหน้า == bDirection) { nWiper = Digipot. WiperIncrement (); // ทิศทางไปข้างหน้า Serial.print("Increment - "); } อื่น ๆ { nWiper = Digipot. WiperDecrement (); // ทิศทางถอยหลัง Serial.print("Decrement - "); } Serial.print ("ตำแหน่งที่ปัดน้ำฝน = "); Serial.println(nWiper); ล่าช้า(100);}

ขั้นตอนที่ 7: ทำความเข้าใจซอร์สโค้ดและเรียกใช้ Sketch

Image
Image

ซอร์สโค้ดนี้มีอยู่ใน Arduino IDE โดยไปที่เมนู Examples และค้นหา MCP41HVX1 ที่คุณเพิ่งติดตั้ง (ดูขั้นตอนก่อนหน้า) ภายใน MCP41HVX1 ให้เปิดตัวอย่าง "Wiper Control" เป็นการดีที่สุดที่จะใช้รหัสที่มาพร้อมกับไลบรารีราวกับว่ามีการแก้ไขข้อบกพร่องใด ๆ ที่มันจะได้รับการอัปเดต

ตัวอย่าง Wiper Control สาธิต API ต่อไปนี้จากไลบรารี MCP41HVX1:

  • ตัวสร้าง MCP41HVX1 (int nCSPin, int nSHDNPin, int nWLATPin)
  • WiperGetPosition()
  • WiperSetPosition (ไบต์โดยWiper)
  • WiperIncrement()
  • WiperDecrement()

ภายในซอร์สโค้ดตัวอย่าง ตรวจสอบให้แน่ใจว่าได้ตั้งค่า MAX_WIPER_VALUE เป็น 127 หากคุณใช้ชิป 7 บิต ค่าเริ่มต้นคือ 255 ซึ่งสำหรับชิป 8 บิต หากคุณทำการเปลี่ยนแปลงตัวอย่าง Arduino IDE จะบังคับให้คุณเลือกชื่อใหม่สำหรับโครงการ เนื่องจากจะไม่อนุญาตให้คุณอัปเดตโค้ดตัวอย่าง นี่เป็นพฤติกรรมที่คาดหวัง

แต่ละครั้งที่ผ่านลูป ที่ปัดน้ำฝนจะเพิ่มขึ้นหนึ่งขั้นหรือลดลงหนึ่งขั้น ขึ้นอยู่กับทิศทางที่กำลังไป หากทิศทางขึ้นและไปถึง MAX_WIPER_VALUE ทิศทางจะกลับทิศทาง ถ้าถึง 0 มันจะย้อนกลับอีกครั้ง

ขณะที่สเก็ตช์รัน มอนิเตอร์แบบอนุกรมจะได้รับการอัปเดตด้วยตำแหน่งปัดน้ำฝนปัจจุบัน

หากต้องการดูการเปลี่ยนแปลงความต้านทาน คุณจะต้องใช้ชุดมัลติมิเตอร์เพื่ออ่านโอห์ม วางโพรบมิเตอร์บน P0B (พิน 11) และ P0W (พิน 12) บน Digipot เพื่อดูการเปลี่ยนแปลงความต้านทานขณะที่แอปพลิเคชันกำลังทำงาน โปรดทราบว่าค่าความต้านทานจะไม่ลดลงจนเหลือศูนย์ เนื่องจากมีความต้านทานภายในอยู่ภายในชิป แต่จะเข้าใกล้ 0 โอห์ม ส่วนใหญ่จะไม่ไปที่ค่าสูงสุดเช่นกัน แต่จะใกล้เคียง

ในขณะที่คุณดูวิดีโอ คุณจะเห็นว่ามัลติมิเตอร์แสดงความต้านทานที่เพิ่มขึ้นจนกว่าจะถึงค่าสูงสุดแล้วเริ่มลดลง ชิปที่ใช้ในวิดีโอคือ MCP41HV51-104E/ST ซึ่งเป็นชิป 8 บิตที่มีค่าสูงสุด 100k ohm

ขั้นตอนที่ 8: การแก้ไขปัญหา

หากสิ่งต่าง ๆ ไม่ทำงานตามที่คาดไว้ นี่คือสิ่งที่ควรพิจารณา

  • ตรวจสอบการเดินสายของคุณ ทุกอย่างต้องเชื่อมต่ออย่างถูกต้อง ตรวจสอบให้แน่ใจว่าคุณใช้ไดอะแกรมการเดินสายแบบเต็มตามที่ระบุไว้ในคำแนะนำนี้ มีไดอะแกรมการเดินสายสำรองที่นำเสนอใน README ซอร์สโค้ดของไลบรารี และด้านล่างในคำแนะนำนี้ แต่ให้ยึดติดกับสิ่งที่ระบุไว้ข้างต้นในขั้นตอนการเดินสายด้านบน
  • ตรวจสอบให้แน่ใจว่าทุกพินบน digitpot ของคุณถูกบัดกรีเข้ากับบอร์ดฝ่าวงล้อม การใช้การตรวจสอบด้วยสายตาไม่ดีพอ ตรวจสอบให้แน่ใจว่าคุณตรวจสอบโดยใช้ฟังก์ชันความต่อเนื่องของมัลติมิเตอร์เพื่อตรวจสอบว่าพินทั้งหมดบน digipot เชื่อมต่อทางไฟฟ้ากับบอร์ดฝ่าวงล้อม และไม่มีการเชื่อมต่อข้ามพินจากบัดกรีที่อาจเชื่อมผ่านร่องรอย
  • หากจอภาพแบบอนุกรมแสดงว่าตำแหน่งที่ปัดน้ำฝนมีการเปลี่ยนแปลงเมื่อคุณรันแบบร่าง แต่ค่าความต้านทานไม่เปลี่ยนแปลง นั่นเป็นตัวบ่งชี้ว่า WLAT หรือ SHDN ไม่ได้ทำการเชื่อมต่อกับบอร์ดฝ่าวงล้อมหรือที่ปัดน้ำฝนแบบจัมเปอร์สำหรับ WLAT หรือ SHDN ไม่ได้เชื่อมต่อกับ Arduino อย่างถูกต้อง
  • ตรวจสอบให้แน่ใจว่าคุณใช้แหล่งจ่ายไฟสำรองที่เป็น DC ระหว่าง 10 ถึง 36 โวลต์
  • ตรวจสอบให้แน่ใจว่าแหล่งจ่ายไฟ 10 ถึง 36 โวลต์ทำงานโดยการวัดแรงดันไฟฟ้าด้วยมัลติมิเตอร์ของคุณ
  • ลองใช้ภาพร่างต้นฉบับ หากคุณทำการเปลี่ยนแปลงใด ๆ คุณอาจมีข้อผิดพลาด
  • หากขั้นตอนการแก้ไขปัญหาไม่ได้ช่วยลองใช้ชิป Digipot ตัวอื่น หวังว่าคุณจะซื้อหลายอันและบัดกรีมันในเวลาเดียวกันกับบอร์ดฝ่าวงล้อม TSSOP ดังนั้นจึงควรเป็นเรื่องของการแลกเปลี่ยนจากที่อื่น ฉันมีชิปที่ไม่ดีซึ่งทำให้ฉันรู้สึกหงุดหงิดเล็กน้อยและนี่คือการแก้ไข

ขั้นตอนที่ 9: ข้อมูลภายในและข้อมูลเพิ่มเติม

แผนภาพการเดินสายไฟสำรอง
แผนภาพการเดินสายไฟสำรอง

ข้อมูลเพิ่มเติม:

ข้อมูลเพิ่มเติมสามารถพบได้ในเอกสารข้อมูล MCP41HVX1

เอกสารฉบับเต็มเกี่ยวกับไลบรารี MCP41HVX1 ทั้งหมดมีอยู่ในไฟล์ README.md ซึ่งเป็นส่วนหนึ่งของการดาวน์โหลดไลบรารี ไฟล์นี้ถูกเขียนด้วยเครื่องหมายและสามารถดูได้ด้วยการจัดรูปแบบที่เหมาะสมภายใน Github (ดูที่ด้านล่างสุดของหน้า) หรือด้วยการทำเครื่องหมายลง viewer\editor

การสื่อสารระหว่าง Arduino และ DigiPot:

Arduino สื่อสารกับ DigiPot โดยใช้ SPI หลังจากที่ไลบรารีส่งคำสั่งตำแหน่งที่ปัดน้ำฝน เช่น WiperIncrement, WiperDecrement หรือ WiperSetPosition จากนั้นจะเรียก WiperGetPosition เพื่อรับตำแหน่งที่ปัดน้ำฝนจากชิป ค่าที่ส่งคืนจากคำสั่ง Wiper เหล่านี้คือตำแหน่งของที่ปัดน้ำฝนตามที่ชิปเห็น และสามารถใช้เพื่อตรวจสอบว่า Wiper ได้ย้ายไปยังตำแหน่งที่คาดไว้

ฟังก์ชันขั้นสูง (WLAT & SHDN)

ฟังก์ชันขั้นสูงเหล่านี้ไม่ได้แสดงให้เห็นในตัวอย่าง "Wiper Control" มี API ในไลบรารีสำหรับควบคุม WLAT & SHDN นอกจากนี้ยังมีภาพร่างตัวอย่าง WLAT และ SHDN (ในตำแหน่งเดียวกับภาพร่าง Wiper Control) พร้อมไลบรารี

SHDN (ปิดเครื่อง)

SHDN ใช้เพื่อปิดใช้งานหรือเปิดใช้งานเครือข่ายตัวต้านทาน การตั้งค่า SHDN เป็นต่ำปิดการใช้งานและสูงเปิดใช้งานเครือข่ายตัวต้านทาน เมื่อเครือข่ายตัวต้านทานถูกปิดใช้งาน P0A (พิน DigiPot 13) จะถูกตัดการเชื่อมต่อและ P0B (พิน DigiPot 11) เชื่อมต่อกับ P0W (พิน DigiPot 12) จะมีความต้านทานเล็กน้อยระหว่าง P0B และ P0W ดังนั้นมิเตอร์ของคุณจะไม่อ่าน 0 โอห์ม

หากแอปพลิเคชันของคุณไม่ต้องควบคุม SHDN คุณสามารถต่อสายโดยตรงไปที่ HIGH (ดูแผนผังการเดินสายสำรอง) คุณจะต้องใช้คอนสตรัคเตอร์ที่ถูกต้องหรือส่งผ่าน MCP41HVX1_PIN_NOT_CONFIGURED ไปยังคอนสตรัคเตอร์เพื่อระบุว่า SHDN มีสายแบบแข็ง สิ่งสำคัญที่ควรทราบคือ หากคุณกำลังทำตามตัวอย่าง คุณจะต้องใช้แผนภาพการเดินสายแบบเต็ม (ดูขั้นตอนการเดินสายด้านบน)

WLAT (สลักเขียน)

สถาปัตยกรรมภายในเป็นสององค์ประกอบในชิปตัวเดียว หนึ่งในส่วนประกอบคืออินเทอร์เฟซ SDI และรีจิสเตอร์เพื่อเก็บค่าไวเปอร์ องค์ประกอบอื่นคือเครือข่ายตัวต้านทานเอง WLAT เชื่อมต่อส่วนประกอบภายในทั้งสองเข้าด้วยกัน

เมื่อ WLAT ถูกตั้งค่าเป็น LOW ข้อมูลคำสั่งตำแหน่งที่ปัดน้ำฝนที่ตั้งไว้จะถูกส่งต่อโดยตรงไปยังเครือข่ายตัวต้านทานและตำแหน่งที่ปัดน้ำฝนจะได้รับการอัปเดต

หาก WLAT ถูกตั้งค่าเป็น HIGH ข้อมูลตำแหน่งที่ปัดน้ำฝนที่ส่งผ่าน SPI จะถูกเก็บไว้ในรีจิสเตอร์ภายในแต่จะไม่ถูกส่งผ่านไปยังเครือข่ายตัวต้านทาน ดังนั้นตำแหน่งที่ปัดน้ำฝนจะไม่อัปเดต เมื่อ WLAT ถูกตั้งค่าเป็น LOW ค่าจะถูกโอนจากรีจิสเตอร์ไปยังเครือข่ายตัวต้านทาน

WLAT มีประโยชน์หากคุณใช้ดิจิพอตหลายตัวที่คุณต้องการซิงค์ กลยุทธ์คือตั้งค่า WLAT เป็น HIGH บน Digipots ทั้งหมด จากนั้นตั้งค่า Wiper บนชิปทั้งหมด เมื่อค่า Wiper ถูกส่งไปยัง Digipots ทั้งหมดแล้ว WLAT สามารถตั้งค่าเป็น LOW บนอุปกรณ์ทั้งหมดพร้อมกันได้ เพื่อให้อุปกรณ์ทั้งหมดย้ายที่ปัดน้ำฝนพร้อมกัน

หากคุณควบคุม DigiPot เพียงตัวเดียวหรือมีหลายตัว แต่ไม่จำเป็นต้องซิงค์กัน เป็นไปได้มากว่าคุณไม่จำเป็นต้องใช้ฟังก์ชันนี้ และสามารถต่อสาย WLAT กับ LOW ได้โดยตรง (ดูแผนภาพการเดินสายสำรอง) คุณจะต้องใช้ตัวสร้างที่ถูกต้องหรือส่งผ่าน MCP41HVX1_PIN_NOT_CONFIGURED ไปยังตัวสร้างเพื่อระบุว่า WLAT นั้นต่อสายแบบแข็ง สิ่งสำคัญที่ควรทราบคือ หากคุณกำลังทำตามตัวอย่าง คุณจะต้องใช้แผนภาพการเดินสายแบบเต็ม (ดูขั้นตอนการเดินสายด้านบน)

ขั้นตอนที่ 10: แผนภาพการเดินสายไฟสำรอง

การเดินสายไฟ

คุณมีตัวเลือกในการเชื่อมต่อ WLAT จาก digpot โดยตรงกับ 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 เพื่อสื่อสารกับ Digipot พิน SPI เป็นพินเฉพาะบนบอร์ด Arduinoหมุด SPI บน Uno คือ:

  • SCK - พิน 13 บน Uno เชื่อมต่อกับพิน 2 บน Digipot
  • MOSI - พิน 11 บน Uno เชื่อมต่อกับพิน 4 บน Digipot
  • MISO - พิน 12 บน Uno เชื่อมต่อกับพิน 5 บน Digipot

หากคุณกำลังใช้ Arduino ที่ไม่ใช่ Uno คุณจะต้องค้นหาว่าพินใดคือ SCK, MOSI และ MISO และเชื่อมต่อขาเหล่านั้นกับ digipot

พินอื่นๆ ที่ใช้ในสเก็ตช์คือพินดิจิทัลทั่วไป ดังนั้นพินดิจิทัลใดๆ ก็ใช้งานได้ คุณจะต้องแก้ไขภาพร่างเพื่อระบุพินที่คุณเลือกบนบอร์ด Arduino ที่คุณใช้ หมุดดิจิตอลปกติคือ:

  • CS - พิน 10 บน Uno เชื่อมต่อกับพิน 3 บน Digipot (อัปเดต CS_PIN ในแบบร่างด้วยค่าใหม่)
  • WLAT - พิน 8 บน Uno เชื่อมต่อกับพิน 6 บน Digipot (อัปเดต WLAT_PIN ในแบบร่างด้วยค่าใหม่)
  • SHDN - พิน 9 บน Uno ที่เชื่อมต่อกับพิน 7 บน Digipot (อัปเดต SHDN_PIN ในแบบร่างด้วยค่าใหม่)

แนะนำ: