2016-05-17 8 views
0

現在、私はArduinoからパルスを読み込み、結果がHighかLowかをチェックするプロジェクトに取り組んでいます。arduinoでのパルス生成と読み出し

私はアルドゥイーノからの高/低出力を生成するために、自分自身のコードを書かなければならなかった:

//Pulse Generator Arduino Code 
int potPin = 2; // select the input pin for the knob 
int outputPin = 13; // select the pin for the output 
float val = 0;  // variable to store the value coming from the sensor 

void setup() { 
    pinMode(outputPin, OUTPUT); // declare the outputPin as an OUTPUT 
    Serial.begin(9600); 
} 

void loop() { 
    val = analogRead(potPin); // read the value from the k 
    val = val/1024; 
    digitalWrite(outputPin, HIGH); // sets the output HIGH 
    delay(val*1000); 
    digitalWrite(outputPin, LOW); // sets the output LOW 
    delay(val*1000); 
} 

それは、パルス間の遅延時間を変更するには、ノブを使用しています。

現在、2つのケーブルを「outputPin」から数えているポートに接続するだけで、別のArduino(これを「カウントArduino」と呼ぶことができます)で高低データを読み取ろうとしています。 Arduino。

私はdigitalReadを使用して、遅延なしでポートを読み取っています。

//Count Arduino Code 
int sensorPin = 22; 
int sensorState = 0; 

void setup() {     
    pinMode(sensorPin, INPUT); 
    Serial.begin(9600); 
} 

void loop(){ 
    sensorState = digitalRead(sensorPin); 
    Serial.println(sensorState); 
} 

最初に1秒ごとにパルスを試しましたが、結果は1トンの高さのスパムでした。常に3ローと3ハイと繰り返し。それは1秒ごとに1に近いものではなく、1ミリ秒ごとに1に似ています。

私が間違っていることを理解できません。タイミングの問題か、これらの変更を検出する良い方法がありますか? 2 ArduinosのGNDが接続されていない場合

+1

最後の文章の質問:「これらの変更を検出するより良い方法はありますか?」はい、あなたが行っているようにレベルを報告するのではなく、変更を検出することによって、あなたは多くの手がかりを与えていません。センサ状態の連続的なシリアル出力は、入力状態の知覚されるタイミングを壊すでしょう。 –

+1

入力がローになったときに「0」を、ハイになったときに「1」を送信すると、9600ボーで約1kHzまでの入力パルスをトラッキングできるはずです。 –

+0

私は毎秒約10パルスを追跡する必要があります。だから、10ヘルツはすでに素晴らしいだろう。割り込みベースのソリューションはArduinoのオプションですか?ピンがハイからローに変化すると割り込みが発生しますか? –

答えて

1

安値と高値

のトンのスパムが...起こります。

また、シリアルバッファがオーバーフローしない場合、arduinoはループサイクルごとに数マイクロ秒しか表示されません。

改善されたプリントアウトの変更のみ、またはledを使用して何が起こっているかを表示します。

void loop(){ 
    static bool oldState; 
    bool sensorState = digitalRead(sensorPin); 
    if (sensorState != oldState) { 
     Serial.println(sensorState); 
     oldState = sensorState; 
    } 
} 
+0

これは間違いなく問題でした....私のGNDピンが正しいポートにないので愚かです! –

+0

私は簡単な問題を解決するのを手伝ってうれしいです。 ;) – datafiddler

関連する問題