0

私がやろうとしているのは、433MHz 伝送を介して 2 つの DC モーターをリモートで制御することです。

ジョイスティックのデータの送信は正常に機能します。受信も正常に動作します。しかし、ワイヤを接続するとレシーバが動作しなくなるため、ドライバに問題があるに違いありません (ワイヤを切断すると正常に動作します)。

これはレシーバーです:

フリーズ画像

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