Arduino - Số ngẫu nhiên
Để tạo số ngẫu nhiên, bạn có thể sử dụng các hàm số ngẫu nhiên của Arduino. Chúng tôi có hai chức năng -
- randomSeed(seed)
- random()
randomSeed (hạt giống)
Hàm randomSeed (hạt giống) đặt lại bộ tạo số giả ngẫu nhiên của Arduino. Mặc dù sự phân bố của các số được trả về bởi random () về cơ bản là ngẫu nhiên, trình tự có thể dự đoán được. Bạn nên đặt lại trình tạo thành một số giá trị ngẫu nhiên. Nếu bạn có một chân analog chưa được kết nối, nó có thể nhận nhiễu ngẫu nhiên từ môi trường xung quanh. Đó có thể là sóng vô tuyến, tia vũ trụ, nhiễu điện từ từ điện thoại di động, đèn huỳnh quang, v.v.
Thí dụ
randomSeed(analogRead(5)); // randomize using noise from analog pin 5
ngẫu nhiên ()
Hàm ngẫu nhiên tạo ra các số giả ngẫu nhiên. Sau đây là cú pháp.
Cú pháp câu lệnh random ()
long random(max) // it generate random numbers from 0 to max
long random(min, max) // it generate random numbers from min to max
Thí dụ
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);
}
Bây giờ chúng ta hãy làm mới kiến thức của mình về một số khái niệm cơ bản như bit và byte.
Chút ít
Một bit chỉ là một chữ số nhị phân.
Hệ thống nhị phân sử dụng hai chữ số, 0 và 1.
Tương tự như hệ thống số thập phân, trong đó các chữ số của một số không có cùng giá trị, 'ý nghĩa' của một bit phụ thuộc vào vị trí của nó trong số nhị phân. Ví dụ, các chữ số trong số thập phân 666 giống nhau, nhưng có giá trị khác nhau.
Byte
Một byte bao gồm tám bit.
Nếu một bit là một chữ số, thì hợp lý là các byte đại diện cho các số.
Tất cả các phép toán có thể được thực hiện dựa trên chúng.
Các chữ số trong một byte cũng không có cùng ý nghĩa.
Bit ngoài cùng bên trái có giá trị lớn nhất được gọi là Bit quan trọng nhất (MSB).
Bit ngoài cùng bên phải có giá trị nhỏ nhất và do đó, được gọi là Bit ít quan trọng nhất (LSB).
Vì tám số không và các số không của một byte có thể được kết hợp theo 256 cách khác nhau, nên số thập phân lớn nhất có thể được biểu thị bằng một byte là 255 (một tổ hợp biểu thị số 0).