0

我要做的是通过 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 停止接收数据,当我断开它们时,它立即开始再次接收数据。

它必须是我的某种干扰,在那些话题上我非常迷茫。

感谢阅读小伙伴

4

0 回答 0