Phạm Huy gửi vào
- 16757 lượt xem
Một cuộc thi rất hữu ích để khuyến khích mọi người cùng tham gia học tập và phấn đấu vào nền khoa họ của nước nhà, đồng thời Khuyến khích các bạn nhỏ ở các tỉnh thành được tham gia một cuộc thi sáng tạo vui tươi và giúp các bạn được tiếp cận lần đầu tiên với Arduino, hướng đến phục vụ sự phát triển của cộng đồng điện tử Việt Nam.



I. Giới thiệu
1. Servo
Servo là một dạng động cơ điện đặc biệt. Không giống như động cơ thông thường cứ cắm điện vào là quay liên tục, servo chỉ quay khi được điều khiển (bằng xung ppm) với góc quay nằm trong khoảng bất kì từ 0 độ đến 180 độ. Mỗi loại servo có kích thước, khối lượng và cấu tạo khác nhau. Có loại thì nặng chỉ 9g (chủ yếu dùng trên máy bay mô mình), có loại thì sở hữu một momen lực bá đạo (vài chục Newton/m), hoặc có loại thì khỏe và nhông sắc chắc chắn,...
2. Module NRF24L01
Module NRF24L01 cũng là một module khá quen thuộc với chúng ta.
Sơ lược:
II. Phần cứng
1. Linh kiện
2. Lắp mạch
Đầu tiên chúng ta kết nối NRF24L01 với arduino:
a. Mạch phát
b. Mạch thu
III. Code
Code ở đây là mình tham khảo của Trương Trọng Thân nhé
1. Code mạch thu
#include <SPI.h> #include <Servo.h> #include "RF24.h" const uint64_t pipe = 0xE8E8F0F0E1LL; // địa chỉ phát RF24 radio(9,10); unsigned char msg[5]; Servo s1; Servo s2; Servo s3; Servo s4; Servo s5; int data; int pos; void setup(){ Serial.begin(9600); radio.begin(); radio.setAutoAck(1); radio.setDataRate(RF24_1MBPS); // Tốc độ dữ liệu radio.setChannel(10); // Đặt kênh radio.openReadingPipe(1,pipe); radio.startListening(); s1.attach(2); s2.attach(3); s3.attach(4); s4.attach(5); s5.attach(6); } void loop(){ if (radio.available()) { radio.read(&msg, sizeof(msg)); s1.write(msg[0]); s2.write(msg[1]); s3.write(msg[2]); s4.write(msg[3]); s5.write(msg[4]); } }2. Code mạch phát
#include <SPI.h> #include "RF24.h" const uint64_t pipe = 0xE8E8F0F0E1LL; RF24 radio(9,10); unsigned char msg[10]; const int potpin_1 = A0; const int potpin_2 = A1; const int potpin_3 = A2; const int potpin_4 = A3; const int potpin_5 = A4; const int potpin_6 = A5; const int potpin_7 = 2; int val_1, val_2, val_3, val_4, val_5,val_6,val_7; void setup(){ Serial.begin(9600); /////////////// radio.begin(); radio.setAutoAck(1); radio.setRetries(1,1); radio.setDataRate(RF24_1MBPS); radio.setPALevel(RF24_PA_MAX); radio.setChannel(10); radio.openWritingPipe(pipe); } void loop() { /////////////////////////// val_1 = analogRead(potpin_1); val_1 = map(val_1, 0, 1023, 0, 180); msg[0] = val_1; ///////////////////////////// val_2 = analogRead(potpin_2); val_2 = map(val_2, 0, 1023, 0, 180); msg[1] = val_2; /////////////////////////// val_3 = analogRead(potpin_3); val_3 = map(val_3, 0, 1023, 0, 180); msg[2] = val_3; //////////////////////////// val_4 = analogRead(potpin_4); val_4 = map(val_4, 0, 1023, 0, 180); msg[3] = val_4; ///////////////////////// val_5 = analogRead(potpin_5); val_5 = map(val_5, 0, 1023, 0, 180); msg[4] = val_5; ///////////////////////// Serial.println(msg[6]); radio.write(&msg, sizeof(msg)); }IV. Kết luận
Chúng ta có vô vàn cách sáng tạo với Arduino,servo,... Và đây là một số hình ảnh về sản phẩm của tôi:
Chúc các bạn thành công!