If statement 如何在arduino中编制一个程序,将变量从0更改为9,然后从9更改为0,依此类推?
我目前正在构建一个七段显示,我希望它能够显示从0到9的所有数字,反之亦然。我已经能够显示0和9之间的所有数字,但我一直在尝试显示9和0之间的数字。一旦达到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
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);
}
}