私は現在、434MHzのTxとRxのMegaにUnoを使用してcharを送信する設定を持っています。 Megaはチャールを受信した回数をカウントし、一定数以下になるとアラームをトリガーします。これは屋内または2つのマイクロコントローラ間の距離を測定する実用的な方法ですか?理論的には2つのarduinoのrfリンクを使用した距離
トランスミッタ(メガ)
#include <SoftwareSerial.h>
int rxPin=2; //Goes to the Receiver Pin
int txPin=5; //Make sure it is set to pin 5 going to input of receiver
SoftwareSerial txSerial = SoftwareSerial(rxPin, txPin);
SoftwareSerial rxSerial = SoftwareSerial(txPin, rxPin);
char sendChar ='H';
void setup() {
pinMode(rxPin, INPUT);
pinMode(txPin,OUTPUT);
txSerial.begin(2400);
rxSerial.begin(2400);
}
void loop() {
txSerial.println(sendChar);
Serial.print(sendChar);
}
レシーバー
#include <SoftwareSerial.h>
//Make sure it is set to pin 5 going to the data input of the transmitter
int rxPin=5;
int txPin=3; //Don't need to make connections
int LED=13;
int BUZZ=9;
int t=0;
char incomingChar = 0;
int counter = 0;
SoftwareSerial rxSerial = SoftwareSerial(rxPin, txPin);
void setup() {
pinMode(rxPin, INPUT); //initilize rxpin as input
pinMode(BUZZ, OUTPUT); //initilize buzz for output
pinMode(LED, OUTPUT); //initilize led for output
rxSerial.begin(2400); //set baud rate for transmission
Serial.begin(2400); //see above
}
void loop() {
for(int i=0; i<200; i++) {
incomingChar = rxSerial.read(); //read incoming msg from tx
if (incomingChar =='H') {
counter++; //if we get bit "h" count it
}
delay(5); //delay of 10 secs
}
Serial.println(incomingChar);
Serial.println(counter); //prints the the bits we recieved
if(counter<55) {
//if we receive less than 100 bits than print out of range triggers alarm
Serial.println("out of range");
tone(BUZZ,5000,500);digitalWrite(LED,HIGH);
}
else {
noTone(BUZZ);digitalWrite(LED, LOW);
//if we get more than 100 bits than we are within range turn off alarm
Serial.println("in range");
}
counter = 0;
incomingChar=0;
}
これはなぜあなたに距離の尺度を与えると思いますか?ソリューションを提案するには、1)どのレベルの精度が必要ですか。 2)その他の制限事項(費用など) 3)これらの間には自由な見通し線があります。 4)どのような距離の範囲に興味がありますか? – tom10
1)かなり正確でなければなりません。正確な数字でない場合は申し訳ありません。2)コストは低く、50ドル未満の場合はunoとmegaは含まれません。3)視線は無料です。4)短距離に興味があります。15ft – teddywestside
このような距離を簡単に測定できるarduinoには何も組み込まれていません。これは基本的にハードウェアの問題であるため、おそらくstackoverflow以外のフォーラムでは良いでしょう。ただし、音響または超音波通信、光強度または他の信号強度、既知の距離で分離された2つの光の間隔、レーザーレンジファインダなどを測定するものもあります。 – tom10