DIY เครื่องวัดวามเร็วรถยนต์อิเล็กทรอนิกส์ เครื่องวัดวามเร็วแบบทำเอง - การสร้างและใช้งานในทางปฏิบัติ สร้างเครื่องวัดวามเร็วของคุณเอง

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

เครื่องวัดวามเร็วแบบธรรมดารุ่นแรก

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


พื้นฐาน แผนงานสำหรับเครื่องวัดวามเร็วนี้เป็นอุปกรณ์นัดเดียว (DA1) ซึ่งถูกกระตุ้นโดยพัลส์จากระบบจุดระเบิดการทำงานของรถยนต์ เหนี่ยวนำให้เกิดในคอยล์ L1 ขั้วต่ออินพุท X1 สามารถใช้เพื่อปรับมาตรรอบหรือจ่ายสัญญาณจากเบรกเกอร์ ดังที่แสดงในเส้นประ สำหรับเครื่องยนต์สี่สูบ 4 จังหวะ 3,000 รอบต่อนาที ความถี่การหยุดชะงักจะเป็น 100 Hz และสำหรับ 1,500 รอบต่อนาที - 50 Hz ซึ่งช่วยให้คุณปรับเทียบอุปกรณ์ตามความถี่หลักได้อย่างง่ายดาย

พัลส์จากเอาต์พุต 3 ของไมโครวงจร DA1 จะถูกส่งไปยังตัวบ่งชี้การหมุน - มิลลิมิเตอร์ RA1 ซึ่งรวมเข้าด้วยกันและแสดงแรงดันไฟฟ้าปัจจุบันในวงจร เนื่องจากระยะเวลาของพัลส์ทั้งหมดที่เอาต์พุตของโมโนไวเบรเตอร์จะเท่ากัน แรงดันไฟฟ้าที่อุปกรณ์จะแสดงจะเป็นสัดส่วนกับความถี่ของการเกิดประกายไฟ สามารถปรับเทียบสเกล PA1 เป็นความเร็วเพลาได้ (รอบต่อนาที) ในฐานะเซ็นเซอร์ (คอยล์ L1) คุณสามารถใช้หัวแม่เหล็กจากเครื่องบันทึกเทปซึ่งอยู่ใกล้กับคอยล์ไฟฟ้าแรงสูงหรือคุณจะต้องพันไว้บนสายไฟที่วิ่งจากคอยล์จุดระเบิดไปยังผู้จัดจำหน่าย (เสริมด้วยฉนวน เทป). เพื่อป้องกันอินพุตของวงจรขนาดเล็กจากไฟกระชากแรงดันสูง ควรใช้ไดโอด TVS ที่มีแรงดันไฟฟ้าจำกัด 12 V เป็น VD2 คุณยังสามารถใช้ตัวบ่งชี้ระดับสัญญาณเทปหรืออุปกรณ์ที่คล้ายกันเป็นตัวบ่งชี้ได้

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


แรงดันพัลส์ที่จ่ายให้กับตัวเก็บประจุ C1 ผ่านตัวต้านทานแบบแยกส่วน R1 จะช่วยลดแรงดันไฟกระชากที่ขอบตกและขอบที่เพิ่มขึ้น หลังจากนั้นจะมีตัวปรับเสถียรภาพแบบพาราเมตริกบน R2 VD1 ซึ่งจะจำกัดความกว้างของพัลส์เหล่านี้ วงจรสร้างความแตกต่างประกอบด้วยตัวเก็บประจุ C2 วงจรนี้เป็นตัวแปลง แรงดันไฟฟ้ากระแสสลับมีลักษณะเป็นรูปสี่เหลี่ยมผืนผ้าเป็นพัลส์สั้น เป็นผลให้พารามิเตอร์ของพัลส์เหล่านี้ไม่ส่งผลกระทบต่อแอมพลิจูดและระยะเวลาของพัลส์อินพุต ดังนั้นเมื่อความเร็วในการหมุนเปลี่ยนแปลง เฉพาะความถี่เท่านั้นที่เปลี่ยนแปลง ตัวเก็บประจุ C2 ถูกชาร์จโดยบริดจ์เรกติไฟเออร์และคายประจุโดยตัวต้านทาน R1 และ R2 กระแสคายประจุและกระแสชาร์จบางส่วนของตัวเก็บประจุ C2 ไหลผ่าน เมตรส่งผลให้เกิดการโก่งตัวของลูกศร ด้วยความเฉื่อยของกลไกทำให้งานทำงานได้อย่างต่อเนื่อง
นี้ เครื่องวัดวามเร็วสามารถวางไว้ในตำแหน่งที่สะดวกบนแผงหน้าปัดรถยนต์ได้ เราขอแนะนำให้คุณใช้ไฟแบ็คไลท์หรือติดตั้งหลอดไฟขนาดเล็กในร่างกายซึ่งจะมีผลในเชิงบวกอย่างมากต่อการรับรู้การอ่านในที่มืด
ในการตั้งค่าอุปกรณ์ คุณจะต้องมีมาตรวัดความเร็วรอบรถยนต์อีกอัน ด้วยความช่วยเหลือนี้ คุณสามารถปรับเทียบผลิตภัณฑ์ที่ผลิตได้ เครื่องวัดวามเร็วรถยนต์แบบโฮมเมดหากคุณไม่มีเครื่องวัดวามเร็วอื่นคุณสามารถใช้เครื่องกำเนิดพัลส์สี่เหลี่ยมที่มีความถี่แปรผันในช่วง 25 - 200 Hz และแอมพลิจูด 15 - 20 V

อีกหนึ่ง วงจรง่ายๆเครื่องวัดวามเร็วของรถยนต์อุปกรณ์นี้ออกแบบมาเพื่อวัดความเร็วเพลาข้อเหวี่ยงของเครื่องยนต์คาร์บูเรเตอร์ด้วยระบบอุปกรณ์ไฟฟ้าที่มีเครื่องหมายลบ แบตเตอรี่เชื่อมต่อกับร่างกาย


