lnwshop logo
  • ตอบกระทู้
  • ตั้งกระทู้ใหม่
QUOTE 

สอบถามคำสั่ง วนรอบ

ศรายุทธ
ศรายุทธ (Guest)
IP: 61.90.2.x
9 เดือนที่ผ่านมา

สอบถามเรื่องการวนรอบคับ พอดีว่า ผมเขียนโค้ดไว้แบบนี้

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 คับ ต้องเพิ่มคำสั่งยังไงคับ

 

QUOTE 
ความคิดเห็นที่ #1
เจ้าของร้าน
เจ้าของร้าน
9 เดือนที่ผ่านมา

ถ้าตรงนี้คือคำสั่งแรก ต้องการให้แสดง 10 ครั้ง ก็กำหนด i<=10 ครับ

 for (int i=1;i<=10;i++)

  {

    light_led(i);

    delay(300);

  }

 

QUOTE 
ความคิดเห็นที่ #2
kiknaja
kiknaja
IP: 61.90.2.x
9 เดือนที่ผ่านมา

ขอโทษคับ ใส่รายละเอียดไม่หมด พอดีมันเป็นไฟวิ่งคับ ผมสั่งวิ่งจากซ้ายไปขวา แล้วต้องการให้ซ้ายไปขวา 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;             

  }

}

 

QUOTE 
ความคิดเห็นที่ #3
เจ้าของร้าน
เจ้าของร้าน
9 เดือนที่ผ่านมา

แนะนำคือใช้ for ซ้อน for ครับ

เช่น ปริ๊นคำว่า * 10 แถว แถวละ 10 ตัว

for(int i=0;i<10;i++){

     for(int j=0;j<10;j++){

          Serial.print("*");

     }

     Serial.println("");

}

ลองฝึกเพิ่มเติมนะครับ

1
แสดงความคิดเห็นที่ 1-3 จากทั้งหมด 3 ความคิดเห็น
ข้อความ
ชื่อผู้โพส
ข้อมูลสำหรับการติดต่อกลับ (ไม่เปิดเผย เห็นเฉพาะเจ้าของร้าน)
อีเมล
เบอร์มือถือ
  • ตอบกระทู้

หมวดหมู่สินค้า

สมาชิก Arduino All

เข้าสู่ระบบด้วย
เข้าสู่ระบบ
สมัครสมาชิก

ยังไม่มีบัญชีเทพ สร้างบัญชีใหม่ ไม่เกิน 5 นาที
สมัครสมาชิก (ฟรี)

Arduino All ขายดี

รหัสสินค้า A015
275.00 บาท
  • สั่งซื้อ
รหัสสินค้า A233
5.00 บาท
  • สั่งซื้อ
รหัสสินค้า A115
10.00 บาท
  • สั่งซื้อ
รหัสสินค้า A238
4.00 บาท
  • สั่งซื้อ
รหัสสินค้า A237
4.00 บาท
  • สั่งซื้อ
รหัสสินค้า A014
90.00 บาท
  • สั่งซื้อ
รหัสสินค้า A097
4.00 บาท
  • สั่งซื้อ
รหัสสินค้า A474
5.00 บาท
  • สั่งซื้อ
รหัสสินค้า A225
5.00 บาท
  • สั่งซื้อ
Go to Top