ด้านล่างเป็นโค้ดที่เขียน แต่ยังไม่ได้ใส่ปุ่ม Stop
ผมสงสัยอยู่ขอ 1 ครับ
คือว่าที่ผมเขียนไว้ ถ้า 13==HIGH มันจะทำในวงลูป For
แต่ถ้า 13==LOW เวลาต้องเป็น 0 ก่อน ถึงจะออกจากลูป For ได้
เหมือนว่า ต้องทำใน For จน เป็น 0 ก่อน ถึงจะออกจากลูป For ได้
ถ้าผมคิดถูก จะทำยังไงให้ ลูป For หยุดทำตอนเมื่อผม กดปุ่ม Stop ได้ครับ
ขอคำชี้แนะด้วยครับ
#include <Wire.h>
#include <LiquidCrystal_I2C.h> //ประกาศ Library ของจอ I2C
boolean nn;
int minute=0;
int s=0;
LiquidCrystal_I2C lcd(0x3f,20,4);
void setup() {
// put your setup cod

, to run once:
pinMode (13,OUTPUT);
pinMode (2,INPUT);
pinMode (3,INPUT);
pinMode (4,INPUT);
pinMode (5,INPUT);
pinMode (6,INPUT);
pinMode (7,INPUT);
pinMode (8,INPUT);
pinMode (9,INPUT);
lcd.begin();
lcd.setCursor(2,2);
lcd.print("Timer");
lcd.setCursor(8,2);
lcd.print("00:00");
lcd.setCursor(14,2);
lcd.print("min");
lcd.setCursor(1,1);
lcd.print("Please Select Time");
}
void loop()
{
// put your main cod

, to run repeatedly:
digitalWrite(2,HIGH);
digitalWrite(3,HIGH);
digitalWrite(4,HIGH);
digitalWrite(5,HIGH);
digitalWrite(6,HIGH);
digitalWrite(7,HIGH);
digitalWrite(8,HIGH);
digitalWrite(9,HIGH);
if(LOW==digitalRead(2))
{
minute=2;
lcd.setCursor(8,2);
lcd.print("0"+String(minute));
}
if(LOW==digitalRead(3))
{
minute=10;
lcd.setCursor(8,2);
lcd.print(String(minute));
}
if(LOW==digitalRead(4))
{
minute=15;
lcd.setCursor(8,2);
lcd.print(String(minute));
}
if(LOW==digitalRead(5))
{
minute=20;
lcd.setCursor(8,2);
lcd.print(String(minute));
}
if(LOW==digitalRead(6))
{
minute=25;
lcd.setCursor(8,2);
lcd.print(String(minute));
}
if(LOW==digitalRead(7))
{
minute=30;
lcd.setCursor(8,2);
lcd.print(String(minute));
}
// --------------------------------------------------
nn=digitalRead(8);
if ((LOW==nn))
{digitalWrite(13,HIGH);}
if(digitalRead(13)==HIGH)
{
lcd.setCursor(1,1);
lcd.print(" Start ");
lcd.setCursor(10,2);
lcd.print(":");
for(minute;minute>=0;minute--)
{
lcd.setCursor(8,2);
lcd.print(minute);
if(minute<10)
{
lcd.setCursor(8,2);
lcd.print("0"+ String(minute));
}
for (s=59;s>=0;s--)
{
lcd.setCursor(11,2);
lcd.print(s);
if(s<10)
{
lcd.setCursor(11,2);
lcd.print("0"+ String(s) +" min");
}
delay(200);
if (minute==0&&s==0)
{
lcd.setCursor(1,1);
lcd.print("Please Select Time");
digitalWrite(13,LOW);
delay(200);
}
}
}
}
}
ขอโค้ด Arduino จะทำปุ่ม STOP หน่อย พอดีออกจากคำสั่ง For ไม่ได้
ผมสงสัยอยู่ขอ 1 ครับ
คือว่าที่ผมเขียนไว้ ถ้า 13==HIGH มันจะทำในวงลูป For
แต่ถ้า 13==LOW เวลาต้องเป็น 0 ก่อน ถึงจะออกจากลูป For ได้
เหมือนว่า ต้องทำใน For จน เป็น 0 ก่อน ถึงจะออกจากลูป For ได้
ถ้าผมคิดถูก จะทำยังไงให้ ลูป For หยุดทำตอนเมื่อผม กดปุ่ม Stop ได้ครับ
ขอคำชี้แนะด้วยครับ
#include <Wire.h>
#include <LiquidCrystal_I2C.h> //ประกาศ Library ของจอ I2C
boolean nn;
int minute=0;
int s=0;
LiquidCrystal_I2C lcd(0x3f,20,4);
void setup() {
// put your setup cod
pinMode (13,OUTPUT);
pinMode (2,INPUT);
pinMode (3,INPUT);
pinMode (4,INPUT);
pinMode (5,INPUT);
pinMode (6,INPUT);
pinMode (7,INPUT);
pinMode (8,INPUT);
pinMode (9,INPUT);
lcd.begin();
lcd.setCursor(2,2);
lcd.print("Timer");
lcd.setCursor(8,2);
lcd.print("00:00");
lcd.setCursor(14,2);
lcd.print("min");
lcd.setCursor(1,1);
lcd.print("Please Select Time");
}
void loop()
{
// put your main cod
digitalWrite(2,HIGH);
digitalWrite(3,HIGH);
digitalWrite(4,HIGH);
digitalWrite(5,HIGH);
digitalWrite(6,HIGH);
digitalWrite(7,HIGH);
digitalWrite(8,HIGH);
digitalWrite(9,HIGH);
if(LOW==digitalRead(2))
{
minute=2;
lcd.setCursor(8,2);
lcd.print("0"+String(minute));
}
if(LOW==digitalRead(3))
{
minute=10;
lcd.setCursor(8,2);
lcd.print(String(minute));
}
if(LOW==digitalRead(4))
{
minute=15;
lcd.setCursor(8,2);
lcd.print(String(minute));
}
if(LOW==digitalRead(5))
{
minute=20;
lcd.setCursor(8,2);
lcd.print(String(minute));
}
if(LOW==digitalRead(6))
{
minute=25;
lcd.setCursor(8,2);
lcd.print(String(minute));
}
if(LOW==digitalRead(7))
{
minute=30;
lcd.setCursor(8,2);
lcd.print(String(minute));
}
// --------------------------------------------------
nn=digitalRead(8);
if ((LOW==nn))
{digitalWrite(13,HIGH);}
if(digitalRead(13)==HIGH)
{
lcd.setCursor(1,1);
lcd.print(" Start ");
lcd.setCursor(10,2);
lcd.print(":");
for(minute;minute>=0;minute--)
{
lcd.setCursor(8,2);
lcd.print(minute);
if(minute<10)
{
lcd.setCursor(8,2);
lcd.print("0"+ String(minute));
}
for (s=59;s>=0;s--)
{
lcd.setCursor(11,2);
lcd.print(s);
if(s<10)
{
lcd.setCursor(11,2);
lcd.print("0"+ String(s) +" min");
}
delay(200);
if (minute==0&&s==0)
{
lcd.setCursor(1,1);
lcd.print("Please Select Time");
digitalWrite(13,LOW);
delay(200);
}
}
}
}
}