电子说
零件清单: -
Arduino Nano - 2
RF 433 Mhz发射器 - 接收器模块 - 1
L293D - 1
操纵杆 - 1
面包板-1
纸板 - 根据需要
脚轮 - 1
BO马达 - 2
BO电动轮 - 2
LiPo电池 - 1
跳线 - 根据需要
步骤1:模块规范
我们使用RF发射器接收器模块(如上图所示)将数据从我们的操纵杆传输到机器人。
变送器:
工作电压:3V - 最大12V。电源使用12V
工作电流:最大值小于40mA,最小值为9mA
谐振模式:(SAW)
调制模式:ASK
工作频率:Eve 315MHz或433MHz
传输功率:25mW(12V时为315MHz)
频率误差:+ 150kHz(最大值)
速度:小于10Kbps
因此该模块将在开放区域内传输长达90米。
接收器:
工作电压:5.0VDC + 0.5V
工作电流:最大≤5.5mA
工作方式:OOK/ASK
工作频率:315MHz-433.92MHz
带宽:2MHz
灵敏度:excel -100dBm(50Ω)
发射速度:《9.6Kbps(315MHz和-95dBm)
注意: - 使用可选天线会增加无线通信的有效性。一个简单的电线就可以解决问题。
操纵杆 -
模拟操纵杆是在项目中添加一些控制的好方法。
我们需要5个连接到操纵杆。
连接是:键,Y,X,电压和地。 “Y和X”是模拟,“键”是数字。
如果您不需要开关,那么您只能使用4个引脚。
第2步:原理图
此模块的连接非常简单。
for Transmitter :
Vcc 》》》》 5V
ATAD 》》》 D4“您可以根据需要从软件中进行更改”。
Gnd 》》》 Gnd
接收器:
Vcc 》》》》 5V
数据》》》 D2
Gnd 》》》 Gnd
操纵杆: -
Vcc的》》》》 5V
GND 》》》 GND
X 》》》 A0
Y》 》》 A1
Key 》》》 D2“只有在你需要使用它时才将它连接到arduino”
L293D: -
10 》》》 D6
15 》》》 D5
2 》》》 D9
7 》》》 D10
1,8,9,16 》》》 5V
4,5,12,13 》》》 GND
11,14 》》》电机A
3,6 》》》电机B
步骤3:代码
只需将此代码复制到Arduino IDE即可。你必须在一个Aduino程序中将发射器的代码和接收器的代码复制到另一个程序。
发射器的代码将被上传到操纵杆接口的arduino,接收器的代码将被连接到机器人上的arduino。
发射器代码: -
(注意: -
首先使用操纵杆进行校准串行监视器,以获得你的操纵杆各自的值)。
AS我必须发送4个数据位,我使用了4个发送器腿来发送4位而不是一个数据位,如图所示)
void setup(){
//将设置代码放在这里,运行一次:
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
pinMode(9,OUTPUT);
pinMode(10,OUTPUT);
//Serial.begin(9600);
}
void loop(){
int a = analogRead(A0) ;
int b = analogRead(A1);
//Serial.print(a);
//Serial.print(“\\”);
//Serial.println(b);
if(b》 = 700& b 《1023& a》 = 500&& a 《= 540){
digitalWrite(5,0) );//FORWARD
digitalWrite(6,1);
digitalWrite(9,0);
digitalWrite(10,1);
}
if(b 《200& a》 = 500&& a 《= 540 ){
digitalWrite(5,1);//REVERSE
digitalWrite(6,0);
digitalWrite(9,1);
digitalWrite(10,0);
}
if(a》 = 700& a 《1023& b》 = 500 && b 《= 540){
digitalWrite(5,0);//right
digitalWrite(6,1);
digitalWrite(9,1);
digitalWrite(10,0);
}
if(a 《200& b》 = 500&& b 《= 540 ){
digitalWrite(5,1);//left
digitalWrite(6,0);
digitalWrite(9,0);
digitalWrite(10,1);
}
if(a》 = 500& a 《= 540& b》 = 500&& b 《= 540){
digitalWrite(5,0);//停止
digitalWrite(6,0);
digitalWrite(9,0);
digitalWrite(10,0);
}
}
接收者代码: -
(注意: - 由于我必须接收4个数据位,我使用了4个接收器而不是一个数据位,如原理图所示。
void setup (){
//将设置代码放在这里,运行一次:
pinMode(9,INPUT);
pinMode(10,INPUT);
pinMode(11,INPUT);
pinMode(12,INPUT);
pinMode(5,OUTPUT);
pinMode(6,OUTPUT );
pinMode(9,OUTPUT);
pinMode(10,OUTPUT);
}
void loop(){
int a,b,c,d;
a = digitalRead(9);
b = digitalRead(10);
c = digitalRead(11);
d = digitalRead(12);
if(a == 0&& b == 1&& c == 0&& d == 1){
digitalWrite(5,1);
digitalWrite(6,0);
digitalWrite(9, 1);
digitalWrite(10,0);
}
if(a == 1&& b == 0&& c == 1&& d == 0){
digitalWrite(5,0);
digita l写(6,1);
digitalWrite(9,0);
digitalWrite(10,1);
}
if(a == 0&& b == 1&& c == 1&& d == 0){
digitalWrite(5,0);
digitalWrite(6,1);
digitalWrite(9,1);
digitalWrite(10,0);
}
if(a == 1&& b == 0&& c == 0&& d == 1){
digitalWrite(5,1);
digitalWrite(6,0);
digitalWrite(9,0);
digitalWrite(10,1);
}
if(a == 0&& b == 0&& c == 0&& d == 0){
digitalWrite(5,0);
digitalWrite(6,0);
digitalWrite(9,0);
digitalWrite(10,0);
}
}
全部0条评论
快来发表一下你的评论吧 !