Mục lục :
- Thiết kế
- Các linh kiện cần chuẩn bị cho phần mạch điện điều khiển
- Sơ đồ đấu nối
- Lập trình Arduino
- Kết quả
Thiết kế
Thông thường mình thấy đa phần sẽ làm từ 8-10 cây gậy rơi ngẫu nhiên, thời gian rơi của mỗi cây tầm 3-4 giây.
Phần vòng cung các bạn có thể làm bằng gỗ, ống nước cứng , đặt gia công bằng sắt …
Phần cây cột đứng chịu lực phải đủ vì vậy nếu làm bằng ống nước như mình sẽ bị cong, không thể đứng vững.
Các cây gậy ( 8 -10 cây tùy ý ) làm bằng ống nước theo mình là ổn nhất vì các bạn có thể điều chỉnh trọng lượng bằng cách thêm cát , nước vào bên trong, việc này sẽ làm thay đổi tốc độ rơi của gậy.
Các linh kiện cần chuẩn bị cho phần mạch điện điều khiển
- Arduino Nano hoặc các loại khác đủ số chân mong muốn – 1 cái
- Module 8 Relay 5V – 1 cái
- Nam châm điện 12V 2.5kg – 8 cái
- Nút nhấn nhả – 1 cái
- Mạch giảm áp LM2596 hoặc tương tự – 1 cái
- Nguồn 12VDC 3A trở lên – 1 cái
- Hộp nhựa làm box
Sơ đồ đấu nối mạch điện
Lập trình cho Arduino
int relay1 = 2;
int relay2 = 3;
int relay3 = 4;
int relay4 = 5;
int relay5 = 6;
int relay6 = 7;
int relay7 = 8;
int relay8 = 9;
int randNumber;
int randTime;
int myNum[9];
int i;
int j;
int so;
int button = 10;
bool chay;
void setup() {
Serial.begin(9600);
randomSeed(analogRead(A0));
chay = false;
i = 1;
pinMode(button, INPUT_PULLUP);
pinMode(relay1, OUTPUT);
pinMode(relay2, OUTPUT);
pinMode(relay3, OUTPUT);
pinMode(relay4, OUTPUT);
pinMode(relay5, OUTPUT);
pinMode(relay6, OUTPUT);
pinMode(relay7, OUTPUT);
pinMode(relay8, OUTPUT);
digitalWrite(relay1, LOW);
digitalWrite(relay2, LOW);
digitalWrite(relay3, LOW);
digitalWrite(relay4, LOW);
digitalWrite(relay5, LOW);
digitalWrite(relay6, LOW);
digitalWrite(relay7, LOW);
digitalWrite(relay8, LOW);
}
void loop() {
if (digitalRead(button) == 0) {
chay = true;
}
if (chay == true) {
if (i <= 8) {
randTime = random(2800, 4600) / 100 * 100;
delay(randTime);
Serial.println(randTime);
demlai:
randNumber = random(1000, 8990) / 1000;
myNum[i] = randNumber;
for (j = 1; j < i; j = j + 1) {
if (myNum[i] != myNum[j]) {
} else {
goto demlai;
}
}
Serial.print("so thu ");
Serial.print(i);
Serial.print(" :");
Serial.println(myNum[i]);
so = myNum[i] + 1;
digitalWrite(so, HIGH);
i = i + 1;
Serial.println(digitalRead(relay1));
Serial.println(digitalRead(relay2));
Serial.println(digitalRead(relay3));
Serial.println(digitalRead(relay4));
Serial.println(digitalRead(relay5));
Serial.println(digitalRead(relay6));
Serial.println(digitalRead(relay7));
Serial.println(digitalRead(relay8));
} else {
digitalWrite(relay1, LOW);
digitalWrite(relay2, LOW);
digitalWrite(relay3, LOW);
digitalWrite(relay4, LOW);
digitalWrite(relay5, LOW);
digitalWrite(relay6, LOW);
digitalWrite(relay7, LOW);
digitalWrite(relay8, LOW);
i = 1;
chay = false;
}
}
delay(1000);
}
Kết quả
Mời các bạn xem video