我要做的是通过433MHz传输远程控制两台直流电机。
发送操纵杆的数据工作正常。收到它也很好。但是我的驱动程序一定有问题,因为当我连接电线时,接收器停止工作(如果我断开连接它可以正常工作)。
这是接收者:
NPN晶体管为547B,电机在5V时吸收约150mA电流。
我对接收器的代码如下:
#include <VirtualWire.h>
char recibo[8]="";
int valorX=0;
int valorY=0;
void setup(){
pinMode(5, OUTPUT);
pinMode(5, OUTPUT);
vw_set_ptt_inverted(true); // Required for DR3100
vw_set_rx_pin(12);
vw_setup(4000); // Bits per sec
vw_rx_start(); // Start the receiver PLL running
Serial.begin(9600);
Serial.println("setup");
}
void loop(){
uint8_t buf[VW_MAX_MESSAGE_LEN];
uint8_t buflen = VW_MAX_MESSAGE_LEN;
if (vw_get_message(buf, &buflen)){ //check to see if anything has been received
for(int i=0;i<buflen;i++){ //guardo los datos recibidos en un arra
recibo[i]=char(buf[i]);
}
recibo[buflen]=NULL; //Necesario para obtener el string correcto (finalizacion de array)
sscanf( recibo, "%d,%d", &valorX, &valorY ); //Con esto tengo guardadas en las dos variables los datos recibidos de los sensores
int mappedValueX=map(valorX, 500, 1000, 0, 255);
if(mappedValueX>150){
analogWrite(5,mappedValueX);
delay(15);
analogWrite(6,mappedValueX);
delay(15);
}
else{
analogWrite(5,0);
delay(15);
analogWrite(6,0);
delay(15);
}
}
}
如果连接电机(它们从外部电池获取电源),arduino将停止接收数据,当我断开它们时,它会立即启动以再次接收数据。
我必须受到某种干扰,在这些话题中我非常失落。
感谢您阅读