พื้นฐานของวงจรคือพัลส์เชปเปอร์เดี่ยวที่ประกอบบนวงจรไมโคร CD4007 (อะนาล็อกในประเทศ - K176LP1) เชปเปอร์ถูกกระตุ้นโดยพัลส์บวกที่เกิดขึ้นเมื่อหน้าสัมผัสของเบรกเกอร์เปิด ตัวบ่งชี้ PA1 ซึ่งเชื่อมต่อกับเอาต์พุตของไดรเวอร์ผ่านตัวต้านทานจำกัด R5 จะวัดแรงดันไฟฟ้าบนตัวเก็บประจุการวัด C1 ซึ่งเป็นสัดส่วนกับความถี่ของพัลส์อินพุตด้วยความแม่นยำไม่แย่กว่า 1...2% - ความถี่การเกิดซ้ำของพัลส์นั้นน้อยกว่าความเร็วเพลาข้อเหวี่ยงของเครื่องยนต์สี่จังหวะ 30 เท่า

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

หลักการทำงานของอุปกรณ์ ในสถานะเริ่มต้น ทรานซิสเตอร์ VT1 จะปิด และ VT2 เปิด ในเวลานี้แผ่นด้านซ้าย (ตามแผนภาพ) ของตัวเก็บประจุ C 5 เชื่อมต่อผ่านความต้านทานเล็กน้อยของทรานซิสเตอร์แบบเปิด VT2 กับบัส +5 V ในเวลานี้ไม่มีกระแสไหลผ่านไมโครแอมมิเตอร์ PA1 ที่ครึ่งวงจรลบแรกของแรงดันไฟฟ้ากระแสสลับที่ใช้กับอินพุตของมาตรวัดรอบเครื่องยนต์ ทรานซิสเตอร์ VT1 จะเปิดและ VT2 จะปิด ในเวลานี้ C5 จะถูกชาร์จอย่างรวดเร็วผ่านไมโครแอมมิเตอร์ PA1, VD3 และ R5
เมื่อแรงดันไฟเข้าครึ่งรอบเป็นบวก VT1 จะปิดและ VT2 จะเปิดขึ้น ตอนนี้ C5 ถูกคายประจุผ่านความต้านทานต่ำของ VT2 และ VD4 แบบเปิด ในครึ่งรอบเชิงลบถัดไป กระบวนการนี้จะทำซ้ำในลักษณะเดียวกัน
ตัวต้านทานทริมเมอร์ R6 ตั้งค่าขีดจำกัดบนของความถี่ของสัญญาณที่วัดได้ ค่าของตัวเก็บประจุ C5 ถูกเลือกขึ้นอยู่กับประเภทของเครื่องยนต์ ยิ่งความเร็วของเครื่องยนต์สูงเท่าใด ความจุของตัวเก็บประจุ C5 ก็จะยิ่งน้อยลงเท่านั้น ประกอบอย่างถูกต้อง แผนภาพมาตรวัดรอบไม่จำเป็นต้องปรับเปลี่ยน คุณเพียงแค่ต้องใช้ตัวต้านทานทริมเมอร์ R6 เพื่อตั้งค่าการอ่านมาตรรอบสูงสุดโดยการเปิดปีกผีเสื้อของเครื่องยนต์จนสุด

แผนภาพการเชื่อมต่อเครื่องวัดวามเร็วไปยังอุปกรณ์ไฟฟ้าของรถจักรยานยนต์หรือจักรยานยนต์


ถ้าใช้ ติดต่อจุดระเบิดอินพุตของเครื่องวัดวามเร็วแบบโฮมเมดเชื่อมต่อกับจุด A สำหรับการจุดระเบิดแบบไม่สัมผัสเราเชื่อมต่อกับจุด B

มันคืออะไรกันแน่ เครื่องวัดวามเร็ว- เครื่องวัดวามเร็วเป็นอุปกรณ์ที่ใช้ในการวัด RPM (รอบต่อนาที) ของวัตถุที่กำลังหมุนอยู่ มาตรวัดความเร็วรอบถูกสร้างขึ้นบนพื้นฐานของการสัมผัสหรือไม่สัมผัส เครื่องวัดวามเร็วแบบออปติคัลแบบไม่สัมผัสโดยทั่วไปจะใช้ลำแสงเลเซอร์หรืออินฟราเรดเพื่อติดตามการหมุนของวัตถุใดๆ ทำได้โดยการคำนวณเวลาที่ใช้ในการหมุนหนึ่งครั้ง ในเนื้อหานี้นำมาจากเว็บไซต์ภาษาอังกฤษ เราจะแสดงวิธีสร้างเครื่องวัดวามเร็วแบบออปติคัลดิจิทัลแบบพกพาโดยใช้ อาร์ดูโน่ อูโน่- ลองพิจารณาอุปกรณ์เวอร์ชันขยายที่มีจอ LCD และรหัสที่แก้ไข

วงจรมาตรรอบบนไมโครคอนโทรลเลอร์

รายการชิ้นส่วนแผนผัง

  • ไมโครวงจร - Arduino
  • ตัวต้านทาน - 33k, 270 โอห์ม, โพเทนชิออมิเตอร์ 10k
  • องค์ประกอบ LED - สีน้ำเงิน
  • IR LED และโฟโตไดโอด
  • 16x2 หน้าจอแอลซีดี
  • รีจิสเตอร์กะ 74HC595

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

ก่อนอื่นคุณจะต้องมี LED เปล่งแสง IR และโฟโตไดโอดสำหรับเซ็นเซอร์ วิธีการประกอบ-แสดงไว้ในนี้ คำแนะนำทีละขั้นตอน- คลิกที่ภาพเพื่อขยายขนาด

  • 1. ก่อนอื่นคุณต้องขัด LED และโฟโตไดโอดเพื่อให้แบน
  • 2. จากนั้นพับแถบกระดาษตามภาพ สร้างโครงสร้างสองแบบเพื่อให้ LED และโฟโตไดโอดเข้ากันแน่น เชื่อมต่อเข้าด้วยกันด้วยกาวแล้วทาสีดำ
  • 3. ใส่ LED และโฟโตไดโอด
  • 4. กาวเข้าด้วยกันด้วย superglue แล้วบัดกรีสายไฟ

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

