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 (ชุดค่าผสมหนึ่งชุดแทนค่าศูนย์)