โจทย็ก็คือ กำหนดให้กด a เริ่มนับตั้งแต่ 0 - 99 ออกที่ 7-segment กด s หยุดนับ และแสดงตัวเลขที่อยู่บน 7-segment บนหน้าจอ
ปัญหาตอนนี้คือกดอะไรที่ไม่ใช่ a หยุดหมด และตัวเลขที่อยู๋บน 7-seg ห็ไม่แสดงทางหน้าจอด้วยอ่ะค่ะ
#include <Arduino.h>
int Input = 0;
int Output = 1;
int LATCH = 11;
int DIN = 12;
int CLOCK = 13;
int numbers[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0X7D,0x07,0x7F,0x6F};
char choss[]={'a','s',};
void A();
void B();
void Manu();
void setup()
{ Serial.begin(9600);
pinMode (LATCH, OUTPUT);
pinMode (CLOCK, OUTPUT);
pinMode (DIN, OUTPUT);
pinMode(Input,INPUT);
pinMode(Output,OUTPUT);
Serial.println("Manu ");
Serial.println("******");
}
void loop()
{
if(Serial.available()>0)
{
char choose = Serial.read();
Serial.println(choose);
switch(choose)
{
case 'a' : A();
break;
}
}
}
void A()
{ Serial.flush();
char choose = Serial.read();
for(int i = 0 ; i <60; i++ )
{
if(Serial.available()==0)
{
digitalWrite(LATCH,LOW);
shiftOut(DIN,CLOCK,MSBFIRST,~numbers);
shiftOut(DIN,CLOCK,MSBFIRST,~numbers[i/10]);
digitalWrite(LATCH,HIGH);
delay(1000);
}
else if (Serial.available()>0)
{
Serial.println(i);
B();
}
}
}
void B()
{
digitalWrite(LATCH,HIGH);
}
อยากรบกวนคนที่เขียนโปรแกรม Arduino ช่วยหน่อยค่ะ
ปัญหาตอนนี้คือกดอะไรที่ไม่ใช่ a หยุดหมด และตัวเลขที่อยู๋บน 7-seg ห็ไม่แสดงทางหน้าจอด้วยอ่ะค่ะ
#include <Arduino.h>
int Input = 0;
int Output = 1;
int LATCH = 11;
int DIN = 12;
int CLOCK = 13;
int numbers[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0X7D,0x07,0x7F,0x6F};
char choss[]={'a','s',};
void A();
void B();
void Manu();
void setup()
{ Serial.begin(9600);
pinMode (LATCH, OUTPUT);
pinMode (CLOCK, OUTPUT);
pinMode (DIN, OUTPUT);
pinMode(Input,INPUT);
pinMode(Output,OUTPUT);
Serial.println("Manu ");
Serial.println("******");
}
void loop()
{
if(Serial.available()>0)
{
char choose = Serial.read();
Serial.println(choose);
switch(choose)
{
case 'a' : A();
break;
}
}
}
void A()
{ Serial.flush();
char choose = Serial.read();
for(int i = 0 ; i <60; i++ )
{
if(Serial.available()==0)
{
digitalWrite(LATCH,LOW);
shiftOut(DIN,CLOCK,MSBFIRST,~numbers);
shiftOut(DIN,CLOCK,MSBFIRST,~numbers[i/10]);
digitalWrite(LATCH,HIGH);
delay(1000);
}
else if (Serial.available()>0)
{
Serial.println(i);
B();
}
}
}
void B()
{
digitalWrite(LATCH,HIGH);
}