ความรู้แน่น ฟรีสำหรับชุมชน ArduinoAll ที่นี่เท่านั้น

ฟรีและดีที่สุด คอร์สอบรม Arduino + NodeMCU
ทำเพื่อแบ่งปัน ห้ามนำไปจำหน่าย หรือเก็บเงินค่าเรียน
  !!!


  


AllNewStep รับประกันคุณภาพทุกชิ้น วันจันทร์-ศุกร์แจ้งชำระสินค้าก่อน 14.00 จัดส่งทันทีวันนี้ค่ะ

กรุงเทพ /ภาคกลาง ได้พรุ่งนี้


*** สินค้าทุกชิ้น ถ้าสามารถทำรายการสั่งซื้อได้ แสดงว่ามีครบทุกรายการค่ะ *** 

พิมพ์ค้นหาบทความ หัวข้อกระทู้ และสินค้าในเว็บ AllNewStep ได้ที่นี่
QUOTE 

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

ศรายุทธ

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

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
เจ้าของร้าน

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

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

  {

    light_led(i);

    delay(300);

  }

 

QUOTE 
ความคิดเห็นที่ #2
kiknaja

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

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

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

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

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

          Serial.print("*");

     }

     Serial.println("");

}

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

แสดงความคิดเห็นที่ 1-3 จากทั้งหมด 3 ความคิดเห็น
ขาย ARDUINO
คุณภาพ อันดับ 1

ได้รับรางวัลร้านยอดเยี่ยม
ตั้งแต่ปี 2558
ขาย Arduino
วีดีโอสอน Arduino

สอน esp8266

สอน Arduino IoT
สอน Arduino แบบเร็ว

สอน NodeMCU

อุปกรณ์ Arduino

MEMBER ZONE

พูดคุย-สอบถาม