สอบถามเรื่องการวนรอบคับ พอดีว่า ผมเขียนโค้ดไว้แบบนี้
void loop()
{
{
// loop through one at a time
for (int i=1;i<12;i++)
{
light_led(i);
delay(300);
}
for (int i=12;i>1;i--)
{
light_led(i);
delay(300);
}
}
}
แต่ผมต้องการใหัมันรัน คำสั่งแรก 10 ครั้ง ก่อนแล้วจึงไปทำคำสั่งที่2 คับ ต้องเพิ่มคำสั่งยังไงคับ
ถ้าตรงนี้คือคำสั่งแรก ต้องการให้แสดง 10 ครั้ง ก็กำหนด i<=10 ครับ
for (int i=1;i<=10;i++)
{
light_led(i);
delay(300);
}
ขอโทษคับ ใส่รายละเอียดไม่หมด พอดีมันเป็นไฟวิ่งคับ ผมสั่งวิ่งจากซ้ายไปขวา แล้วต้องการให้ซ้ายไปขวา 10 ครัั้ง แล้วจึง ขวาไปซ้ายอีก 10 ครั้ง โปรแกรมเป็นแบบนี้คับ
#define LED_A 11
#define LED_B 10
#define LED_C 9
#define LED_D 8
void setup()
{
pinMode(LED_A, INPUT);
pinMode(LED_B, INPUT);
pinMode(LED_C, INPUT);
pinMode(LED_D, INPUT);
}
void loop()
{
{
// loop through one at a time
for (int i=1;i<12;i++)
{
light_led(i);
delay(300);
}
for (int i=12;i>1;i--)
{
light_led(i);
delay(300);
}
}
}
void reset_pins()
{
pinMode(LED_A, INPUT);
pinMode(LED_B, INPUT);
pinMode(LED_C, INPUT);
pinMode(LED_D, INPUT);
digitalWrite(LED_A, LOW);
digitalWrite(LED_B, LOW);
digitalWrite(LED_C, LOW);
digitalWrite(LED_D, LOW);
}
void set_pins(int high_pin, int low_pin)
{
reset_pins();
// set the high and low pins to output
pinMode(high_pin, OUTPUT);
pinMode(low_pin, OUTPUT);
// set logic as required
digitalWrite(high_pin, HIGH);
digitalWrite(low_pin, LOW);
}
void light_led(int led_num)
{
switch (led_num)
{
case 1:
set_pins(LED_A, LED_D);
break;
case 2:
set_pins(LED_B, LED_D);
break;
case 3:
set_pins(LED_C, LED_D);
break;
case 4:
set_pins(LED_D, LED_C);
break;
case 5:
set_pins(LED_A, LED_C);
break;
case 6:
set_pins(LED_B, LED_C);
break;
case 7:
set_pins(LED_C, LED_B);
break;
case 8:
set_pins(LED_D, LED_B);
break;
case 9:
set_pins(LED_A, LED_B);
break;
case 10:
set_pins(LED_B, LED_A);
break;
case 11:
set_pins(LED_C, LED_A);
break;
case 12:
set_pins(LED_D, LED_A);
break;
}
}
แนะนำคือใช้ for ซ้อน for ครับ
เช่น ปริ๊นคำว่า * 10 แถว แถวละ 10 ตัว
for(int i=0;i<10;i++){
for(int j=0;j<10;j++){
Serial.print("*");
}
Serial.println("");
}
ลองฝึกเพิ่มเติมนะครับ