วงจรมาตรวัดความเร็วใช้รีจิสเตอร์กะ 74HC595 8 บิตด้วย จอ LCD 16x2. ทำรูเล็กๆ ในตัวเครื่องเพื่อยึดไฟ LED แสดงสถานะ

บัดกรีตัวต้านทาน 270 โอห์มเข้ากับ LED แล้วเสียบเข้ากับพิน 12 ของ Arduino เซ็นเซอร์ถูกใส่เข้าไปในท่อทรงลูกบาศก์เพื่อเพิ่มความแข็งแรงทางกล

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

วิดีโอแสดงการทำงานของเครื่องวัดวามเร็วแบบโฮมเมด


น่าสนใจ การออกแบบที่เรียบง่าย LED cube 3x3x3 บน LED และไมโครวงจร

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

[ซ่อน]

อุปกรณ์ไมโครคอนโทรลเลอร์แบบโฮมเมด

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

  • ไมโครบอร์ดในกรณีนี้จะใช้วงจร Arduino
  • ตัวต้านทาน;
  • ในการสร้างมาตรวัดรอบแบบ LED คุณจะต้องมีองค์ประกอบ LED
  • อินฟราเรดและโฟโตไดโอด
  • จอแสดงผลในกรณีของเราคือ LCD;
  • กะทะเบียน 74HC595

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

เพื่อเริ่มงาน ให้เตรียมองค์ประกอบทั้งหมดแล้วเริ่มได้เลย:

  1. ก่อนอื่น คุณต้องขัด LED และโฟโตไดโอดด้วยกระดาษทราย (เนื้อละเอียด) - คุณต้องการให้พวกมันแบน
  2. หลังจากนั้นคุณจะต้องใส่แถบกระดาษ - คุณต้องสร้างองค์ประกอบที่คล้ายกันสองรายการเพื่อให้สามารถติดตั้งไดโอดได้อย่างแน่นหนา ในที่สุดทั้งสองส่วนจะต้องเชื่อมต่อด้วยกาวแล้วจึงทาสีดำ
  3. หลังจากนั้นจะมีการติดตั้งไดโอดซึ่งต่อมาจะติดกาวด้วยกาวจากนั้นจึงบัดกรีสายไฟ
  4. ควรสังเกตว่าค่าเล็กน้อยของตัวต้านทานอาจแตกต่างกันไปทั้งหมดขึ้นอยู่กับวิธีการใช้โฟโตไดโอด โพเทนชิออมิเตอร์ช่วยให้คุณลดหรือเพิ่มความไวของคอนโทรลเลอร์โดยรวมได้ สายไฟจากคอนโทรลเลอร์จะต้องบัดกรีตามภาพ
  5. จากวงจรสำหรับสร้างเครื่องวัดวามเร็วของรถยนต์โดยใช้ LED คุณสามารถเข้าใจได้ว่าใช้รีจิสเตอร์กะแปดบิต วงจรมาตรวัดรอบยังรวมถึงหน้าจอ LCD ด้วย ควรสร้างรูเล็กๆ ในตัวเครื่องเพื่อยึดหลอดไฟไดโอด
  6. ถัดไปคุณจะต้องบัดกรีตัวต้านทาน 270 โอห์มเข้ากับองค์ประกอบไดโอดแล้วติดตั้งในพิน 12 ตัวควบคุมนั้นถูกเสียบเข้าไปในท่อลูกบาศก์ซึ่งจะช่วยให้อุปกรณ์มีความแข็งแกร่งเพิ่มเติม

อุปกรณ์ง่ายๆ ที่ใช้เครื่องคิดเลขขนาดเล็ก

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

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

ในกรณีของเรา หน้าสัมผัสจะต้องบัดกรีขนานกับปุ่มบวกของเครื่องคิดเลข

เมื่อคุณต้องการวัดความเร็วในการหมุน การวัดจะทำตามรูปแบบต่อไปนี้:

  1. ก่อนอื่นคุณต้องเปิดเครื่องคิดเลขก่อน
  2. หลังจากนั้นให้กดปุ่ม "+" และ "1" พร้อมกัน
  3. หลังจากนั้นอุปกรณ์จะเริ่มทำงานและทำการวัดเอง ในการดำเนินการนี้ คุณต้องเปิดนาฬิกาจับเวลาพร้อมกับเครื่องคิดเลขก่อน
  4. นับจนกระทั่งผ่านไปสามสิบวินาทีจากนั้นให้ความสนใจกับจอแสดงผล - ควรแสดงค่าที่เกี่ยวข้อง
  5. ค่าที่ได้คือจำนวนรอบการหมุนของเพลาข้อเหวี่ยงที่เกิดขึ้นในครึ่งนาที หากคุณเพิ่มตัวเลขนี้สองเท่า คุณจะได้จำนวนรอบต่อนาที

มาตรวัดรอบแบบอะนาล็อกและดิจิตอล

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

ตัวเลือกอนาล็อกประกอบด้วยส่วนประกอบต่อไปนี้:

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

สำหรับอุปกรณ์ดิจิทัลนั้นจุดประสงค์ก็เหมือนกัน แต่การออกแบบอุปกรณ์ดิจิทัลนั้นขึ้นอยู่กับส่วนประกอบอื่น ๆ:

  • ตัวแปลงแปดบิต;
  • ตัวประมวลผลโดยตรงซึ่งแปลงพัลส์เป็นลำดับของค่าหนึ่งและศูนย์
  • หน้าจอที่จะแสดงการอ่าน
  • ตัวควบคุมความเร็ว - อุปกรณ์สับใช้กับแอมพลิฟายเออร์ แต่สามารถใช้เพื่อจุดประสงค์นี้ shunts พิเศษได้ในกรณีนี้ทุกอย่างขึ้นอยู่กับการออกแบบโดยเฉพาะ
  • ไมโครบอร์ดเพิ่มเติมที่จะรีเซ็ตการอ่าน
  • เป็นไปได้ที่จะเชื่อมต่อตัวควบคุมอุณหภูมิสำหรับสารป้องกันการแข็งตัว, อากาศในห้องโดยสาร, แรงดันของเหลวของเครื่องยนต์ ฯลฯ เข้ากับโปรเซสเซอร์
  • สำหรับการใช้งานอุปกรณ์ตามปกติคุณจะต้องมีโปรแกรมพิเศษ

