ไมโครคอนโทรลเลอร์ขนาดเล็ก (Atmel 8 บิต) ควบคุมไฟจำนวนหนึ่งเพื่อนำเสนอการแสดงแสงที่มีลำดับแสงแบบสุ่มจำนวนมาก
หลอกที่เหมาะสม -RNG ทำงานได้ดี แต่ฉันกำลังมองหาเมล็ดพันธุ์ที่ดีสำหรับมัน เมล็ดจะมีความจำเป็นเพราะถ้ามีคนเปิดอุปกรณ์หลายอย่างพร้อมกันมันจะไม่ดูดีถ้าพวกเขาสร้างลำดับของเอฟเฟกต์เดียวกันจนกว่าพวกเขาจะค่อยๆแยกออกจากกันเนื่องจากความแตกต่างเล็ก ๆ ในแหล่งสัญญาณนาฬิกาของแต่ละคน
วิธีที่ดีมากในการหว่านหลอก -RNG ซึ่งฉันใช้บ่อยเป็นไปได้ในกรณีของอุปกรณ์ที่ต้องเริ่มต้นด้วยการกดปุ่มหรือพลิกของสวิตช์ ทันทีที่เปิดใช้งาน µc ตัวจับเวลาอย่างรวดเร็วสามารถเริ่มต้นได้และค่าของตัวจับเวลานี้จะรวมค่า RNG ทันทีที่กดปุ่มเป็นครั้งแรก
ปัญหาคือในสถานการณ์นี้ไม่มีปุ่ม โปรแกรมจะต้องเริ่มต้นทันทีที่เปิดอุปกรณ์
สถานที่บน PCB มีข้อ จำกัดอย่างมาก (ไม่มีอะไรมากไปกว่าชิ้นส่วน SMD ขนาดเล็กที่สุดบางชิ้นที่อาจพอดี) ดังนั้นฉันจึงกำลังมองหาทางออกที่เล็กที่สุดและง่ายที่สุดเท่าที่จะเป็นไปได้ ดังนั้นฉันจะออกกฎแฟนซีโซลูชั่นเช่นฮาร์ดแวร์ RNG จริง, เครื่องรับวิทยุ ฯลฯ
สิ่งที่ฉันมีคือตัวจับเวลาตัวนับ 16 บิตใน CPU และพอร์ตที่ไม่ได้ใช้ซึ่งเข้าถึง ADC
วิธีแก้ปัญหาปัจจุบันของฉันคือใช้ตัวต้านทาน (ไม่แม่นยำเท่าที่จะเป็นไปได้) เพื่อให้แรงดันไฟฟ้าครึ่งหนึ่งให้กับขา ADC และให้ค่า RNG ด้วยค่าการแปลง AD ครั้งแรก อย่างไรก็ตามปัจจุบันตัวต้านทาน 10% ส่วนใหญ่มีความไม่ถูกต้องต่ำกว่า 1% (มันคงจะสนุกที่จะจินตนาการถึงหน้าตาของซัพพลายเออร์เมื่อฉันบอกพวกเขาว่าเราต้องการตัวต้านทาน SMD คุณภาพต่ำที่สุดที่พวกเขาสามารถพบได้) ดังนั้นจึงมีโอกาสสูงมาก หลายหน่วยเริ่มต้นด้วยเมล็ดเดียวกัน
ทางเลือกที่ดีกว่าคือการแปลงหลายครั้งและสร้างมูลค่าจากบิตที่มีนัยสำคัญน้อยที่สุดของการวัดเหล่านี้ อย่างไรก็ตามฉันใช้ ADC ของประเภทนี้มาก่อนและฉันรู้ว่ามันแม่นยำมาก การใช้ ADC ด้วยความเร็วที่เร็วที่สุดอาจช่วยได้ที่นี่
ไม่มีใครมีข้อเสนอแนะที่ดีกว่า? เมล็ดไม่จำเป็นต้องกระจายอย่างสมบูรณ์แบบสม่ำเสมอ แต่ยิ่งกระจายเท่ากันก็ยิ่งดีเท่านั้น เมล็ดพันธุ์ขนาด 16 บิตที่มีการกระจายที่สมบูรณ์แบบนั้นเป็นความฝันที่ดีเกินจริง แต่ฉันคิดว่าการกระจายที่เหมาะสมครึ่งทางมากกว่า 5 หรือ 6 บิตอาจเพียงพอ