2017-09-05 1 views
-2

Arduino UnoボードのCを使用してモータを制御するif文を使用しようとしています。しかし、センサであるPINが0になったときにモータが動作し、全く動作しないように設定しています。私もPINを0と1に等しくないように設定しようとしましたが、どちらもうまく動作しています。あなたはそれをチェックしてもらえますか?どうもありがとうございました。ArduinoのPIN = 0はモータを起動しません

int MotorL=11; 
int DirectionR=12; 
int MotorR=10; 
int DirectionL=13; 
int SensorM=0; 

#include <avr/io.h> 
#include <util/delay.h> 


void setup() { 
    pinMode(DirectionL,OUTPUT); 
    pinMode(DirectionR,OUTPUT); 
    pinMode(SensorM,INPUT); 
    digitalWrite(DirectionL,HIGH); 
    digitalWrite(DirectionR,HIGH); 
    analogWrite(MotorL,0); 
    analogWrite(MotorR,0); 
} 

void loop() { 
    if(PIND &_BV(PD6)==0){ //General movement: forward 
    analogWrite(MotorL,84); 
    analogWrite(MotorR,97); 
    }else{ 
    analogWrite(MotorL,0); 
    analogWrite(MotorR,0); 
    } 
} 

答えて

5

==&よりも優先順位が高いです。最初の2つの項を括弧で囲む必要があります。

if((PIND &_BV(PD6))==0) 

しかし、どのようなコンパイラが見ていることは次のとおりです:

何を意味している

if(PIND & (_BV(PD6)==0)) 
関連する問題