หน้าที่หลักของเครื่องวัดวามเร็วในรถยนต์คือการช่วยเลือกเกียร์ที่ถูกต้องซึ่งส่งผลดีต่ออายุการใช้งานของเครื่องยนต์ รถยนต์ส่วนใหญ่มีมาตรวัดรอบแบบอะนาล็อกอยู่แล้ว และเมื่อเข็มเข้าใกล้เครื่องหมายสีแดง คุณจะต้องเปลี่ยนเกียร์ให้สูงขึ้น

นอกจากนี้เจ้าของรถยังใช้ในการปรับแต่งทั้งขณะเดินเบาและควบคุมความเร็วเครื่องยนต์ขณะขับขี่

หลักการทางกายภาพของการทำงานของเครื่องวัดวามเร็วนั้นขึ้นอยู่กับการนับจำนวนพัลส์ที่เซ็นเซอร์บันทึก ลำดับการมาถึง รวมถึงการหยุดชั่วคราวระหว่างพัลส์เหล่านี้

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

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

มาตรวัดความเร็วรอบรถยนต์มีสองประเภท: แบบดิจิตอลและอนาล็อก มาตรวัดความเร็วรอบรถยนต์แบบดิจิทัลประกอบด้วยบล็อกต่อไปนี้:

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

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

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

โดยปกติ มาตรวัดรอบแบบอะนาล็อกประกอบด้วย:

ชิป
ขดลวดแม่เหล็ก
สายไฟสำหรับอ่านข้อมูลจากเพลาข้อเหวี่ยง
ระดับการศึกษา
ลูกศร

เครื่องวัดวามเร็วนี้ทำงานดังนี้ สัญญาณจากเพลาข้อเหวี่ยงจะถูกส่งผ่านสายไฟไปยังวงจรไมโครซึ่งกำหนดตำแหน่งของลูกศรบนแป้นหมุนไล่ระดับ

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

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

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

เซ็นเซอร์ฮอลล์ซึ่งมีอยู่ใน ระบบอิเล็กทรอนิกส์ระบบจุดระเบิด เซ็นเซอร์ตำแหน่งเพลา และอื่นๆ สิ่งสำคัญคือเซ็นเซอร์จะส่งพัลส์ไปยังวงจรของเราซึ่งเปลี่ยนความต้านทานของตัวต้านทาน R1

วงจรนี้ทำงานเป็นเครื่องวัดความถี่อย่างง่าย พัลส์ที่มาจากเซ็นเซอร์เครื่องยนต์อย่างต่อเนื่องจะถูกส่งไปยังอินพุตการนับของตัวนับทศนิยม K561IE8 จากนั้นไปที่ LED วงจรสามารถขับเคลื่อนจากที่จุดบุหรี่หรือ

ไดโอด VD1 KD522 ป้องกันวงจรจาก การเชื่อมต่อไม่ถูกต้องขั้วไฟฟ้า เซ็นเซอร์ความเร็วเพลาข้อเหวี่ยงส่งพัลส์ไปที่ฐานของทรานซิสเตอร์ VT1 เราเลือกความต้านทาน R1 ขึ้นอยู่กับเซ็นเซอร์ (ในแผนภาพความต้านทานจะถูกเลือกสำหรับเซ็นเซอร์ฮอลล์ในระบบจุดระเบิดแบบไร้สัมผัสของเครื่องยนต์คาร์บูเรเตอร์) จากเอาต์พุตของ VT1 พัลส์จะไปที่ทริกเกอร์ Schmitt ซึ่งสร้างขึ้นบนองค์ประกอบ D1.1-D1.2 มันจะแปลงพัลส์ให้เป็นรูปทรงสี่เหลี่ยมที่ต้องการ ตัวเก็บประจุ C2 กรองสัญญาณรบกวน จับคู่กับตัวต้านทาน R4 เพื่อสร้างตัวกรองที่ตัดพัลส์ ความถี่สูง- จากเอาต์พุต D1.2 พัลส์จะถูกส่งไปยังตัวนับ

มัลติไวเบรเตอร์ที่ประกอบบนองค์ประกอบไมโครวงจร D1.3 และ D1.4 สร้างพัลส์นาฬิกาที่มีความถี่ขึ้นอยู่กับ R6 พัลส์เหล่านี้จะไปที่สายโซ่ C3-R7 ซึ่งสร้างพัลส์เพื่อรีเซ็ตตัวนับ D2 LED ความสว่างพิเศษ HL1-HL9 เชื่อมต่อโดยตรงกับเอาต์พุตของตัวนับ K561IE8 การใช้ R9 คุณสามารถปรับความสว่างของจอแสดงผลได้

ไฟ LED 1-4 ติด แผงวงจรพิมพ์เชื่อมต่อกับสายไฟติดตั้ง

การตั้งค่าการออกแบบเริ่มต้นด้วยการคำนวณค่าของตัวต้านทาน R1 ตามช่วงของพัลส์ที่เข้ามา จากนั้นเราแทนที่ R6 ด้วยตัวต้านทานผันแปรที่เชื่อมต่อแบบอนุกรมที่ 1 โอห์มและตัวต้านทานคงที่ที่ 10 kOhm ต่อไปเราจะกระชับตัวต้านทานแบบปรับค่าได้ให้มีความต้านทานสูงสุด จากนั้นเราหมุนเพื่อให้ไฟ LED สองดวงสว่างขึ้นเมื่อเครื่องยนต์เดินเบา เราทำเครื่องหมายตำแหน่งของตัวต้านทานการปรับค่านี้ จากนั้นเราลดความต้านทานลงเพื่อให้มีไฟ LED เพียงอันเดียวที่สว่างขึ้น จากนั้นเราปรับตัวต้านทานไปที่ตำแหน่งตรงกลาง ต่อไปเราจะวัดความต้านทานผลลัพธ์ R8 ด้วยมัลติมิเตอร์

