gpt4 book ai didi

c - Arduino 中的 PIN = 0 不会触发电机

转载 作者:行者123 更新时间:2023-11-30 19:57:23 25 4
gpt4 key购买 nike

我正在尝试使用 if 语句来控制 Arduino Uno 板上使用 C 语言的电机。然而,当我设置当PIN(即传感器)等于0时电机将运行时,它根本不起作用。我还尝试将 PIN 设置为不等于 0 和 1,两者都工作正常。你们能给它检查一下吗?非常感谢。

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);
}
}

最佳答案

== 的优先级高于 &。您需要将前两项放在括号中。

你的意思是:

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

但是编译器看到的是:

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

关于c - Arduino 中的 PIN = 0 不会触发电机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46046690/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com