Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
If statement 如何在arduino中编制一个程序,将变量从0更改为9,然后从9更改为0,依此类推?_If Statement_While Loop_Arduino_Arduino Ide_Seven Segment Display - Fatal编程技术网

If statement 如何在arduino中编制一个程序,将变量从0更改为9,然后从9更改为0,依此类推?

If statement 如何在arduino中编制一个程序,将变量从0更改为9,然后从9更改为0,依此类推?,if-statement,while-loop,arduino,arduino-ide,seven-segment-display,If Statement,While Loop,Arduino,Arduino Ide,Seven Segment Display,我目前正在构建一个七段显示,我希望它能够显示从0到9的所有数字,反之亦然。我已经能够显示0和9之间的所有数字,但我一直在尝试显示9和0之间的数字。一旦达到9,它将从0重新启动。你能帮助我吗?提前非常感谢我想你可以把它做成手册,这样它就可以运行了 if (x < 10) { x = x+1; delay(Delay); } else { x-1; delay(Delay); x-1 delay(Delay); x-1; delay(D

我目前正在构建一个七段显示,我希望它能够显示从0到9的所有数字,反之亦然。我已经能够显示0和9之间的所有数字,但我一直在尝试显示9和0之间的数字。一旦达到9,它将从0重新启动。你能帮助我吗?提前非常感谢我想你可以把它做成手册,这样它就可以运行了

 if (x < 10) {
    x = x+1;         
    delay(Delay);
 }
 else {
 x-1;
 delay(Delay); 
 x-1 
 delay(Delay); 
 x-1;
 delay(Delay); 
 x-1 
 delay(Delay); 
 x-1;
 delay(Delay); 
 x-1 
 delay(Delay); 
 x-1;
 delay(Delay); 
 x-1 
 delay(Delay); 
 x-1 
 delay(Delay);
 }
if(x<10){
x=x+1;
延迟(延迟);
}
否则{
x-1;
延迟(延迟);
x-1
延迟(延迟);
x-1;
延迟(延迟);
x-1
延迟(延迟);
x-1;
延迟(延迟);
x-1
延迟(延迟);
x-1;
延迟(延迟);
x-1
延迟(延迟);
x-1
延迟(延迟);
}

这并不是最好的方法,但它应该可以工作

这里有一个解决方案,它将运行从0到9的数字,然后返回到0:

int G = 3; // G equals to the lower segment
int H = 2; // H equals to the lower-left segment
int x = 0;
int Delay = 500;

void controlSegment(int x);
void setup() {
pinMode(A, OUTPUT);
pinMode(B, OUTPUT);
pinMode(C, OUTPUT);
pinMode(D, OUTPUT);
pinMode(E, OUTPUT);
pinMode(F, OUTPUT);
pinMode(G, OUTPUT);
pinMode(H, OUTPUT);
}


void loop() {
for(int i=0;i<10;i++){
  controlSegment(i);
  delay(DELAY);
}
for(int i=8;i>=0;i--){
  controlSegment(i);
  delay(DELAY);
}
}
void controlSegment(int x){
     if(x == 0)  {
    digitalWrite(A, LOW);
    digitalWrite(B, HIGH);  
    digitalWrite(C, HIGH);
    digitalWrite(D, HIGH);
    digitalWrite(E, LOW);
    digitalWrite(F, HIGH);
    digitalWrite(G, HIGH);
    digitalWrite(H, HIGH);
} 

if(x == 1)  {
    digitalWrite(A, LOW);
    digitalWrite(B, LOW);
    digitalWrite(C, HIGH);
    digitalWrite(D, LOW);
    digitalWrite(E, LOW);
    digitalWrite(F, HIGH);
    digitalWrite(G, LOW);
    digitalWrite(H, LOW); 
  }

  if(x == 2)  {
    digitalWrite(A, HIGH);
    digitalWrite(B, LOW);
    digitalWrite(C, HIGH);
    digitalWrite(D, HIGH);
    digitalWrite(E, LOW);
    digitalWrite(F, LOW);
    digitalWrite(G, HIGH);
    digitalWrite(H, HIGH);
}

if(x == 3)  {
    digitalWrite(A, HIGH);
    digitalWrite(B, LOW);
    digitalWrite(C, HIGH);
    digitalWrite(D, HIGH);
    digitalWrite(E, LOW);
    digitalWrite(F, HIGH);
    digitalWrite(G, HIGH);
    digitalWrite(H, LOW);
}
if(x == 4)  {
    digitalWrite(A, HIGH);
    digitalWrite(B, HIGH);
    digitalWrite(C, HIGH);
    digitalWrite(D, LOW);
    digitalWrite(E, LOW);
    digitalWrite(F, HIGH);
    digitalWrite(G, LOW);
    digitalWrite(H, LOW);
}
if(x == 5)  {
    digitalWrite(A, HIGH);
    digitalWrite(B, HIGH);
    digitalWrite(C, LOW);
    digitalWrite(D, HIGH);
    digitalWrite(E, LOW);
    digitalWrite(F, HIGH);
    digitalWrite(G, HIGH);
    digitalWrite(H, LOW);
}
if(x == 6)  {
    digitalWrite(A, HIGH);
    digitalWrite(B, HIGH);
    digitalWrite(C, LOW);
    digitalWrite(D, HIGH);
    digitalWrite(E, LOW);
    digitalWrite(F, HIGH);
    digitalWrite(G, HIGH);
    digitalWrite(H, HIGH);
}
if(x == 7)  {
    digitalWrite(A, LOW);
    digitalWrite(B, LOW);
    digitalWrite(C, HIGH);
    digitalWrite(D, HIGH);
    digitalWrite(E, LOW);
    digitalWrite(F, HIGH);
    digitalWrite(G, LOW);
    digitalWrite(H, LOW);
}
if(x == 8)  {
    digitalWrite(A, HIGH);
    digitalWrite(B, HIGH);
    digitalWrite(C, HIGH);
    digitalWrite(D, HIGH);
    digitalWrite(E, LOW);
    digitalWrite(F, HIGH);
    digitalWrite(G, HIGH);
    digitalWrite(H, HIGH);
}
if(x == 9)  {
    digitalWrite(A, HIGH);
    digitalWrite(B, HIGH);
    digitalWrite(C, HIGH);
    digitalWrite(D, HIGH);
    digitalWrite(E, LOW);
    digitalWrite(F, HIGH);
    digitalWrite(G, HIGH);
    digitalWrite(H, LOW);
}
}
int G=3;//G等于下段
int H=2;//H等于左下段
int x=0;
int延迟=500;
无效控制段(int x);
无效设置(){
pinMode(A,输出);
pinMode(B,输出);
pinMode(C,输出);
pinMode(D,输出);
pinMode(E,输出);
pinMode(F,输出);
pinMode(G,输出);
pinMode(H,输出);
}
void循环(){
对于(int i=0;i=0;i--){
控制段(i);
延迟(延迟);
}
}
无效控制段(int x){
如果(x==0){
数字写入(A,低);
数字写入(B,高);
数字写入(C,高);
数字写入(D,高);
数字写入(E,低位);
数字写入(F,高);
数字写入(G,高);
数字写入(H,高);
} 
如果(x==1){
数字写入(A,低);
数字写入(B,低);
数字写入(C,高);
数字写入(D,低);
数字写入(E,低位);
数字写入(F,高);
数字写入(G,低);
数字写入(H,低);
}
如果(x==2){
数字写入(A,高);
数字写入(B,低);
数字写入(C,高);
数字写入(D,高);
数字写入(E,低位);
数字写入(F,低);
数字写入(G,高);
数字写入(H,高);
}
如果(x==3){
数字写入(A,高);
数字写入(B,低);
数字写入(C,高);
数字写入(D,高);
数字写入(E,低位);
数字写入(F,高);
数字写入(G,高);
数字写入(H,低);
}
如果(x==4){
数字写入(A,高);
数字写入(B,高);
数字写入(C,高);
数字写入(D,低);
数字写入(E,低位);
数字写入(F,高);
数字写入(G,低);
数字写入(H,低);
}
如果(x==5){
数字写入(A,高);
数字写入(B,高);
数字写入(C,低);
数字写入(D,高);
数字写入(E,低位);
数字写入(F,高);
数字写入(G,高);
数字写入(H,低);
}
如果(x==6){
数字写入(A,高);
数字写入(B,高);
数字写入(C,低);
数字写入(D,高);
数字写入(E,低位);
数字写入(F,高);
数字写入(G,高);
数字写入(H,高);
}
如果(x==7){
数字写入(A,低);
数字写入(B,低);
数字写入(C,高);
数字写入(D,高);
数字写入(E,低位);
数字写入(F,高);
数字写入(G,低);
数字写入(H,低);
}
如果(x==8){
数字写入(A,高);
数字写入(B,高);
数字写入(C,高);
数字写入(D,高);
数字写入(E,低位);
数字写入(F,高);
数字写入(G,高);
数字写入(H,高);
}
如果(x==9){
数字写入(A,高);
数字写入(B,高);
数字写入(C,高);
数字写入(D,高);
数字写入(E,低位);
数字写入(F,高);
数字写入(G,高);
数字写入(H,低);
}
}

一种常用的方法是:添加一个变量
int delta=1,更改
x=x+1进入
x+=delta
,如果(x<0 | | x>9)delta=-delta,则在命中极限
时反转符号。同样的想法球反弹在这个:。希望有帮助!x-1只是进行计算,结果没有任何变化。您必须使用x--或x-=1
int G = 3; // G equals to the lower segment
int H = 2; // H equals to the lower-left segment
int x = 0;
int Delay = 500;

void controlSegment(int x);
void setup() {
pinMode(A, OUTPUT);
pinMode(B, OUTPUT);
pinMode(C, OUTPUT);
pinMode(D, OUTPUT);
pinMode(E, OUTPUT);
pinMode(F, OUTPUT);
pinMode(G, OUTPUT);
pinMode(H, OUTPUT);
}


void loop() {
for(int i=0;i<10;i++){
  controlSegment(i);
  delay(DELAY);
}
for(int i=8;i>=0;i--){
  controlSegment(i);
  delay(DELAY);
}
}
void controlSegment(int x){
     if(x == 0)  {
    digitalWrite(A, LOW);
    digitalWrite(B, HIGH);  
    digitalWrite(C, HIGH);
    digitalWrite(D, HIGH);
    digitalWrite(E, LOW);
    digitalWrite(F, HIGH);
    digitalWrite(G, HIGH);
    digitalWrite(H, HIGH);
} 

if(x == 1)  {
    digitalWrite(A, LOW);
    digitalWrite(B, LOW);
    digitalWrite(C, HIGH);
    digitalWrite(D, LOW);
    digitalWrite(E, LOW);
    digitalWrite(F, HIGH);
    digitalWrite(G, LOW);
    digitalWrite(H, LOW); 
  }

  if(x == 2)  {
    digitalWrite(A, HIGH);
    digitalWrite(B, LOW);
    digitalWrite(C, HIGH);
    digitalWrite(D, HIGH);
    digitalWrite(E, LOW);
    digitalWrite(F, LOW);
    digitalWrite(G, HIGH);
    digitalWrite(H, HIGH);
}

if(x == 3)  {
    digitalWrite(A, HIGH);
    digitalWrite(B, LOW);
    digitalWrite(C, HIGH);
    digitalWrite(D, HIGH);
    digitalWrite(E, LOW);
    digitalWrite(F, HIGH);
    digitalWrite(G, HIGH);
    digitalWrite(H, LOW);
}
if(x == 4)  {
    digitalWrite(A, HIGH);
    digitalWrite(B, HIGH);
    digitalWrite(C, HIGH);
    digitalWrite(D, LOW);
    digitalWrite(E, LOW);
    digitalWrite(F, HIGH);
    digitalWrite(G, LOW);
    digitalWrite(H, LOW);
}
if(x == 5)  {
    digitalWrite(A, HIGH);
    digitalWrite(B, HIGH);
    digitalWrite(C, LOW);
    digitalWrite(D, HIGH);
    digitalWrite(E, LOW);
    digitalWrite(F, HIGH);
    digitalWrite(G, HIGH);
    digitalWrite(H, LOW);
}
if(x == 6)  {
    digitalWrite(A, HIGH);
    digitalWrite(B, HIGH);
    digitalWrite(C, LOW);
    digitalWrite(D, HIGH);
    digitalWrite(E, LOW);
    digitalWrite(F, HIGH);
    digitalWrite(G, HIGH);
    digitalWrite(H, HIGH);
}
if(x == 7)  {
    digitalWrite(A, LOW);
    digitalWrite(B, LOW);
    digitalWrite(C, HIGH);
    digitalWrite(D, HIGH);
    digitalWrite(E, LOW);
    digitalWrite(F, HIGH);
    digitalWrite(G, LOW);
    digitalWrite(H, LOW);
}
if(x == 8)  {
    digitalWrite(A, HIGH);
    digitalWrite(B, HIGH);
    digitalWrite(C, HIGH);
    digitalWrite(D, HIGH);
    digitalWrite(E, LOW);
    digitalWrite(F, HIGH);
    digitalWrite(G, HIGH);
    digitalWrite(H, HIGH);
}
if(x == 9)  {
    digitalWrite(A, HIGH);
    digitalWrite(B, HIGH);
    digitalWrite(C, HIGH);
    digitalWrite(D, HIGH);
    digitalWrite(E, LOW);
    digitalWrite(F, HIGH);
    digitalWrite(G, HIGH);
    digitalWrite(H, LOW);
}
}