เมื่อสัปดาห์ที่แล้วมีคนคนหนึ่งเข้ามาหาฉันด้วยงานที่ค่อนข้างไม่ได้มาตรฐาน - จำเป็นต้องตรวจสอบการทำงานของเครื่องวัดวามเร็ว TX-193 (VAZ 2106) โบราณด้วยเครื่องยนต์ VAZ21126 (Priora) ที่ทันสมัยซึ่งมีระบบจุดระเบิดในแต่ละบุคคล คอยล์สำหรับแต่ละกระบอกสูบ ซึ่งหมายความว่าเพียงเชื่อมต่อ TX-193 เข้ากับคอยล์จุดระเบิดจะไม่ทำงานอีกต่อไป นอกจากนี้ ลูกค้าต้องการปรับปรุงประสิทธิภาพของอุปกรณ์โดยไม่ถูกแตะต้อง รูปร่างและการออกแบบ โดยทั่วไปแล้วมันจบลงด้วยความจริงที่ว่าฉันรับเอาไส้อิเล็กทรอนิกส์ของอุปกรณ์และพัฒนาของตัวเองด้วยแบล็คแจ็คและโสเภณี ตอนนี้มาตรวัดรอบจะได้รับข้อมูลเกี่ยวกับความเร็วเพลาข้อเหวี่ยงจาก ECU 7.2 มกราคม ซึ่งรุ่นหลังมีเอาต์พุตพิเศษ

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

แข็ง
เริ่มจากอุปกรณ์ TX-193 กันก่อน ชิ้นส่วนกลไกของอุปกรณ์มีขนาด 1 มิลลิเมตรมิเตอร์ที่มีดีไซน์คลาสสิก พร้อมด้วยแม่เหล็กถาวรและขดลวดเคลื่อนที่ที่จะขยับเข็ม

ในการพัฒนาวงจร สิ่งสำคัญคือต้องรู้เกี่ยวกับมิลลิแอมมิเตอร์เพียงว่าที่กระแสประมาณ 10 mA เข็มจะเบี่ยงเบนไปจนถึงขีดจำกัด และความต้านทานของขดลวดจะอยู่ที่ประมาณ 180 โอห์ม ในฐานะสมอง ฉันเลือกคอนโทรลเลอร์ ATtiny2313A จากบริษัท Atmel ที่มีชื่อเสียง ซึ่งโอเวอร์คล็อกจากภายนอก เครื่องสะท้อนควอทซ์ที่ 16 เมกะเฮิรตซ์ อุปกรณ์นี้ใช้พลังงานจากแหล่งจ่ายไฟในรถยนต์ ซึ่งหมายความว่าตาม GOST อุปกรณ์จะต้องทนต่อ "เครา" สูงถึง 100V และทำงานได้อย่างเสถียรในช่วงตั้งแต่ 9-15V เนื่องจากการสิ้นเปลืองพลังงานต่ำ (หลายสิบมิลลิแอมป์) จึงตัดสินใจใช้ตัวกันโคลงเชิงเส้น 7805 พร้อมตัวกรองและตัวป้องกันแบบเหนี่ยวนำเพื่อป้องกันสัญญาณรบกวนจากแรงกระตุ้น อุปกรณ์ประกอบขึ้นจากสิ่งที่มีอยู่ในมือ ดังนั้นผลิตภัณฑ์สำเร็จรูปจึงใช้เวอร์ชันทรงพลังของ 7805 แม้ว่า 78L05 ที่ 100mA ก็เพียงพอแล้วก็ตาม
คอนโทรลเลอร์จะควบคุมมิลลิแอมมิเตอร์ตามธรรมชาติโดยใช้ PWM เหตุใดตัวจับเวลา 16 บิตจึงใช้ในโหมด Phase และ Frequency Correct PWM
ข้อมูลเกี่ยวกับความเร็วเพลาข้อเหวี่ยงจะถูกส่งจาก ECU ในรูปแบบของพัลส์ตั้งแต่ 0 - 12V ระดับการใช้งานอยู่ในระดับต่ำ 2 พัลส์ต่อ 1 รอบของเพลาข้อเหวี่ยง ในการจับพัลส์เหล่านี้ จะใช้อินเตอร์รัปต์ INT0 ภายนอกและสายโซ่ของตัวกรอง RC, พูลอัพ และไดโอดป้องกันที่สอดคล้องกัน โดยทั่วไปแล้ว การออกแบบวงจรของอุปกรณ์ค่อนข้างเป็นแบบอย่าง และฉันรู้สึกประหลาดใจที่พบว่าฉันเพิ่งเขียนเกี่ยวกับเรื่องนี้ไปมาก แต่อย่าเพิ่งตัดสินเด็ดขาด เพราะยังเป็นบทความแรกอยู่


ตอนนี้อุปกรณ์ที่ประกอบโดยไม่มีแป้นหมุนจะมีลักษณะดังนี้:

ซอฟต์แวร์
ในความเป็นจริงก่อนที่จะวาดไดอะแกรมฉันก็รวบรวมสิ่งทั้งหมดบนเขียงหั่นขนมอย่างรวดเร็วโดยนำคอนโทรลเลอร์ในแพ็คเกจ DIP และเริ่มโบกลูกศรทันที))
โดยทั่วไปแล้วซอฟต์แวร์มีความน่าสนใจมากกว่าซอฟต์แวร์ที่ยากเล็กน้อย

