Arduino - ตัวเลขสุ่ม

ในการสร้างตัวเลขสุ่มคุณสามารถใช้ฟังก์ชันตัวเลขสุ่ม Arduino เรามีสองฟังก์ชั่น -

  • randomSeed(seed)
  • random()

RandomSeed (เมล็ดพันธุ์)

ฟังก์ชัน randomSeed (seed) รีเซ็ตตัวสร้างหมายเลขหลอกของ Arduino แม้ว่าการแจกแจงของตัวเลขที่ส่งกลับโดย random () จะเป็นแบบสุ่ม แต่ลำดับก็สามารถคาดเดาได้ คุณควรรีเซ็ตเครื่องกำเนิดไฟฟ้าเป็นค่าสุ่ม หากคุณมีพินอนาล็อกที่ไม่ได้เชื่อมต่ออาจได้รับสัญญาณรบกวนแบบสุ่มจากสภาพแวดล้อมโดยรอบ สิ่งเหล่านี้อาจเป็นคลื่นวิทยุรังสีคอสมิกคลื่นแม่เหล็กไฟฟ้ารบกวนจากโทรศัพท์มือถือไฟเรืองแสงและอื่น ๆ

ตัวอย่าง

randomSeed(analogRead(5)); // randomize using noise from analog pin 5

สุ่ม ()

ฟังก์ชันสุ่มจะสร้างตัวเลขสุ่มหลอก ต่อไปนี้เป็นไวยากรณ์

สุ่ม () ไวยากรณ์คำสั่ง

long random(max) // it generate random numbers from 0 to max
long random(min, max) // it generate random numbers from min to max

ตัวอย่าง

long randNumber;

void setup() {
   Serial.begin(9600);
   // if analog input pin 0 is unconnected, random analog
   // noise will cause the call to randomSeed() to generate
   // different seed numbers each time the sketch runs.
   // randomSeed() will then shuffle the random function.
   randomSeed(analogRead(0));
}

void loop() {
   // print a random number from 0 to 299
   Serial.print("random1=");
   randNumber = random(300);
   Serial.println(randNumber); // print a random number from 0to 299
   Serial.print("random2=");
   randNumber = random(10, 20);// print a random number from 10 to 19
   Serial.println (randNumber);
   delay(50);
}

ตอนนี้ให้เรารีเฟรชความรู้ของเราเกี่ยวกับแนวคิดพื้นฐานบางอย่างเช่นบิตและไบต์

บิต

บิตเป็นเพียงเลขฐานสอง

  • ระบบไบนารีใช้ตัวเลขสองหลัก 0 และ 1

  • เช่นเดียวกับระบบเลขฐานสิบที่ตัวเลขของตัวเลขไม่มีค่าเดียวกัน 'นัยสำคัญ' ของบิตจะขึ้นอยู่กับตำแหน่งในเลขฐานสอง ตัวอย่างเช่นตัวเลขในเลขฐานสิบ 666 เหมือนกัน แต่มีค่าต่างกัน

ไบต์

ไบต์ประกอบด้วยแปดบิต

  • ถ้าบิตเป็นตัวเลขก็เป็นตรรกะที่ไบต์แทนตัวเลข

  • การดำเนินการทางคณิตศาสตร์ทั้งหมดสามารถทำได้

  • ตัวเลขในไบต์ไม่มีนัยสำคัญเหมือนกัน

  • บิตทางซ้ายสุดมีค่ามากที่สุดเรียกว่า Most Significant Bit (MSB)

  • บิตทางขวาสุดมีค่าน้อยที่สุดจึงเรียกว่า Least Significant Bit (LSB)

  • เนื่องจากเลขศูนย์แปดตัวและหนึ่งไบต์สามารถรวมกันได้ 256 วิธีที่แตกต่างกันจำนวนทศนิยมที่ใหญ่ที่สุดที่สามารถแทนได้ด้วยหนึ่งไบต์คือ 255 (ชุดค่าผสมหนึ่งชุดแทนค่าศูนย์)