我正在尝试学习如何使用以下输出制作草图:
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() 部分只是我的猜测。请帮我画草图。提前致谢。