เริ่มจากสถาปัตยกรรมทั่วไปกันก่อน:
ตัวจับเวลา 0 ติ๊กด้วยความถี่ 250 kHz ซึ่งหมายถึงช่วงติ๊ก = 4 µs; การขัดจังหวะโอเวอร์โฟลว์เกิดขึ้นที่ความถี่ 250 kHz / 256 = 0.976 kHz
ซึ่งหมายความว่าการหยุดชะงักเกิดขึ้นทุกๆ 1,024 µs เป็นไปได้ที่จะสับสนและนำเรื่องนี้เข้าใกล้หนึ่งมิลลิวินาทีโดยการอัปเดตตัวนับตัวจับเวลาในการขัดจังหวะ แต่ในงานนี้ไม่มีประเด็น เหล่านั้น. เราสามารถวัดเวลาได้ด้วยความแม่นยำ 4 μs ซึ่งเพียงพอสำหรับความแม่นยำที่กำหนดของอุปกรณ์
ตัวจับเวลา 0 ไม่เพียงแต่นับเวลาเท่านั้น แต่ยังตั้งค่าสถานะเพื่อรันงานบางอย่างที่ความถี่ที่แน่นอนอีกด้วย
เรามีสองงาน ให้อินเทอร์รัปต์ INT0 ดำเนินการต่อเพื่อวัดคาบพัลส์ที่อินพุตและเปลี่ยนตำแหน่งของลูกศร

ตัวจับเวลา 1 ติ๊กที่ความถี่ 16 MHz แต่เนื่องจาก... มันเป็น 16 บิตและใช้โหมด Phase and Frequency Correct PWM - ความถี่ PWM สุดท้ายมีขนาดเล็กมากและมีค่าประมาณ 122Hz เนื่องจากตัวจับเวลาจะติ๊กขึ้นก่อนแล้วจึงลง แต่เรามี PWM 16 บิตที่แท้จริงและสามารถควบคุมเข็มได้อย่างแม่นยำมาก! แผ่นข้อมูลประกอบด้วยรายละเอียดทั้งหมด
อย่างไรก็ตามกลไกกลับกลายเป็นว่ามีคุณภาพน่าขยะแขยง ไม่สามารถขยับเข็มได้อย่างราบรื่นเนื่องจากแรงเสียดทานที่เพิ่มขึ้นในกลไกซึ่งอย่างน้อยต้องหล่อลื่นด้วยน้ำมันเกียร์ก่อน แต่สิ่งเหล่านี้ก็เป็นรายละเอียดอยู่แล้ว
ตารางการติดต่อระหว่างการอ่านค่าเครื่องมือและ ค่าที่สอดคล้องกันจับเวลาลงทะเบียนในนกแก้ว PWM
ในซอร์สโค้ด กรณีนี้เรียกว่า GAUGE_TABLE และถูกวางไว้ในไฟล์แยกต่างหาก

นอกจากนี้ ยังพบว่าหากคุณเพียงแค่เปลี่ยนกระแสในวงจรแอมมิเตอร์ในคราวเดียว เช่น เลื่อนเข็ม 1,000 ไปข้างหน้า ก็จะเกิดการแกว่งสองสามหรือสี่ครั้งในพื้นที่ เครื่องหมายเป้าหมายซึ่งเป็นที่ยอมรับไม่ได้โดยสิ้นเชิงและสิ่งที่ลูกค้าชี้ให้เห็น ความสนใจเป็นพิเศษ- ความจริงก็คือเครื่องวัดวามเร็วเหล่านี้มีปัญหาดังกล่าวในตอนแรกและด้วยการเร่งความเร็วหลาย ๆ ครั้งพร้อมกับการสั่นสะเทือนคุณสามารถทำให้เข็มแกว่งด้วยแอมพลิจูดที่สำคัญ (มากกว่าครึ่งหนึ่งของสเกล!)
จะต้องทำอะไรสักอย่างเกี่ยวกับเรื่องนี้ ความคิดของฉันคือการขยับลูกศรไปยังเครื่องหมายเป็นขั้นตอนเล็กๆ ตามลำดับ และค่อยๆ เข้าใกล้เป้าหมาย จริงๆ แล้วส่วนนี้น่าสนใจและมีประโยชน์ที่สุดสำหรับมือใหม่ เพราะว่า... ต้องใช้ทักษะบางอย่าง ท้ายที่สุดแล้ว เมื่อต้องจัดการกับไมโครคอนโทรลเลอร์ การเรียก log2() แบบวนซ้ำ ถือเป็นการเรียกแบบเบาๆ ไม่ใช่ความคิดที่ดีที่สุด นอกจากนี้ สถาปัตยกรรม 8 บิตยังกำหนดข้อจำกัดเพิ่มเติมอีกด้วย คุณควรลืมเรื่อง "จุดลอยตัว" ไปซะ แต่ปัญหาเหล่านี้เช่นเคยนำไปสู่ความเข้าใจที่ลึกซึ้งยิ่งขึ้นเกี่ยวกับกระบวนการและการคำนวณที่ดำเนินการโดยโปรเซสเซอร์

ด้วยเหตุผลบางอย่างจึงมีข้อความมากขึ้นเรื่อย ๆ แต่ฉันก็อดไม่ได้ที่จะเน้นรายละเอียดเพิ่มเติมในประเด็นนี้!
เห็นได้ชัดว่าเราจำเป็นต้องมีความก้าวหน้าแบบลอการิทึม ขั้นตอนการเปลี่ยนแปลงปัจจุบันในวงจรมิลลิแอมมิเตอร์ควรลดลงเมื่อเข้าใกล้เครื่องหมายเป้าหมาย ทรัพยากรมีค่าดั่งทองคำ ซึ่งหมายถึงวิธีการแบบตารางเท่านั้น นอกจากนี้ยังมีคะแนนน้อยที่สุดเท่าที่จะเป็นไปได้
เริ่มต้นด้วยการสร้างตารางลอการิทึม
ทุกอย่างง่ายมาก: เราเปิดตัว Excel และด้วยการกดเมาส์เพียงไม่กี่ครั้งเราจะได้ค่าลอการิทึมฐาน 2 50 ค่าสำหรับลำดับตั้งแต่ 1 ถึง 50 เพื่อความชัดเจนเราสร้างกราฟที่สวยงาม

