For loop 如何退出或中断';对于循环';关于Arduino C程序 我对编程界并不陌生,但在过去的2周里,我正在与ARDUINO C++进行合作。我有一个奇怪的问题。一般来说,我有一个7段显示器,当条件为01时,它将作为一个向上计数器,当条件为10时,它将作为一个向下计数器,00用于重置为零,11用于停止(在该数字中暂停)

For loop 如何退出或中断';对于循环';关于Arduino C程序 我对编程界并不陌生,但在过去的2周里,我正在与ARDUINO C++进行合作。我有一个奇怪的问题。一般来说,我有一个7段显示器,当条件为01时,它将作为一个向上计数器,当条件为10时,它将作为一个向下计数器,00用于重置为零,11用于停止(在该数字中暂停),for-loop,arduino,arduino-uno,arduino-c++,For Loop,Arduino,Arduino Uno,Arduino C++,问题是,当递增或递减计数器仍在计数,并且我已更改状态时,7段仍在计数!除此之外,我还打印了状态改变时的状态,但什么也没发生。我想我的代码可能有错误,我需要你们的建议。这是我的密码: *仅供参考,我尝试使用中断,返回,也调用循环(),但没有任何结果 *saklar1=开关1 *saklar2=开关2 #包括 塞夫塞格塞夫塞格; saklar1的常数=2; saklar2的常数=3; 无效设置(){ 字节七段=1; 字节commonPins[]={}; 字节七个引脚[]={11,10,9,8,7,6

问题是,当递增或递减计数器仍在计数,并且我已更改状态时,7段仍在计数!除此之外,我还打印了状态改变时的状态,但什么也没发生。我想我的代码可能有错误,我需要你们的建议。这是我的密码:

*仅供参考,我尝试使用中断返回,也调用循环(),但没有任何结果

*saklar1=开关1
*saklar2=开关2

#包括
塞夫塞格塞夫塞格;
saklar1的常数=2;
saklar2的常数=3;
无效设置(){
字节七段=1;
字节commonPins[]={};
字节七个引脚[]={11,10,9,8,7,6,5,4};
布尔电阻=真;
sevseg.begin(公共_阴极、七段、公共引脚、七引脚、电阻器);
正确性(90);
引脚模式(saklar1,输入);
引脚模式(saklar2,输入);
Serial.begin(9600);
}
void循环(){
检查(digitalRead(saklar1)、digitalRead(saklar2));
}
无效检查(布尔萨卡拉1,布尔萨卡拉2){
if(saklar1==低&&saklar2==低){
setSevSeg(0);
}否则如果(saklar1==低和&saklar2==高){
对于(int i=0;i=0;i--){
setSevSeg(i);
如果(saklar1!=高| | saklar2!=低){
检查(digitalRead(saklar1)、digitalRead(saklar2));
}
}
}否则如果(saklar1==高和&saklar2==高){
延迟(100);//停止
}
}
无效设置EVSEG(整数){
sevseg.setNumber(num);
sevseg.refreshDisplay();
延迟(500);//1次
}

在以下代码中,当传感器值超过阈值时,控件退出for循环

参考:[https://www.arduino.cc/reference/en/language/structure/control-structure/break]

int threshold = 40;
for (int x = 0; x < 255; x++) {
  analogWrite(PWMpin, x);
  sens = analogRead(sensorPin);
  if (sens > threshold) {     // bail out on sensor detect
    x = 0;
    break;
  }
  delay(50);
}
int阈值=40;
对于(int x=0;x<255;x++){
模拟写入(PWMpin,x);
传感器=模拟读数(传感器引脚);
如果(传感器>阈值){//传感器检测时释放
x=0;
打破
}
延迟(50);
}

如果(saklar1!=低| | saklar2!=高)
考虑到它在一个条件块内,并且有一个条件确保它总是假的,那么它怎么可能是真的:
否则如果(saklar1==低&&saklar2==高)
因为我需要检查开关输入的状态是否发生了变化,先生,您有什么建议吗?您需要跟踪以前的状态。如果您不想跟踪以前的状态,那么每次访问变量时都需要使用digitalRead,因为只有在调用digitalRead时才会读取新值。我使用的传感器是一个开关,这是一个典型的数字传感器,它可以检测电压水平,如果有低或高,你的答案似乎是用于模拟传感器,但开关不是模拟的sensor@Amir然后使用
if(数码头(pin))中断。如果你想做任何编程,至少需要自己思考。Jonathan可能想通过给你一些不能解决问题的东西来鼓励你思考和学习,但却向你展示了如何实现它