私がやろうとしているのは、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はデータの受信を停止し、それらを切断するとすぐにデータの受信を再開します。
なんらかの干渉が必要であり、これらのトピックでは私はひどく迷っています.
みんな読んでくれてありがとう