การควบคุมมอเตอร์ bldc ด้วย arduino, มอเตอร์ hd ที่กู้คืนและเซ็นเซอร์ฮอลล์
การเข้าชม: 0 ผู้แต่ง: บรรณาธิการเว็บไซต์ เวลาเผยแพร่: 2020-09-02 ที่มา: เว็บไซต์
สอบถาม
ปัจจุบันผู้ที่ชื่นชอบมีความสนใจอย่างมากในการควบคุมมอเตอร์กระแสตรงแบบไร้แปรงถ่าน (BLDC)
เมื่อเทียบกับมอเตอร์กระแสตรงแบบเดิม ประสิทธิภาพของมอเตอร์ได้รับการปรับปรุง ประสิทธิภาพการใช้พลังงานก็ดีขึ้นเช่นกัน แต่ใช้งานยากกว่า มีผลิตภัณฑ์ นอก
ชั้นวางจำนวนมากเพื่อจุดประสงค์นี้
ตัวอย่างเช่น มีตัวควบคุม BLDC ขนาดเล็กจำนวนมากที่ทำงานได้ดีกับเครื่องบิน RC
สำหรับผู้ที่ต้องการดูการควบคุม BLDC ในเชิงลึกมากขึ้น ยังมีไมโครคอนโทรลเลอร์และฮาร์ดแวร์อิเล็กทรอนิกส์อื่นๆ มากมายสำหรับผู้ใช้ในอุตสาหกรรม ซึ่งมักจะมีเอกสารประกอบที่ดีมาก
จนถึงตอนนี้ฉันยังไม่พบคำอธิบายที่ครอบคลุมเกี่ยวกับวิธีใช้ไมโครคอนโทรลเลอร์ Arduino สำหรับการควบคุม BLDC
นอกจากนี้ หากคุณสนใจที่จะทำเบรกแบบรีเจนเนอเรทีฟ หรือใช้ BLDC เพื่อผลิตไฟฟ้า ฉันไม่พบผลิตภัณฑ์มากมายที่เหมาะกับมอเตอร์ขนาดเล็ก และฉันก็ไม่เคยทราบวิธีควบคุมเครื่องกำเนิดไฟฟ้า 3 เฟสด้วย
โครงสร้างนี้เดิมเป็นเรื่องราวเกี่ยวกับ
การคำนวณแบบเรียลไทม์ ฉันยังคงทำต่อไปหลังจากจบหลักสูตร
แนวคิดของโครงการนี้คือการแสดงแบบจำลองสัดส่วนของรถยนต์ไฮบริดที่มีระบบกักเก็บพลังงานแบบมู่เล่และระบบเบรกแบบสร้างใหม่
มอเตอร์ที่ใช้ในโครงการคือ BLDC ขนาดเล็กที่ทำความสะอาดจากฮาร์ดไดรฟ์ของคอมพิวเตอร์ที่เสียหาย
คู่มือนี้อธิบายวิธีใช้ไมโครคอนโทรลเลอร์ Arduino และ
เซ็นเซอร์ตำแหน่ง Hall-Affects ในโหมดการขับขี่และการเบรกแบบจ่ายพลังงานใหม่
โปรดทราบว่าการเยี่ยมชม oscillisoft นั้นมีประโยชน์มาก (หากไม่จำเป็น) ในการดำเนินโปรเจ็กต์นี้ให้เสร็จสิ้น
หากคุณไม่สามารถเข้าถึงขอบเขตได้ เราได้เพิ่มข้อเสนอแนะเกี่ยวกับวิธีการดำเนินการโดยไม่มีขอบเขต (ขั้นตอนที่ 5)
สิ่งหนึ่งที่โครงการนี้ไม่ควรรวมไว้ในตัวควบคุมมอเตอร์จริง ๆ คือฟังก์ชันด้านความปลอดภัยเช่นการป้องกันกระแสไฟเกิน
ในความเป็นจริง สิ่งที่แย่ที่สุดคือคุณทำให้มอเตอร์ HD ไหม้
อย่างไรก็ตาม การใช้การป้องกันกระแสเกินกับฮาร์ดแวร์ปัจจุบันนั้นไม่ใช่เรื่องยาก และบางทีฉันอาจจะทำเช่นนั้นในบางครั้ง
หากคุณกำลังพยายามควบคุมมอเตอร์ขนาดใหญ่ โปรดเพิ่มการป้องกันกระแสไฟเกินเพื่อปกป้องมอเตอร์และความปลอดภัยของคุณเอง
ฉันต้องการลองใช้คอนโทรลเลอร์นี้กับมอเตอร์ที่มีขนาดใหญ่กว่าซึ่งสามารถทำงาน \'ของจริง\' ได้ แต่ฉันยังไม่มีอันที่ถูกต้อง
ฉันสังเกตเห็นว่า eBay ขายรถ 86 W ในราคาประมาณ 40 ดอลลาร์
ดูเหมือนผู้สมัครที่ดี
นอกจากนี้ยังมีเว็บไซต์ RC ชื่อ \'GoBrushless\' ที่จำหน่ายชุดอุปกรณ์ที่ประกอบ BLDC ของตัวเอง
สิ่งเหล่านี้ไม่แพงเกินไปและคุ้มค่ากับประสบการณ์ที่จะสร้างมันขึ้นมา
โปรดทราบว่าไม่มีเซ็นเซอร์ฮอลล์สำหรับมอเตอร์บนเว็บไซต์นี้ ว้าว!
การเขียนโครงสร้างนี้เป็นงานใหญ่
ฉันหวังว่าคุณจะพบว่ามีประโยชน์ โปรดแสดงความคิดเห็นและข้อเสนอแนะของคุณ
มัลติมิเตอร์แบบดิจิตอล (DMM)-
หาก DMM ของคุณมีออสซิลโลสโคปแบบมิเตอร์ความถี่ (
ควรมีอย่างน้อย 2 ช่องสัญญาณ)
ไดรเวอร์ T8 Torx (
คุณต้องมีหนึ่งในนั้นเพื่อเปิดฮาร์ดไดรฟ์)
มีร้านฮาร์ดแวร์ที่ดี
เวิร์กช็อปเครื่องจักรและการสร้างต้นแบบอย่างรวดเร็ว (
สิ่งเหล่านี้มีประโยชน์มาก แต่ฉันคิดว่าโปรเจ็กต์นี้สามารถทำได้หากไม่มีพวกเขา)
วัสดุวงแหวนแม่เหล็กมอเตอร์ bldc จากฮาร์ดดิสก์คอมพิวเตอร์ (
ครึ่งหนึ่งของมอเตอร์)
จากฮาร์ดไดรฟ์อื่นหลาย (3-6)
มีมอเตอร์ขนาดเล็กตัวที่สองในดิสก์สีเงินบนฮาร์ดดิสก์ (DC แปรงตกลงตกลง)
แถบยางหรือ (ควรดีกว่า)
มอเตอร์ DC แบบไร้แปรงถ่านพร้อมที่จับกับมอเตอร์อีกแผ่นขนมปังอิเล็กทรอนิกส์ลวดแข็งเดือน Arduino Duemilanove ตัวต้านทาน 120 k ohm ตัวต้านทานหกถึง 400 ohm ตัวต้านทานเชิงเส้นหรือหมุนโพเทนนิโอมิเตอร์ 100 k ohmST วงจรไมโคร L6234 IC ขับมอเตอร์สามเฟส ตัวเก็บประจุ 100 uF สองตัว ตัวเก็บประจุ 10 nF สองตัว ตัวเก็บประจุ 220 nF สองตัว ตัวเก็บประจุ 1 uF ตัวแรก ตัวเก็บประจุขนาด 100 uF สองตัว ไดโอดรับสามตัว 2 ตัว
ฟิวส์แบบไบโพลาร์ Hall-5 Amp ของ Honeywell SS411A ตัวยึดฟิวส์ 1 ตัว 3
หมายเหตุ: Mike Anton ออกแบบและจำหน่ายผลิตภัณฑ์ที่จะมาแทนที่ระบบอิเล็กทรอนิกส์กำลังและวงจรเซ็นเซอร์ฮอลล์ ที่ฉันแสดงในคู่มือนี้ (
ควบคุมโดยใช้ศักย์ไฟฟ้าด้านหลัง) การเหนี่ยวนำ)
คุณสามารถดูข้อมูลจำเพาะและข้อมูลการจัดซื้อได้ในลิงก์ทั้งสองนี้: หากคุณกำลังจะทำโครงการนี้ ฉันขอแนะนำให้คุณใช้เวลาทำความเข้าใจอย่างถ่องแท้ถึงวิธีทำงานและการควบคุมของ BLDC
มีข้อมูลอ้างอิงออนไลน์จำนวนมาก (
ดูคำแนะนำด้านล่าง)
อย่างไรก็ตาม ฉันรวมแผนภูมิและตารางบางส่วนไว้ในโปรเจ็กต์ของฉันซึ่งจะช่วยให้คุณเข้าใจได้
นี่คือรายการของแนวคิดที่ฉันคิดว่าสำคัญที่สุดในการทำความเข้าใจโครงการนี้: ทรานซิสเตอร์ MOSFET 3 เฟสฮาล์ฟบริดจ์
การลดประโยค 6- 3 ขั้นตอน
การปรับความกว้างพัลส์ของมอเตอร์เฟส (PWM) ฮอล-
ไมโครชิป AVR443: เซ็นเซอร์ - มอเตอร์ DC อ้างอิงทั่วไป หลักการพื้นฐานสำหรับเซ็นเซอร์ตำแหน่งดิจิทัล
การควบคุมมอเตอร์ DC แบบไร้แปรงถ่านสามเฟสโดยใช้การควบคุมมอเตอร์ DC แบบไม่มี atmelbrusless
การควบคุมมอเตอร์ Phase BLDC ของเซ็นเซอร์ Flying Star Hall ซึ่งเป็นวิดีโอที่ดีในการทำความสะอาด มอเตอร์ฮาร์ดไดรฟ์ แต่ดูเหมือนว่าผู้เขียนกำลังใช้งานมอเตอร์เป็นสเต็ปปิ้งมอเตอร์และเป็นสเต็ปปิ้งมอเตอร์ เว็บเพจอ้างอิงที่เฉพาะเจาะจงมากขึ้นสำหรับ BLDC บน IC มอเตอร์ไดรฟ์ l6234 รวมถึงเอกสารข้อมูล บันทึกการใช้งาน และข้อมูลการซื้อ
ตัวอย่างฟรีสำหรับตัวขับเคลื่อนมอเตอร์ไร้แปรงถ่าน PM สำหรับการใช้งานรถยนต์ไฟฟ้าไฮบริด
นี่เป็นรายงานเดียวที่ฉันพบซึ่งอธิบายลำดับของการเปลี่ยนระยะการเบรกแบบสร้างพลังงานใหม่
เอกสารนี้ การเบรกแบบสร้างพลังงานใหม่ในรถยนต์ไฟฟ้ามีประโยชน์ ฉันยืมตัวเลขมาสองสามตัวเลข แต่ฉันคิดว่ามันอธิบายวิธีการทำงานของการฟื้นฟูไม่ถูกต้อง
ฉันทำโปรเจ็กต์นี้โดยใช้มอเตอร์ดิสก์ไดรฟ์แบบรีไซเคิลเพราะมันผ่านได้ง่าย และฉันชอบใช้มอเตอร์แรงดันต่ำขนาดเล็กเพื่อเรียนรู้สายไฟที่ควบคุมโดย BLDC และไม่ก่อให้เกิดปัญหาด้านความปลอดภัยใดๆ
นอกจากนี้ การกำหนดค่าแม่เหล็กของเซ็นเซอร์ฮอลล์ยังทำได้ง่ายมากโดยใช้วงแหวนแม่เหล็ก (โรเตอร์)
จากวินาทีของมอเตอร์เหล่านี้ (ดูขั้นตอนที่ 4)
หากคุณไม่ต้องการยุ่งยากในการติดตั้งและปรับเทียบเซ็นเซอร์ฮอลล์ (ขั้นตอนที่ 5-7)
ฉันรู้ว่ามีมอเตอร์ไดรฟ์ CD/DVD บางตัวอยู่ในเซ็นเซอร์ฮอลล์
เพื่อให้มอเตอร์มีความเฉื่อยและโหลดได้เล็กน้อย ฉันจึงใส่ฮาร์ดไดรฟ์ 5 ตัวบนมอเตอร์ ติดกาวเบา ๆ ด้วยกาวแรงเล็กน้อยแล้วติดเข้ากับมอเตอร์ (
นี่ทำให้มู่เล่ในโครงการดั้งเดิมของฉัน)
หากคุณกำลังจะถอดมอเตอร์ออกจากฮาร์ดไดรฟ์ คุณต้องใช้ไดรฟ์ Torx T8 เพื่อคลายเกลียวตัวเรือน (
โดยปกติแล้วจะมีสกรูสองตัวซ่อนอยู่หลังแท่งในฉลากตรงกลาง)
และสกรูภายในที่ยึดมอเตอร์ให้เข้าที่
คุณต้องถอดหัวอ่านออกด้วย (
ผู้บริหารวงจรเสียง)
วิธีนี้คุณสามารถนำดิสก์หน่วยความจำออกมาเพื่อเข้าถึงมอเตอร์
นอกจากนี้ คุณจะต้องใช้มอเตอร์ฮาร์ดไดรฟ์ตัวเดียวกันตัวที่สองเพื่อถอดโรเตอร์ออกจากมอเตอร์ตัวนั้น (
มีแม่เหล็กอยู่ข้างใน)
เพื่อที่จะแยกมอเตอร์ออกจากกัน ฉันคว้าโรเตอร์ (ด้านบน)
ปากกาจับมอเตอร์แล้วงัดไปที่สเตเตอร์ (ด้านล่าง)
ไขควงสองตัวอยู่ห่างกัน 180 องศา
ไม่ใช่เรื่องง่ายที่จะยึดมอเตอร์ไว้แน่นพอโดยไม่เสียรูป
คุณอาจต้องการสร้างไม้ v-
Block ใช้เพื่อจุดประสงค์นี้
ฉันเจาะรูในวงแหวนแม่เหล็กบนเครื่องกลึง เพื่อให้พอดีกับด้านบนของมอเตอร์ได้พอดี
หากคุณไม่สามารถใช้เครื่องกลึงได้ คุณสามารถยึดโรเตอร์กลับหัวบนมอเตอร์ด้วยกาวที่แข็งแรง
รูปภาพที่ 2 และ 3 ด้านล่างแสดงภายในของมอเตอร์ตัวใดตัวหนึ่งที่ฉันถอดประกอบออก
ในครึ่งแรกมี (โรเตอร์) มี 8 เสา (
แม่เหล็กห่อด้วยพลาสติก)
ในครึ่งหลัง (สเตเตอร์)
มี 12 ช่อง (ขดลวด)
เฟสมอเตอร์ทั้งสามเฟสแต่ละเฟสมี 4 ช่องต่ออนุกรมกัน
มอเตอร์ HD บางตัวมีหน้าสัมผัสสามจุดที่ด้านล่าง หนึ่งหน้าสัมผัสต่อเฟส และอีกจุดหนึ่งคือก๊อกตรงกลางของมอเตอร์ (
โดยที่สามขั้นตอนมาบรรจบกัน)
ในโปรเจ็กต์นี้ ไม่จำเป็นต้องแตะตรงกลาง แต่มีประโยชน์ในการควบคุมแบบไร้เซ็นเซอร์ (
ฉันหวังว่าจะเผยแพร่บันทึกเกี่ยวกับการควบคุมแบบไร้เซ็นเซอร์สักวันหนึ่ง)
หากมอเตอร์ของคุณมีหน้าสัมผัสสี่จุด คุณสามารถระบุเฟสได้ด้วยโอห์มมิเตอร์
ความต้านทานระหว่างก๊อกตรงกลางและเฟสคือครึ่งหนึ่งของความต้านทานระหว่างสองเฟสใดๆ
บทความส่วนใหญ่เกี่ยวกับมอเตอร์ BLDC เกี่ยวข้องกับมอเตอร์ที่มีรูปคลื่นด้านหลังเป็นรูปบันได แต่มอเตอร์ฮาร์ดไดรฟ์ดูเหมือนว่าจะมีศักยภาพด้านหลังที่ดูเหมือนไซน์ (ดูด้านล่าง)
เท่าที่ฉันรู้ การขับมอเตอร์คลื่นไซน์ด้วย PWM คลื่นไซน์ทำงานได้ดี แม้ว่าประสิทธิภาพอาจลดลงบ้างก็ตาม
เช่นเดียวกับมอเตอร์ BLDC ทั้งหมด มอเตอร์นี้ประกอบด้วย
สะพานทรานซิสเตอร์ครึ่งเฟสสามเฟส (
ดูรูปที่ 2 ด้านล่าง)
ผมใช้ไอซีที่ผลิตโดย ST Micro (L6234)
สำหรับบริดจ์หรือที่เรียกว่าตัวขับมอเตอร์
การเชื่อมต่อทางไฟฟ้าของ L6234 แสดงในขั้นตอนที่ 8
รูปภาพที่สามด้านล่างแสดงแผนผังของตัวขับมอเตอร์และเฟสของมอเตอร์สามเฟส
เพื่อให้มอเตอร์ทำงานตามเข็มนาฬิกา สวิตช์จะทำตามลำดับต่อไปนี้ (
ตัวอักษรตัวแรกคือทรานซิสเตอร์ตัวบนและตัวอักษรตัวที่สองคือทรานซิสเตอร์ตัวล่าง)
: ขั้นตอนที่ 1 2 3 4 5 6 ตามเข็มนาฬิกา: CB, AB, AC, BC, BA, CA ทวนเข็มนาฬิกา: BC, BA, CA, CB, AB, AC เหล่านี้ 6-
ลำดับขั้นตอนต้องใช้ \'ระดับไฟฟ้า\' ที่ 360 แต่สำหรับสิ่งเหล่านี้จะมีระดับทางกายภาพเพียง 90 เท่านั้น มอเตอร์
ดังนั้นความเร็วในการหมุนของมอเตอร์แต่ละตัวจึงเกิดขึ้นสี่ครั้ง
ลำดับทั้งสองดูเหมือนจะเหมือนกัน แต่ไม่เหมือนกัน เนื่องจากสำหรับ
ลำดับ 6 ขั้นตอน สำหรับ CW ทิศทางปัจจุบันที่ผ่านเฟสจะเป็นทิศทางเดียว และสำหรับ CCW ทิศทางปัจจุบันจะตรงกันข้าม
คุณสามารถเห็นสิ่งนี้ได้ด้วยตัวเองโดยการใช้แรงดันไฟฟ้าของแบตเตอรี่หรือแหล่งจ่ายไฟกับเฟสของมอเตอร์ตัวใดตัวหนึ่ง
หากคุณจ่ายแรงดันไฟฟ้า มอเตอร์จะเคลื่อนที่ไปในทิศทางเดียวเล็กน้อยแล้วหยุด
หากคุณสามารถเปลี่ยนแรงดันไฟฟ้าบนเฟสได้อย่างรวดเร็วในลำดับใดลำดับข้างต้น คุณสามารถหมุนมอเตอร์ด้วยตนเองได้
ทรานซิสเตอร์และไมโครคอนโทรลเลอร์ทำสวิตช์เหล่านี้ทั้งหมดอย่างรวดเร็ว โดยสลับหลายร้อยครั้งต่อวินาทีเมื่อมอเตอร์ทำงานด้วยความเร็วสูง
นอกจากนี้ โปรดทราบว่าหากใช้แรงดันไฟฟ้ากับทั้งสองเฟส มอเตอร์จะเคลื่อนที่เล็กน้อยแล้วหยุด
เนื่องจากแรงบิดเป็นศูนย์
คุณสามารถดูสิ่งนี้ได้ในภาพที่สี่ด้านล่าง ซึ่งแสดงศักยภาพด้านหลังของเฟสมอเตอร์คู่หนึ่ง
นี่คือคลื่นไซน์
เมื่อคลื่นผ่าน
แกน x แรงบิดที่ได้รับจากเฟสนี้จะเป็นศูนย์ ใน
ลำดับการเปลี่ยนแปลงเฟส BLDC หกขั้นตอนที่ไม่เคยเกิดขึ้น
ก่อนที่แรงบิดในเฟสใดเฟสหนึ่งจะต่ำ กำลังจะถูกสลับไปที่การรวมเฟสอื่น
มอเตอร์ BLDC ขนาดใหญ่มักผลิตโดยเซ็นเซอร์ Hall ภายในมอเตอร์
หากคุณมีมอเตอร์ดังกล่าว คุณสามารถข้ามขั้นตอนนี้ได้
นอกจากนี้ ฉันรู้ว่ามีมอเตอร์ไดรฟ์ CD/DVD บางตัวที่ติดตั้งอยู่ในเซ็นเซอร์ Hall อยู่แล้ว
เมื่อมอเตอร์หมุน เซ็นเซอร์ฮอลล์สามตัวจะถูกนำมาใช้ในการตรวจจับตำแหน่ง ดังนั้นการเปลี่ยนเฟสจึงเกิดขึ้นในช่วงเวลาที่เหมาะสม
มอเตอร์ HD ของฉันทำงานสูงถึง 9000 RPM (150 Hz)
เนื่องจากมีการเปลี่ยนแปลง 24 ครั้งต่อล้อ ที่ 9000 RPM เครื่องจะเปลี่ยนทุกๆ 280 ไมโครวินาที
ไมโครคอนโทรลเลอร์ Arduino ทำงานที่ 16 MHz ดังนั้นแต่ละรอบสัญญาณนาฬิกาคือ 0.06 ไมโครวินาที
ฉันไม่รู้ว่าต้องใช้กี่รอบนาฬิกาในการลดประโยค แต่แม้ว่าจะต้องใช้ 100 รอบนาฬิกา นั่นคือจะใช้เวลา 5 ไมโครวินาทีในการลดประโยคแต่ละครั้ง
มอเตอร์ HD ไม่มีเซ็นเซอร์ Hall ดังนั้นจึงจำเป็นต้องติดตั้งที่ด้านนอกของมอเตอร์
จำเป็นต้องยึดเซ็นเซอร์ตามการหมุนของมอเตอร์และสัมผัสกับขั้วชุดต่างๆ ที่สอดคล้องกับการหมุนของมอเตอร์
วิธีแก้ปัญหาของฉันคือการถอดวงแหวนแม่เหล็กออกจากมอเตอร์ตัวเดียวกันแล้วติดตั้งกลับหัวลงบนมอเตอร์ที่จะควบคุม
จากนั้น ฉันติดตั้งเซ็นเซอร์ฮอลล์สามตัวเหนือวงแหวนแม่เหล็กนี้ โดยแยกจากกัน 30 องศาบนเพลามอเตอร์ (
การหมุนของมอเตอร์ไฟฟ้า 120 องศา)
ที่ยึดเซ็นเซอร์ My Hall ประกอบด้วยที่ยึดแบบเรียบง่ายซึ่งประกอบด้วยชิ้นส่วนอะลูมิเนียมสามชิ้นที่ฉันแปรรูปเอง และชิ้นส่วนพลาสติกสามชิ้นที่สร้างจากต้นแบบที่รวดเร็ว
หากไม่มีเครื่องมือเหล่านี้ก็ไม่น่าจะยากในการหาวิธีระบุตำแหน่งอื่น
การสร้างขายึดสำหรับเซ็นเซอร์ Hall จะมีความท้าทายมากขึ้น
นี่เป็นวิธีการทำงานที่เป็นไปได้: 1.
ค้นหาถาดพลาสติกที่มีขนาดเหมาะสม จากนั้นคุณสามารถเคลือบเซ็นเซอร์ฮอลล์ด้วยอีพ็อกซี่อย่างระมัดระวัง 2.
พิมพ์เทมเพลตลงบนกระดาษซึ่งมีวงกลมเดียวกันกับรัศมีวงแหวนแม่เหล็ก และเครื่องหมายทั้งสามอยู่ห่างกัน 15 องศา 3
กาวเทมเพลตเข้ากับดิสก์ จากนั้นใช้เทมเพลตเป็นแนวทางในการวางอีพ็อกซี่เซ็นเซอร์ฮอลล์ให้เข้าที่อย่างระมัดระวัง
เมื่อติดตั้งเซ็นเซอร์ Hall บนมอเตอร์แล้ว ให้เชื่อมต่อเซ็นเซอร์กับวงจรที่แสดงด้านล่างแล้วทดสอบโดยใช้ DMM หรือออสซิลโลสโคปเพื่อให้แน่ใจว่าเอาต์พุตจะสูงขึ้นและต่ำลงเมื่อมอเตอร์หมุน
ฉันรันเซ็นเซอร์เหล่านี้ภายใต้ 5 v โดยใช้เอาต์พุต 5 v ของ Arduino
เซ็นเซอร์ Hall มีเอาต์พุตสูงหรือต่ำ (1 หรือ 0)
ขึ้นอยู่กับว่าพวกเขารู้สึกถึงแอนตาร์กติกหรืออาร์กติก
เนื่องจากแม่เหล็กอยู่ห่างจากกัน 15 องศา แม่เหล็กจึงหมุนข้างใต้และเปลี่ยนขั้วทุกๆ 45 องศา เซ็นเซอร์ทั้งสามนี้จะไม่สูงหรือต่ำในเวลาเดียวกัน
เมื่อมอเตอร์หมุน เอาต์พุตของเซนเซอร์จะเป็น 6-
รูปแบบขั้นตอนที่แสดงในตารางต่อไปนี้
เซ็นเซอร์จะต้องอยู่ในแนวเดียวกับการเคลื่อนไหวของมอเตอร์เพื่อให้เซ็นเซอร์ตัวใดตัวหนึ่งในสามตัวเปลี่ยนแปลงอย่างแม่นยำที่ตำแหน่งการเปลี่ยนเฟสของมอเตอร์
ในกรณีนี้ ขอบที่เพิ่มขึ้นของเซ็นเซอร์ฮอลล์ตัวแรก (H1)
ควรสอดคล้องกับการเปิดของชุดค่าผสม C (สูง) และ B (ต่ำ)
ซึ่งเทียบเท่ากับการเปิดทรานซิสเตอร์ 3 และ 5 ในวงจรบริดจ์
ฉันจัดตำแหน่งเซ็นเซอร์กับแม่เหล็กด้วยออสซิลโลสโคป
เพื่อที่จะทำสิ่งนี้ ฉันต้องใช้ขอบเขตสามช่องทาง
ฉันหมุนมอเตอร์โดยเชื่อมต่อกับสายพานของมอเตอร์ตัวที่สอง และวัดศักย์ไฟฟ้าด้านหลังระหว่างการรวมสองเฟส (
A และ B, A และ C)
นี่คือไซน์สองตัว
เหมือนคลื่นในภาพด้านล่าง
แล้วดูสัญญาณของเซ็นเซอร์ Hall 2 ที่ช่อง 3 ของออสซิลโลสโคป
หมุนที่จับเซ็นเซอร์ฮอลล์จนกระทั่งขอบที่เพิ่มขึ้นของเซ็นเซอร์ฮอลล์อยู่ในแนวเดียวกับจุดที่ควรทำการเปลี่ยนเฟส (ดูด้านล่าง)
ตอนนี้ฉันรู้แล้วว่ามีเพียงสองช่องเท่านั้นที่จะทำการปรับเทียบแบบเดียวกัน
ถ้า BEMF ของเฟสรวม B-
ใช้ C ขอบที่เพิ่มขึ้นของ H2 จะสัมพันธ์กับเส้นโค้ง BC
เหตุผลที่ควรทำการเปลี่ยนเฟสในที่นี้ก็คือเพื่อรักษาแรงบิดของมอเตอร์ให้สูงที่สุดเท่าที่จะเป็นไปได้เสมอ
ศักย์ไฟฟ้าด้านหลังเป็นสัดส่วนกับแรงบิด และคุณจะสังเกตเห็นว่าการเปลี่ยนแปลงแต่ละเฟสเกิดขึ้นเมื่อศักย์ไฟฟ้าด้านหลังผ่านต่ำกว่าเส้นโค้งขั้นถัดไป
ดังนั้นแรงบิดที่แท้จริงจึงประกอบด้วยส่วนที่สูงที่สุดของแต่ละเฟสรวมกัน
หากคุณไม่สามารถเข้าถึงขอบเขตได้ นี่คือแนวคิดของฉันในการจัดตำแหน่ง
นี่เป็นแบบฝึกหัดที่น่าสนใจสำหรับทุกคนที่ต้องการทราบว่ามอเตอร์ BLDC ทำงานอย่างไร
หากมอเตอร์เฟส A เชื่อมต่อ (บวก) และ B (ลบ)
เข้ากับแหล่งจ่ายไฟและเปิดแหล่งจ่ายไฟ มอเตอร์จะหมุนเล็กน้อยแล้วหยุด
จากนั้น หากสายไฟด้านลบถูกย้ายไปยังเฟส C และเปิดเครื่องอยู่ มอเตอร์ก็จะหมุนต่อไปและหยุด
ส่วนถัดไปของลำดับจะเป็นการเลื่อนลีดที่เป็นบวกไปยังเฟส B ฯลฯ
เมื่อคุณทำเช่นนี้ มอเตอร์จะหยุดเสมอเมื่อมีแรงบิดเป็นศูนย์ ซึ่งสอดคล้องกับจุดหนึ่งที่แผนภูมิส่งผ่านแกน x บนแผนภูมิ
โปรดทราบว่าจุดศูนย์ของการรวมกันในเฟสที่สามสอดคล้องกับตำแหน่งการเปลี่ยนเฟสของสองชุดแรก
ดังนั้น ตำแหน่งแรงบิดเป็นศูนย์ของ
ชุดค่าผสม B- The C คือตำแหน่งที่คุณต้องการวางตำแหน่งขอบที่เพิ่มขึ้นของ h2
ทำเครื่องหมายตำแหน่งนี้ด้วยเครื่องหมายละเอียดหรือใบมีดแหลมคม จากนั้นปรับที่ยึดเซ็นเซอร์ฮอลล์โดยใช้ DMM จนกระทั่งเอาต์พุตของ H2 จะสูงกว่าเครื่องหมายนี้ทุกประการ
แม้ว่าคุณจะเบี่ยงเบนไปจากตารางเรียนเล็กน้อย แต่มอเตอร์ก็ควรจะทำงานได้ดี
มอเตอร์สามเฟสจะได้รับพลังงานจากตัวขับมอเตอร์สามเฟส L6234
ฉันพบว่านี่เป็นผลิตภัณฑ์ที่ดีที่สามารถทนต่อการทดสอบของเวลาได้
มีหลายวิธีในการทำให้ส่วนประกอบของคุณทอดโดยไม่ตั้งใจเมื่อใช้อุปกรณ์อิเล็กทรอนิกส์กำลัง ฉันไม่ใช่วิศวกรไฟฟ้า และฉันก็ไม่รู้เสมอว่าเกิดอะไรขึ้น
ในโปรแกรมของโรงเรียน เราทำ
เอาต์พุตฮาล์ฟบริดจ์ 3 เฟสของเราเองซึ่งประกอบด้วยทรานซิสเตอร์ MOSFET 6 ตัวและไดโอด 6 ตัว
เราใช้สิ่งนี้กับ HIP4086 ของไดรเวอร์ Intersil ตัวอื่น แต่เรามีปัญหามากมายกับการตั้งค่านี้
เราเผาทรานซิสเตอร์และชิปจำนวนมาก
ฉันรัน L6234 (
ดังนั้นมอเตอร์) ที่ 12V
L6234 มีชุดอินพุตที่ผิดปกติเพื่อควบคุมฮาล์ฟบริดจ์ของทรานซิสเตอร์ 6 ตัว
ไม่ใช่ว่าทรานซิสเตอร์ทุกตัวจะมีอินพุต แต่มี
อินพุตเปิดใช้งาน (EN) สำหรับแต่ละขั้นตอนในสามขั้นตอน จากนั้นมีอินพุตอีกอัน (IN)
เลือกทรานซิสเตอร์ตัวใดในเฟสเปิด (บนหรือล่าง)
เช่น เปิดทรานซิสเตอร์ 1 (บน) และ 6 (ล่าง)
สูงทั้ง EN1 และ EN3 (
EN2 ต่ำเพื่อให้เวทีปิด)
IN1 High, IN3 ต่ำ
สิ่งนี้ทำให้เฟสรวมกัน-C
ในขณะที่หมายเหตุการใช้งาน L6234 แนะนำให้ใช้ PWM ที่ใช้ในการควบคุมความเร็วของมอเตอร์กับพิน IN ฉันตัดสินใจทำบนพิน EN เพราะในเวลานั้นฉันคิดว่ามันคง \'แปลก\' ที่จะเปิดทรานซิสเตอร์บนและล่างของเฟสสลับกัน \'
อันที่จริงดูเหมือนว่าไม่มีอะไรผิดปกติกับการเปิดทรานซิสเตอร์ต่ำของทั้งสองเฟสในเวลาเดียวกันเนื่องจากมีศักยภาพเท่ากันดังนั้นจึงทั้งสองไม่ผ่านกระแส
กับฉัน วิธีการนี้ เฟสสูงถูกเปิดใช้งานและปิดใช้งานสลับกันที่ความถี่ PWM ในขณะที่เฟสต่ำยังคงอยู่ระหว่างการเปลี่ยนเฟสทั้งหมด
ด้านล่างนี้เป็นแผนผังของมอเตอร์ไดรฟ์ ฉันได้เพิ่มการเชื่อมต่อพินเข้ากับบอร์ด Arduino ฉันยังเพิ่ม
ฟิวส์ 2.5 แอมป์ระหว่างตะกั่วแบตเตอรี่บวกและวงจร ฟิวส์ตัวเก็บประจุ 100 uF ระหว่างแหล่งจ่ายไฟและ gnd เพื่อลดริปเปิลในกระแสที่เกิดขึ้นใหม่
ดังนั้นสำหรับเวอร์ชันที่ใหญ่กว่า โปรดดูที่ เอกสารประกอบสำหรับ L6234
หมายเหตุ: Mike Anton สร้าง PCB สำหรับ L6234 ซึ่งจะ (ฉันเชื่อว่า)
แทนที่แทร็กนี้และช่วยคุณประหยัดเวลาในการประกอบ
ดูลิงก์เหล่านี้สำหรับข้อมูลจำเพาะและข้อมูลการซื้อ: ฉันไม่พบอะไรมากมายเกี่ยวกับ 3-
ฉันจะอธิบายความเข้าใจของฉันเกี่ยวกับวิธีการทำงาน
โปรดทราบว่าฉันไม่ใช่วิศวกรไฟฟ้าและเราขอขอบคุณการแก้ไขใด ๆ สำหรับคำอธิบายของฉัน
เมื่อขับรถ ระบบควบคุมจะส่งกระแสไฟฟ้าไปยังสามเฟสของมอเตอร์
ในลักษณะที่เพิ่มสูงสุด แรงบิด ในการเบรกแบบรีเจนเนอเรชั่นยังเพิ่มแรงบิดให้สูงสุดด้วย แต่
คราวนี้ มันเป็นแรงบิดเชิงลบ
ที่ทำให้มอเตอร์ ช้าลงขณะส่งกระแสไฟกลับไปยังแบตเตอรี่ วิธีการเบรกแบบรีเจนเนอเร
ชั่นที่ผมใช้นั้นมาจากรายงานจากห้องปฏิบัติการแห่งชาติ Oakridge ในสหรัฐอเมริกา S. govt. แผนภูมิด้านล่างมาจากเอกสารอื่นที่ช่วยอธิบายวิธีการทำงาน (
ไม่ถูกต้อง
อย่างไรก็ตาม ฉันคิดว่าคำอธิบายที่ให้ไว้ในรายงานฉบับที่ สองนี้
BEMF ในเฟสมอเตอร์จะผันผวนขึ้นและลง ในภาพจะแสดงช่วง เวลาที่ BEMF สูง
ในระยะ B และ
ต่ำ ในระยะ B ในกรณีนี้ เป็นไปได้ที่กระแสจะไหลจาก B ไปยังการเบรกแบบรีเจนเนอเรชั่น
บางส่วน) โปรดทราบว่าเมื่อมอเตอร์หมุน แรงดันไฟฟ้า
ทรานซิสเตอร์ระดับต่ำจะเปิด และปิดอย่างรวดเร็ว
ระดับ ต่ำถูกปิด แต่ที่แรงดันไฟฟ้าที่สูงกว่า กระแสไฟฟ้า
(สวิตช์ PWM หลายพันตัวต่อวินาที) เมื่อปิดสวิตช์ทรานซิสเตอร์ระดับสูง ภาพแรก ในด้านอิเล็กทรอนิกส์กำลัง วงจรก็เหมือนกับอุปกรณ์ที่เรียกว่าบูสต์คอนเวอร์เตอร์ โดยที่พลังงานจะถูกเก็บไว้ในเฟสของ
มอเตอร์ (วิกิพีเดียมีบทความดีๆ อธิบายวิธีการทำงานของบูสต์คอนเวอร์เตอร์)
พลังงานนี้จะถูกปล่อยออกมาเมื่อทรานซิสเตอร์
จะไหลผ่านไดโอด \'ป้องกันการกระตุ้น\' ถัดจากทรานซิสเตอร์
แต่ละตัว ทิศทาง (
ตรงกันข้ามกับการขับขี่)
โต้ตอบกับวงแหวนแม่เหล็กเพื่อสร้างแรงบิดเชิงลบที่ทำให้มอเตอร์ช้าลง
ทรานซิสเตอร์ด้านต่ำใช้สวิตช์ PWM และรอบการทำงานของมอเตอร์จะควบคุมปริมาณการเบรก
เมื่อขับรถ การสับเปลี่ยนของมอเตอร์จะสลับจากชุดหนึ่งไปยังอีกชุดหนึ่งตามกำหนดเพื่อรักษาแรงบิดสูงสุดที่เป็นไป ได้ การสับเปลี่ยน
โหมดสวิตช์บางโหมดจะทำให้มอเตอร์สร้างแรงบิดติดลบมากที่สุดเท่า
ของเบรกแบบสร้างใหม่จะคล้ายกันมาก เนื่องจาก
ที่จะเป็นไปได้ เบรกแบบรีเจนเนอเรชั่นทำงานได้ดีแต่ทำงานได้ไม่ดี ฉันคิดว่าสาเหตุหลักคือมอเตอร์ฮาร์ดไดรฟที่ฉันใช้นั้นเป็นมอเตอร์แรงบิดต่ำมาก ดังนั้นจึง ไม่ได้ผลิต BEMF
มากนักยกเว้นที่ความเร็วสูงสุด ที่ความเร็วต่ำ จะมีการเบรกแบบรีเจนเนอเร ชั่นน้อยมาก
(ถ้ามี)
นอกจากนี้ ระบบ ของ
ฉันยังทำงานที่แรงดันไฟฟ้าค่อนข้างต่ำ (12 V) ยิ่งไปกว่านั้น เนื่องจากแต่ละเส้นทางผ่านไดโอด
ป้องกันการกระตุ้น จะลด
ฉันอาจได้รับ
ไฟฟ้าลงหลายโว ลต์ จึงทำให้ประสิทธิภาพลดลงอย่างมากเช่นกัน ฉันใช้
แรง ดัน
ได โอดเรียง
กระแส
ปกติและ
ประสิทธิภาพที่ดีขึ้นหากฉัน
ใช้ไดโอดพิเศษบางตัวที่มีแรงดันตกคร่อมต่ำ
กว่า ด้านล่างนี้คือรายการอินพุตและ
เอาต์พุตบน Arduino รวมถึงแผนภูมิ
และรูปถ่ายของบอร์ดของฉันด้วย 2- ความต้านทาน
แบบดิจิตอล - ฮอลล์ 1 120 K ของ Gnd
3 ความต้านทานแบบดิจิตอลของ Gnd 4 ความต้านทาน 3 ของฮอลล์ 3 - ความต้านทาน 120 K ของ Gnd 5 1 เอาต์พุตแบบดิจิตอลในซีรีย์พร้อมตัวต้านทาน 400 โอห์ม 2
ดิจิตอลแบบอนุกรมพร้อมตัวต้านทาน 400 โอห์ม 7
เอาต์พุต
ดิจิตอลแบบอนุกรมพร้อมตัวต้านทาน 400 โอห์ม 9- เอาต์พุตดิจิตอล EN 1 ในชุดพร้อม ตัวต้านทาน
3 เอาต์พุต
400 โอห์ม 10- เอาต์พุตดิจิตอล EN 2
อนุกรมพร้อมตัวต้านทาน 400 โอห์ม 11- เอาต์พุตดิจิตอล EN 3 อยู่ในอนุกรมพร้อมตัวต้านทาน 400 โอห์ม โพเทนชิโอ
มิเตอร์ 100 k โอห์ม โดยมี 5 v และ gnd เชื่อมต่อที่ปลายทั้งสองข้างและ เชื่อมต่อพินอะนาล็อก 0 ไว้ตรงกลาง โพเทนชิออมิเตอร์ นี้ใช้เพื่อควบคุมความเร็วมอเตอร์และ
ระดับเสียงเบรก ซีรีย์ X
คือ ST L6234 ไดรเวอร์มอเตอร์ 3 เฟส * รันดิสก์
ไดรฟ์มอเตอร์ตามเข็มนาฬิกา * พร้อมรีเจนเนอเรชั่น การเบรก * ความเร็วของมอเตอร์และการเบรกควบคุม โดย
ตัว เดียว
โพเท นชิออมิเตอร์
* ตำแหน่งมอเตอร์โดยเซ็นเซอร์ Hall-Effect
* และ แปลงการรวมเป็น 6 ขั้นตอน
สามตัว * Arduino รับเอาต์พุตจากเซ็นเซอร์ฮอลล์ 3 ตัว (พิน 2,3,4)
พิน 9, 10, 11 ที่ 32 kHz *
การเปลี่ยนเฟสที่แตกต่างกันบน
0 กับโพเทนชิออมิเตอร์เพื่อเปลี่ยนรอบการทำงานของ PWM
เอาต์พุต PWM
(สอดคล้องกับ EN 1,2, 3*3 DO บนพิน 5,6, 7 ตามลำดับ (IN 1,2,3) * เชื่อมต่อการจำลองใน
และเปลี่ยน * ระหว่างการขับขี่และ
การเบรกแบบสร้างใหม่ * 0- 499: เบรก
* 500- 523: แท็กซี่ *
524- 1023: การขับขี่ * แสดงความคิดเห็นหลายบรรทัดสำหรับการดีบัก
โดย การพิมพ์ค่าต่าง ๆ
อนุกรม */Int allstate1;
HallState2; int HallVal = 1; /
INPUT)
ของเซ็นเซอร์ฮอลล์ทั้ง 3 ตัว int MSP = 0; /ระดับความเร็ว int bSpeed = 0 สำหรับมอเตอร์; (3,
ไปยังการเชื่อมต่อแบบ
ค่าไบนา รี่
; /Hall 2 pinMode (4,INPUT); /L6234 Hall 3/เอาต์พุตของ pinMode (5,OUTPUT);
/ใน 1 pinMode (6,OUTPUT); /EN 2 pinMode (11,OUTPUT); /EN 3/serial.begins(9600); หากคุณจะใช้การเชื่อมต่อแบบอนุกรม, กรุณายกเลิกหมายเหตุบรรทัดนี้
. คำสั่งฟลัชที่ส่วนท้ายของโปรแกรม เรียกว่า prescalerVal และ
ตั้งค่าให้เท่ากับเลขฐานสอง \'00000111\' TCCR1B & = ~ Prescaler
/และค่าใน TCCR0B ด้วยเลขฐานสอง \'11111000\'/
ตอนนี้ตั้งค่าบิตการเข้ารหัสล่วงหน้าที่เหมาะสม: int การเข้ารหัสล่วงหน้าบิต 2 = 1; /ตั้งค่า prescalerVal ให้
prescalerVal2; /หรือค่าใน TCCR0B ด้วยเลขฐานสอง \'00000001\'/ตั้งค่า PWM เป็น 32 kHz สำหรับพิน
เท่ากับเลขฐานสอง \'00000001\' TCCR1B |. =
ใช้เฉพาะ Pin 11 ) /ล้างทั้งสามบิตพรีคาลเลอร์ก่อน : TCCR2B & = ~ Pre-calerval
3,11 ( โปรแกรม นี้
; TCCR0B ด้วยเลขฐานสอง \'11111000\'/ตอนนี้
ตั้งค่าบิตการเข้ารหัสล่วงหน้าที่เหมาะสม: TCCR2B |
= บิตการเข้ารหัสล่วงหน้า 2;
/หรือค่าใน TCCR0B ด้วยเลขฐานสอง ของ \'
00000001 \'
/ขั้นแรกให้ล้างบิตที่เข้ารหัสล่วงหน้าทั้งสามบิต :} ลู ปหลักของ/PRGROM void loop (){ /Time =
millis (); เวลา
การขับขี่ถูกแมปกับครึ่งบนของโพ เทนชิออมิเตอร์
หลังจากเริ่มโปรแกรมการพิมพ์ println (เวลา); /
bSpeed = map ( Throttle, 0,511,255, 0)
; การเบรกแบบใหม่
/MSPs ed = 100; /
ที่ด้านล่าง ของหม้อ
สำหรับการดีบัก HallState1 = digitalRead (2);
/อ่านค่าอินพุตจาก Hall 1 2 = อ่านแบบดิจิทัล (3); /อ่านค่าอินพุตจาก Hall 2 3 = อ่านแบบดิจิทัล (4);
อ่านค่าอินพุต/เขียนตัวเลขจาก Hall 3 (8, HallState1); HallState2); //digitalWrite(10, HallState3); /คำนวณค่าไบนารี่ของเซ็นเซอร์ฮอลล์ 3 ตัว/* series.print(
\'H 1: \'); println(HallState2); Serial. print(\'H 3: \'); Serial. println(HallState3);
Serial. println(\' \'); */ //Serial. println(mSpeed); //Serial. println(HallVal)
;
//Serial. print(\'\'); /Monitor transistor output/delay
(1000); /* T1 = digitalRead (2); //
T1 = ~T1; T2 = digitalRead (4); //T2 = ~T2; T3 = digitalRead (5); //T3 = ~T3; Serial. print(T1); Serial. print(\'\t\'); Serial. print(T2); Serial. print(\'\t\'); Serial. print(T3); Serial. print(\'\'); Serial. print(\'\'); Serial. print(digitalRead(3)); Serial. print(\'\t\'); Serial. print(digitalRead(9)); Serial. print(\'\t\'); Serial. println(
digitalRead(10)); Serial. print(\'\'); Serial. print(\'\'); //delay(500); */Driving phase change/each binary number has a case corresponding to the different transistors turned on/bit math used to change the value of the output arduino: /PORTD มีเอาต์พุตของพิน IN บนไดรเวอร์ L6234
/เอาต์พุตที่ใช้ตรวจสอบว่าทรานซิสเตอร์ตัวบนหรือทรานซิสเตอร์ตัวล่าง
พิน
/
EN สำหรับแต่ละเฟสถูกควบคุมโดยการเปรียบเทียบคำสั่ง Arduino ให้ตั้งค่ารอบการทำงานของ PWM ( 0 = OFF, 255 =
=
(
ON หรือค่าคันเร่งควบคุมโดยโพเท
นชิออมิเตอร์) ถ้า (คันเร่ง > 511){สวิตช์
HallVal){
/
กรณีที่ 3:/PORTD = 1111xxx00; /เอาต์พุตที่คาดหวังของพิน 0-7 xxx อ้างอิงถึงอินพุต Hall และ = B00011111 ไม่ควรเปลี่ยน PORTD |. = B01100000; /AnalogWrite (9,mSpeed); // เฟส C บน -duty = 100% (ทรานซิสเตอร์ต่ำสุด) กรณีที่ 1:/PORTD
B001xxx00
;
เอาต์พุต
ที่
คาด
หวัง
//Phase B on ( Low-end transistor)analogWrite(11,0); //Phase B off (duty = 0)break ;
B00011111;
ของพิน 0-
7 PORTD & =
Case 5:/PORTD = B101xxx00; /Expected output of pin 0- 7 PORTD &
= B00011111; /PORTD | = B10100000; analogWrite(9,0);
of
analogWrite
(
10,255); analogWrite(11,mSpeed); break; Case 4:/PORTD = B100xxx00; /Expected output
& = B00011111; PORTD | = bym000; /Analowrite
pin 0-
7 PORTD
(9,255); analogWrite(10,0
); analogWrite(11,mSpeed); break;
Case 6:/PORTD = B110xxx00;
/Expected output of pin 0-
7 PORTD & = B00011111;
PORTD b11. 000 =;
/Analowrite (9,255); analogWrite(10,mSpeed); analogWrite(11,0); break; Case 2:/PORTD = B010xxx00;
/Expected output of pin 0-
บน L6234
เบรก; }} / การเปลี่ยนเฟสเบรกใหม่
/ PORTD (
เอาท์พุตของพิน IN
7 PORTD & = B00011111; B0201700 PORTD | =; /Analowrite (9,0);analogWrite(10,
) ดังนั้นจึงใช้ทรานซิสเตอร์ต่ำในแต่ละเฟสเท่านั้น B00011111; PORTD | = bym0000; // switch (HallVal )
mSpeed);analogWrite(11,255);
{ Case 3: analogy writing (9,bSpeed); //analogWrite(9,0); analogWrite(10,0); analogWrite(
11,0); break; Case 1: analogy writing (9,bSpeed); analogWrite(
10,0); analogWrite(11,0); break; Case 5: analogy writing (9,0); analogWrite
(10,0); analogWrite(11,bSpeed); break;
Case 4: analogy writing (9,0); analogWrite(10,0); analogWrite(11,bSpeed); break; Case 6: analogy writing (9,0); analogWrite(10,bSpeed); analogWrite(11,0); break; Case 2: analogy writing
= millis ();
(9,0); analogWrite(10,bSpeed); analogWrite(11,0); break; }} /
Time
Time after the printing program starts. println(time); //Serial. print(\'\'); //Serial. flush(); /If you want to debug
I
using a serial port, please uncomment}
think the operation that Arduino does in this project is so simple that it seems like a waste to do this task with a microprocessor. In fact, L6234's application notes recommend
อุปกรณ์นี้
a
simple อาร์เรย์เกทที่ตั้งโปรแกรมได้ (GAL16V8 ทำจาก Lattice Semiconductor) เพื่อทำงานนี้ ฉันไม่คุ้นเคยกับ การเขียนโปรแกรมของ
แต่ราคาของ IC อยู่ที่เพียง $ 2.39 ที่นิว
อาร์ก วงจรรวมอื่น ๆ ที่คล้ายกันก็มีราคาถูกมากเช่นกัน อีกทางเลือกหนึ่งคือการรวมลอจิกเกตแบบรอบคอบเข้าด้วยกัน ฉันคิดลำดับตรรกะที่ค่อนข้าง
ง่ายที่สามารถขับเคลื่อน L6234 IC จากเอาต์พุตของเซ็นเซอร์ฮอลล์ทั้งสามตัว ด้านล่างและตารางความจริงสำหรับทั้งสามขั้นตอน ( เพื่อให้วงจรลอจิกของเฟส B และ C ต้องเปลี่ยนประตู \'ไม่ใช่\' ไปอีกด้านหนึ่งของ \' หรือ ปัญหาของแนวทางนี้คือมีการเชื่อมต่อเกือบ 20 จุดในแต่ละขั้นตอน ดังนั้นจึงใช้เวลาค่อนข้างมากในการประกอบเข้าด้วยกัน
ทางที่ดีควรตั้งโปรแกรมเป็นลอจิกเกตที่ตั้งโปรแกรมได้