สวัสดึค่ะ คือเราอยากทราบการเขียนโค้ดว่าจะทำยังไงให้ 7-segment นับเลขจาก 0-9 ได้ ซึ่งส่วนนี้ทำได้แล้วเพราะเป็นโค้ดที่อ.ให้มา เพียงแต่ติดตรงที่ ทำยังไงให้พอกดปุ่ม button แล้วจะกลับไปนับ 0-9 ใหม่อีกครั้งค่ะ
ด้านล่างคือโค้ดที่ได้มาค่ะ เรากำลังหาวิธีที่จะทำให้กดปุ่มแล้วกลับไปเริ่มใหม่เรื่อยๆอยู่ ซึ่งไม่รู้ว่าต้องทำยังไง หาวิธีมาเป็นชม.แล้วค่ะ เจอแค่กดแล้วนับเลขเพิ่มหรือปิดเปิดไฟ ซึ่งไม่ใช่ที่เราต้องการเลย T_T
int a = 2; //ขา a ต่อเข้ากับ Pin2
int b = 3; //ขา b ต่อเข้ากับ Pin 3
int c = 4; //ขา c ต่อเข้ากับ Pin 4
int d = 5; //ขา d ต่อเข้ากับ Pin 5
int e = 6; //ขา e ต่อเข้ากับ Pin 6
int f = 7; //ขา f ต่อเข้ากับ Pin 7
int g = 8; //ขา g ต่อเข้ากับ Pin 8
int point = 9; //ขา h หรือจุด ต่อเข้ากับ Pin9
const char BUTTON_PIN = 11;
void setup() {
pinMode(a,OUTPUT);
pinMode(b,OUTPUT);
pinMode(c,OUTPUT);
pinMode(d,OUTPUT);
pinMode(e,OUTPUT);
pinMode(f,OUTPUT);
pinMode(g,OUTPUT);
pinMode(point,OUTPUT);
pinMode(BUTTON_PIN , INPUT_PULLUP);
}
void loop() {
for(int i=0;i<10;i++)
{
showNumber(i);
delay(1000);
turnOff(); //ทำการดับไฟทั้งหมดเมื่อกำลังจะเปลี่ยนตัวเลข เพื่อไม่ให้ไฟดวงเดิมค้างสถานะติดไว้
bool currentState = digitalRead(BUTTON_PIN);
if(currentState == HIGH){
//ให้เริ่มนับ0-9ใหม่ งงตรงนี้ ไม่รู้ว่าต้องทำยังไง
}
}
}
void showNumber(int number) {
if(number != 1 && number != 4)
digitalWrite(a,HIGH);
if(number !=5 && number !=6)
digitalWrite(b,HIGH);
if(number !=2)
digitalWrite(c,HIGH);
if(number !=1 && number !=4 && number !=7)
digitalWrite(d,HIGH);
if(number==2||number==6||number==8||number==0)
digitalWrite(e,HIGH);
if(number !=1 && number !=2 && number !=3 && number !=7)
digitalWrite(f,HIGH);
if(number !=0 && number !=1 && number !=7)
digitalWrite(g,HIGH);
}
void turnOff() {
digitalWrite(a,LOW);
digitalWrite(b,LOW);
digitalWrite(c,LOW);
digitalWrite(d,LOW);
digitalWrite(e,LOW);
digitalWrite(f,LOW);
digitalWrite(g,LOW);
digitalWrite(point,LOW);
}
สอบถามเกี่ยวกับ Arduino กับ ปุ่มButton (มี7sigmentนับ0-9 ต้องการให้กดปุ่มแล้วเริ่มนับใหม่)
ด้านล่างคือโค้ดที่ได้มาค่ะ เรากำลังหาวิธีที่จะทำให้กดปุ่มแล้วกลับไปเริ่มใหม่เรื่อยๆอยู่ ซึ่งไม่รู้ว่าต้องทำยังไง หาวิธีมาเป็นชม.แล้วค่ะ เจอแค่กดแล้วนับเลขเพิ่มหรือปิดเปิดไฟ ซึ่งไม่ใช่ที่เราต้องการเลย T_T
int a = 2; //ขา a ต่อเข้ากับ Pin2
int b = 3; //ขา b ต่อเข้ากับ Pin 3
int c = 4; //ขา c ต่อเข้ากับ Pin 4
int d = 5; //ขา d ต่อเข้ากับ Pin 5
int e = 6; //ขา e ต่อเข้ากับ Pin 6
int f = 7; //ขา f ต่อเข้ากับ Pin 7
int g = 8; //ขา g ต่อเข้ากับ Pin 8
int point = 9; //ขา h หรือจุด ต่อเข้ากับ Pin9
const char BUTTON_PIN = 11;
void setup() {
pinMode(a,OUTPUT);
pinMode(b,OUTPUT);
pinMode(c,OUTPUT);
pinMode(d,OUTPUT);
pinMode(e,OUTPUT);
pinMode(f,OUTPUT);
pinMode(g,OUTPUT);
pinMode(point,OUTPUT);
pinMode(BUTTON_PIN , INPUT_PULLUP);
}
void loop() {
for(int i=0;i<10;i++)
{
showNumber(i);
delay(1000);
turnOff(); //ทำการดับไฟทั้งหมดเมื่อกำลังจะเปลี่ยนตัวเลข เพื่อไม่ให้ไฟดวงเดิมค้างสถานะติดไว้
bool currentState = digitalRead(BUTTON_PIN);
if(currentState == HIGH){
//ให้เริ่มนับ0-9ใหม่ งงตรงนี้ ไม่รู้ว่าต้องทำยังไง
}
}
}
void showNumber(int number) {
if(number != 1 && number != 4)
digitalWrite(a,HIGH);
if(number !=5 && number !=6)
digitalWrite(b,HIGH);
if(number !=2)
digitalWrite(c,HIGH);
if(number !=1 && number !=4 && number !=7)
digitalWrite(d,HIGH);
if(number==2||number==6||number==8||number==0)
digitalWrite(e,HIGH);
if(number !=1 && number !=2 && number !=3 && number !=7)
digitalWrite(f,HIGH);
if(number !=0 && number !=1 && number !=7)
digitalWrite(g,HIGH);
}
void turnOff() {
digitalWrite(a,LOW);
digitalWrite(b,LOW);
digitalWrite(c,LOW);
digitalWrite(d,LOW);
digitalWrite(e,LOW);
digitalWrite(f,LOW);
digitalWrite(g,LOW);
digitalWrite(point,LOW);
}