มหัศจรรย์! สิ่งที่คุณต้องการ! แต่อย่างแรกมีอยู่แล้ว 50 จุด และอย่างที่สองคือเลขทศนิยมทั้งหมด สิ่งนี้ไม่เหมาะกับเราเลย!
ดังนั้นเราจึงเลือก 5 คะแนนจากอาร์เรย์ที่มีอยู่ด้วยขั้นตอนที่ 10 เราได้สิ่งนี้:

ดีขึ้นแล้ว. ยังคงรักษาแนวทางการเข้าถึงเป้าหมายที่สม่ำเสมอ แต่มีคะแนนน้อยกว่า 10 เท่า
ถัดไปคุณจะต้องทำให้ชุดผลลัพธ์เป็นมาตรฐาน เหล่านั้น. ตรวจสอบให้แน่ใจว่าค่าทั้งหมดอยู่ในช่วงตั้งแต่ 0 ถึง 1 หากต้องการทำสิ่งนี้ เพียงหารแต่ละองค์ประกอบด้วย 5.64385618977472 ( ค่าสูงสุดอาร์เรย์ของเรา)


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

อย่างที่คุณเห็นรูปร่างของกราฟไม่เปลี่ยนแปลง แต่ตอนนี้ตัวเลขพอดีกับช่วง 16 บิตและไม่มีเศษส่วน
ในซอร์สโค้ด ผลลัพธ์อาร์เรย์เรียกว่า logtable

ตัวประกอบสเกล (ถ้าคุณเรียกแบบนั้นได้) 1,024 ไม่ได้ปรากฏที่นี่โดยบังเอิญ และคุณต้องเข้าใจให้ดีว่าทำไม 1,024
ประการแรก นี่คือยกกำลังของสองและมันถูกเลือกเพราะการดำเนินการหารและการคูณด้วยกำลังสองที่มีราคาแพงสามารถแทนที่ได้ด้วยการเลื่อนซ้าย/ขวาราคาถูก และคงจะโง่มากหากไม่ใช้โอกาสนี้
ประการที่สอง ต้องเลือกค่าสัมประสิทธิ์ตามขนาดของข้อมูลที่จะใช้ ในกรณีของเรานี่คือค่าของรีจิสเตอร์ตัวจับเวลา 16 บิตซึ่งควบคุมการเติม PWM จากการทดลองพบว่าตรวจพบการแกว่งของเข็มที่ไม่น่าพอใจ แม้ว่าจะเลื่อนอย่างแรงถึง 200 รอบต่อนาทีก็ตาม เหล่านั้น. หากคุณต้องการขยับเข็มมากกว่า ~200 รอบต่อนาที จะต้องปรับให้เรียบ จากตาราง GAUGE_TABLE จะเห็นได้ว่าเซลล์ข้างเคียงแตกต่างกันโดยเฉลี่ยประมาณ 4,000 PWM นกแก้ว ซึ่งสอดคล้องกับประมาณ 500 รอบต่อนาทีในระดับอุปกรณ์ ไม่ใช่เรื่องยากที่จะประเมินว่าตัวเลขการเปลี่ยนเข็มที่ 200 รอบต่อนาทีจะเป็น 4,000 / 2.5 = 1,600 นกแก้ว PWM
ดังนั้นจึงต้องเลือกปัจจัยการปรับขนาดเพื่อที่ประการแรกจะมีขนาดใหญ่ที่สุดเท่าที่จะเป็นไปได้เพราะไม่เช่นนั้นเราจะสูญเสียตัวเลขและความแม่นยำและประการที่สองให้เล็กที่สุดเท่าที่จะเป็นไปได้เพื่อไม่ให้เราย้ายจากตัวแปร 16 บิตเป็น ทรัพยากรแบบ 32 บิตและไม่สิ้นเปลืองจะสูญเปล่า ด้วยเหตุนี้ เราจึงเลือกกำลังที่น้อยที่สุดของทั้งสอง ซึ่งน้อยกว่า 1600 และให้ความแม่นยำที่เพียงพอ นี่จะเป็น 1024
จุดนี้สำคัญมาก บางครั้งฉันเองยังมีปัญหาในการเลือกค่าสัมประสิทธิ์และขนาดตัวแปรที่เหมาะสม

งั้นเราไปกันเลย เราพบการใช้งานของ display_rpm() ในโค้ด และเห็นว่าในการกำหนดค่าเฉพาะในนกแก้ว PWM นั้น จะใช้ตาราง GAUGE_TABLE และสันนิษฐานว่าสเกลนั้นเป็นเส้นตรงระหว่างเครื่องหมายที่อยู่ติดกัน เพื่อจัดระเบียบการเปลี่ยนแปลงในปัจจุบันตามกฎลอการิทึมได้มีการแนะนำอาร์เรย์ 5 จุด pwm_cuve ซึ่งประกอบด้วยชุดของค่าที่ต้องลบหรือบวกตามลำดับ (ขึ้นอยู่กับทิศทางการเคลื่อนที่ของลูกศร) จาก pwm_ocr1a_cur_val เพื่อให้ลูกศรเคลื่อนที่ได้อย่างราบรื่นและชัดเจน
แต่ละขั้นตอนถูกสร้างขึ้นโดยการคูณค่า pwm_delta ด้วยสัมประสิทธิ์จากตารางบันทึกของเรา
ก่อนการคูณ ค่าจะถูกปรับขนาดไว้ล่วงหน้าด้วยการหารด้วย 1024
ปลายทางที่คำนวณได้สุดท้ายของลูกศร target_pwm ถูกเขียนไปยัง pwm_cuve ตามที่เป็นอยู่ เนื่องจากเนื่องจากปัญหาการปัดเศษและเนื่องจากข้อ จำกัด ของมิติของตัวแปรที่ 16 บิต ค่าที่แน่นอนซึ่งเป็นผลมาจากการคำนวณจะไม่เกิดขึ้นบ่อยนัก ดังนั้นจึงจำเป็นต้องรับประกันว่าลูกศรจะสิ้นสุดเส้นทาง ณ จุดที่กำหนด
โดยทั่วไปแล้ว สิ่งที่กล่าวมาทั้งหมดจะรวมอยู่ในบรรทัดเดียว
pwm_cuve[ table_i ] = pwm_ocr1a_cur_val + (pwm_delta / LOG_TABLE_MAX * ตารางที่บันทึกได้ [ table_i ]);

