0

我正在尝试学习如何使用以下输出制作草图:

DISPLAY 7段显示0到9的计数然后循环

DISPLAY 7段显示计数1、3、5、7和9然后循环

DISPLAY 7段显示计数0、2、4、6和8然后循环

DISPLAY 7段显示0到9的计数然后循环

所以基本上只有三种模式,普通计数,奇数和偶数。我已经知道 7 段显示器的引脚配置和模式的排列。我不能做的是适应草图到按钮的按下/es。这是我的初始代码:

const int buttonPin = 2; 
const int pin3 = 3;
const int pin4 = 4;
const int pin5 = 5;
const int pin6 = 6; 
const int pin7 = 7;
const int pin8 = 8;
const int pin9 = 9;


#define DEL delay (300)

int ledState = LOW;
boolean buttonState = LOW; 
int pressed=0;

void setup() 
{
  pinMode(pin3,OUTPUT);
  pinMode(pin4,OUTPUT);
  pinMode(pin5,OUTPUT);
  pinMode(pin6,OUTPUT);
  pinMode(pin7,OUTPUT);
  pinMode(pin8,OUTPUT);
  pinMode(pin9,OUTPUT);
  pinMode(buttonPin, INPUT);
  Serial.begin (9600);

}

void zero(){
  digitalWrite (pin3, LOW);
  digitalWrite (pin4, HIGH);
  digitalWrite (pin5, HIGH);
  digitalWrite (pin6, HIGH);
  digitalWrite (pin7, HIGH);    
  digitalWrite (pin8, HIGH);
  digitalWrite (pin9, HIGH);
  DEL;
  }

void one(){
  digitalWrite (pin3, LOW);
  digitalWrite (pin4, LOW);
  digitalWrite (pin5, LOW);
  digitalWrite (pin6, LOW);
  digitalWrite (pin7, HIGH);
  digitalWrite (pin8, HIGH);
  digitalWrite (pin9, LOW);
  DEL;
  }

void two(){
  digitalWrite (pin3, HIGH);
  digitalWrite (pin4, LOW);
  digitalWrite (pin5, HIGH);
  digitalWrite (pin6, HIGH);
  digitalWrite (pin7, LOW);
  digitalWrite (pin8, HIGH);
  digitalWrite (pin9, HIGH);
  DEL;
  }

void three(){
  digitalWrite (pin3, HIGH);
  digitalWrite (pin4, LOW);
  digitalWrite (pin5, LOW);
  digitalWrite (pin6, HIGH);
  digitalWrite (pin7, HIGH);
  digitalWrite (pin8, HIGH);
  digitalWrite (pin9, HIGH);
  DEL;
  }

void four(){
  digitalWrite (pin3, HIGH);
  digitalWrite (pin4, HIGH);
  digitalWrite (pin5, LOW);
  digitalWrite (pin6, LOW);
  digitalWrite (pin7, HIGH);
  digitalWrite (pin8, HIGH);
  digitalWrite (pin9, LOW);
  DEL;
  }    
void five(){
  digitalWrite (pin3, HIGH);    
  digitalWrite (pin4, HIGH);
digitalWrite (pin5, LOW);
digitalWrite (pin6, HIGH);
digitalWrite (pin7, HIGH);
digitalWrite (pin8, LOW);
digitalWrite (pin9, HIGH);
DEL;
}

void six(){
  digitalWrite (pin3, HIGH);
  digitalWrite (pin4, HIGH);
  digitalWrite (pin5, HIGH);
  digitalWrite (pin6, HIGH);
  digitalWrite (pin7, HIGH);    
digitalWrite (pin8, LOW);
digitalWrite (pin9, HIGH);
DEL;
}
void seven(){
  digitalWrite (pin3, LOW);
  digitalWrite (pin4, LOW);
  digitalWrite (pin5, LOW);
  digitalWrite (pin6, LOW);
  digitalWrite (pin7, HIGH);
  digitalWrite (pin8, HIGH);
  digitalWrite (pin9, HIGH);
  DEL;
  }

void eight(){
  digitalWrite (pin3, HIGH);    
  digitalWrite (pin4, HIGH);
  digitalWrite (pin5, HIGH);
  digitalWrite (pin6, HIGH);
  digitalWrite (pin7, HIGH);
  digitalWrite (pin8, HIGH);
  digitalWrite (pin9, HIGH);
  DEL;
  } 
void nine(){
  digitalWrite (pin3, HIGH);
  digitalWrite (pin4, HIGH);
  digitalWrite (pin5, LOW);
  digitalWrite (pin6, HIGH);
  digitalWrite (pin7, HIGH);
  digitalWrite (pin8, HIGH);
  digitalWrite (pin9, HIGH);
  DEL;  
  }

void normal(){
  zero();
  one();
  two();
  three();
  four();
  five();
  six();
  seven();
  eight();
  nine();
  }

void odd(){
  one();
  three();
  five();
  seven();
  nine();
  }


void even(){
  zero();
  two();
  four();
  six();
  eight();

  }  

void loop(){

  if(debounceButton(buttonState) == HIGH && buttonState == LOW){
    pressed++;
    buttonState = HIGH;
    }
  else if(debounceButton(buttonState) == LOW && buttonState == HIGH){
    buttonState = LOW;
    }

  if(pressed == 1){
    odd();

    }
  else if(pressed == 2){
    even();

    }

  }

  boolean debounceButton(boolean state){
    boolean stateNow = digitalRead(buttonPin);
    if(state!=stateNow){
      delay(200);
      stateNow = digitalRead(buttonPin);
    }

return stateNow; 

}

void loop() 部分只是我的猜测。请帮我画草图。提前致谢。

4

0 回答 0