ถัดไปลูปหลักตามสัญญาณจากตัวจับเวลา 0 ครั้งใน PWM_UPD_PERIOD ตักค่าจาก pwm_cuve และกำหนดให้กับตัวแปร pwm_ocr1a_cur_val ซึ่งค่าในการขัดจังหวะจะถูกกำหนดให้กับการลงทะเบียน OCR1A ซึ่งจะ ทำให้เกิดการเปลี่ยนแปลงในการเติม PWM และการเปลี่ยนแปลงกระแสในวงจรมิลลิแอมมิเตอร์ทันที

อันที่จริงนี่เป็นเทคนิคเกือบทั้งหมด ยกเว้นการแปลงระยะเวลาที่แสดงในตัวจับเวลาเป็นความเร็วการหมุนของเพลาข้อเหวี่ยงซึ่งวัดเป็นรอบต่อนาที
ทั้งหมดนี้ลดลงเหลือ engine_rpm = (uint16_t)(15000000UL / (uint32_t)rot_time);
เราอาจหรืออาจจะไม่พูดถึงที่มาของตัวเลขนี้ในครั้งต่อไป เพราะข้อความมีขนาดใหญ่อยู่แล้ว และเห็นได้ชัดว่ามีคนไม่มากที่จะอ่านมาถึงจุดนี้ด้วยซ้ำ

จริงๆ แล้ว มี “เคล็ดลับ” อีกสองสามอย่างที่ใช้ในโค้ดที่อาจดูเหมือนไม่ชัดเจนสำหรับผู้เริ่มต้น ถ้าใครอยากเข้าใจมากกว่านี้ก็ comment และ PM ได้เลยครับ

วิดีโอเล็กๆ น้อยๆ ตามที่สัญญาไว้
อย่าใส่ใจกับความแม่นยำของการอ่าน ลูกศรไม่ได้สวมอย่างถูกต้อง + แป้นหมุนไม่ได้ขันเข้า
เข็มจะเคลื่อนที่เพิ่มขึ้นครั้งละ 1,000 รอบต่อนาทีในขั้นตอนเดียว

การเปลี่ยนแปลงในปัจจุบันที่ราบรื่น

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

ป.ล. ไม่ต้องบอกว่าไฟล์เก็บถาวรมีโค้ดห่วยๆ จริงๆ แต่ใช่ ในบางที่มันสามารถทำให้สวยงามกว่านี้ได้ ใช่ ฉันรู้ว่าตัวเลขมหัศจรรย์นั้นแย่ และใช่ ฉันสามารถทำได้ดีกว่านี้ ในทางกลับกัน มันค่อนข้างยากที่จะหลงทางในซอร์สโค้ด 200 บรรทัด ดังนั้นที่นี่และที่นั่นฉันจึงยอมให้ตัวเองแฮ็กเล็กน้อย
ฉันแค่อยากจะลงทะเบียนบนฮับเป็นเวลานาน และการเขียนบทความโดยละเอียดเมื่อเวลาผ่านไปหลังจากการดำเนินโครงการกลายเป็นเรื่องยากมากขึ้นเรื่อยๆ ดังนั้นฉันจึงตัดสินใจว่าวันนี้พวกเขาจะ "เป็นผู้นำจากสนาม"
นี่คือโค้ดจริงจากอุปกรณ์จริงที่ประกอบในช่วงเวลาจริง 7 เย็นซึ่งพรุ่งนี้จะติดตั้งบนรถ VAZ 2108 อันรุ่งโรจน์พร้อมเครื่องยนต์ 21126 และฉันหวังว่ามันจะทำให้เจ้าของพอใจไปอีกนานซึ่งตกลง จ่ายเงินมากถึง 100 ต้นสำหรับงานของฉัน
แต่คุณและฉันรู้ว่าฉันมาทั้งหมดนี้ไม่เพียงแต่และไม่มากเพียงเพื่อเงินเท่านั้น เป็นเรื่องดีเมื่อคุณสร้างบางสิ่งบางอย่างและยังใช้งานได้!

ไฟล์เก็บถาวรประกอบด้วยโครงการสตูดิโอ Atmel และแผนผัง + บอร์ดในตัวออกแบบ Altium บอร์ดนี้ผลิตขึ้นโดยใช้วิธี LUT
อัปเดต:ไฟล์เก็บถาวรนี้ถูกโพสต์บนบริการโฮสต์ไฟล์ฟรีและดังนั้นจึงหยุดทำงานกะทันหัน ในการจัดเก็บไฟล์เก็บถาวรบน habrastorage ฉันฝังมันไว้ในภาพถ่ายมาตรวัดความเร็วรอบแบบไม่มีแป้นหมุน (อยู่ที่ด้านบนของบทความ) โดยทั่วไป คุณจะต้องบันทึก jpg แล้วเปิดด้วย Winrar คุณยังสามารถเปลี่ยนนามสกุลเป็น zip ได้อีกด้วย
UPD2:วงจรและบอร์ดได้รับการออกแบบใหม่ รูปภาพได้รับการปรับปรุง ไฟล์เก็บถาวรยังคงอยู่ในรูปภาพ
UPD3ไฟล์เก็บถาวรไม่ได้ถูกแทรกลงในรูปภาพอีกต่อไป PM ฉันที่นี่หรือหาฉัน