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

Ethernet Shield W5100 สำหรับ Arduino UNO Mega1280 2560 พร้อมช่อง SD Card

Ek
Ek (Guest)
IP: 1.10.205.x
3 ปีที่ผ่านมา

เขียนออก LED หลายหลายตัวแบบค่อยให้กดออนออฟทำไงอ่ะครับต้องแก้กับเพิ่มตรงไหนบ้างครับ ใครรู้ช่วยหน่อยครับ Cry

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

ครับ อันนี้อยู่ที่การประยุกต์ใช้ ลองศึกษาที่ตัวอย่างนี้ครับ สอน วิธี ใช้งาน Ethernet Shield W5100 กับ Arduino โมดูลที่ทำให้ Arduino ต่อเน็ตได้

เมื่อทำ LED เปิด/ปิด ได้ 1 ตัวแล้ว ก็ลองประยุกต์หลาย ๆ ตัวโดยทำความเข้าใจในโคดตัวอย่างก่อนประมาณนี้ครับ โดยจะเช็คเงื่อนไขจาก url ที่ส่งมา ว่าจะให้เปิดปิดดวงไหน

 ///////////////////// control arduino pin
          if(readString.indexOf("on") >0)//checks for on // เช็คว่า url มีคำว่า on ให้ทำงานคำสั่งนี้
          {
            digitalWrite(5, HIGH);    // set pin 5 high
            Serial.println("Led On");
          }
          if(readString.indexOf("off") >0)//checks for off
          {
            digitalWrite(5, LOW);    // set pin 5 low
            Serial.println("Led Off");
          }

  if(readString.indexOf("on2") >0)//checks for on // เช็คว่า  url มีคำว่า on2 ให้ทำงานคำสั่งนี้
          {
            digitalWrite(6, HIGH);    // set pin 6 high
            Serial.println("Led On");
          }
          if(readString.indexOf("off2") >0)//เช็คว่า  url มีคำว่า off2 ให้ทำงานคำสั่งนี้
          {
            digitalWrite(6, LOW);    // set pin 6 low
            Serial.println("Led Off");
          }

 
มีหลายวิธี ลองดัดแปลงดูนะครับ
QUOTE 
ความคิดเห็นที่ #2
Ek
Ek (Guest)
IP: 1.10.205.x
3 ปีที่ผ่านมา

ลองเพิ่มแล้วครับติดแต่ดวงแรก

QUOTE 
ความคิดเห็นที่ #3
Ek
Ek (Guest)
IP: 1.10.205.x
3 ปีที่ผ่านมา

คือLEDออนพร้อมกันไม่ได้อ่ะครับ ถ้าที่ละตัวได้ครับเช่นตัวห้าออนแล้วออฟตัวหกจะออนได้แล้วออฟ ถ้าหกออนแล้วออฟตัวห้าจะออนได้ ถ้ากดออนพร้อมกันไม่ได้อ่ะครับคือห้าออนหกออนไม่ได้อ่ะครับ ใครรู้เยอะๆช่วยที่ครับ

 

 

#include "SPI.h"

#include "Ethernet.h"

 

 

byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; //physical mac address

/*byte ip[] = { 192, 168, 0, 4 }; // ip in lan

/*byte gateway[] = { 192, 168, 0, 1 }; // internet access via router

byte subnet[] = { 255, 255, 255, 0 }; //subnet mask*/

EthernetServer server(80); //server port

 

String readString; 

 

//////////////////////

 

void setup(){  

  pinMode(6, OUTPUT); //pin selected to control

  pinMode(5, OUTPUT); //pin selected to control

  //start Ethernet

  Ethernet.begin(mac);

  Serial.println("ArduinoAll server LED test"); // so I can keep track of what is loaded

}

 

void loop(){

  // Create a client connection

  EthernetClient client = server.available();

  if (client) {

    while (client.connected()) {

      if (client.available()) {

        char c = client.read();

 

        //read char by char HTTP request

        if (readString.length() < 100) {

 

          //store characters to string 

          readString += c; 

          //Serial.print(c);

        } 

 

        //if HTTP request has ended

        if (c == '\n') {

 

          ///////////////

          Serial.println(readString); //print to serial monitor for debuging 

 

          client.println("HTTP/1.1 200 OK"); //send new page

          client.println("Content-Type: text/html");

          client.println();

 

          client.println("");

          client.println("");

          client.println("ArduinoALL");

          client.println("");

          client.println("");

 

          client.println("ArduinoAll Internet Button");

          

          // DIY buttons

          client.println("<a href= /on6><h1>ON6</h1></a>"); 

          client.println("<a href = /off6><h1>OFF6</h1></a>"); 

         

 

          client.println("");

          client.println("");

          

          

          // DIY buttons

          client.println("<a href= /on5><h1>ON5</h1></a>"); 

          client.println("<a href = /off5><h1>OFF5</h1></a>"); 

         

 

          client.println("");

          client.println("");

 

 

 

          delay(1);

          //stopping client

          client.stop();

 

          ///////////////////// control arduino pin

          if(readString.indexOf("on5") >0)//checks for on

          {

            digitalWrite(5, HIGH);    // set pin 5 high

            Serial.println("Led On5");

          }

          if(readString.indexOf("off5") >0)//checks for off

          {

            digitalWrite(5, LOW);    // set pin 5 low

            Serial.println("Led Off5");

          }

          

           if(readString.indexOf("on6") >0)//checks for on

          {

            digitalWrite(6, HIGH);    // set pin 5 high

            Serial.println("Led On6");

          }

          if(readString.indexOf("off6") >0)//checks for off

          {

            digitalWrite(6, LOW);    // set pin 5 low

            Serial.println("Led Off6");

          }

          readString="";

 

        }

      }

    }

  }

}

 

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

การสั่งงานขึ้นอยู่กับผู้เขียนโปรแกรม อยากให้ทำงานแบบไหนได้ตามต้องการ ขึ้นอยู่กับการออกแบบ

ดูตัวอย่างนี้นะครับ ผมส่งค่าเป็น 0 กับ 1 ของ LED แต่ละตัว กรณีนี้มี 2 ตัว ก็ส่ง URL เป็น xx ไปแทนสถานะของ led แต่ละดวง เช่น 10(หนึ่งศูนย์) แปลว่า ดวงที่ 1 ติด ดวงที่ 2 ดับ ทดลองโดยส่ง url เป็น ip/10

          if(readString.indexOf("11") >0)
          {
            digitalWrite(5, HIGH);    // set pin 5 high
             digitalWrite(6, HIGH);    // set pin 6 high

          }
          if(readString.indexOf("00") >0)
          {
            digitalWrite(5, LOW);  
             digitalWrite(6, LOW); 

          }
          if(readString.indexOf("10") >0)
          {
            digitalWrite(5, 1);  
             digitalWrite(6, 0);  

          }
          if(readString.indexOf("01") >0)
          {
            digitalWrite(5, 0);  
             digitalWrite(6, 1);  

          }

 

QUOTE 
ความคิดเห็นที่ #5
Ek
Ek (Guest)
IP: 1.10.205.x
3 ปีที่ผ่านมา

แต่ทำยังไง OUTPUT ก็ออกพร้อมกันทั้ง 2 ดวงไม่ได้อ่ะ ครับคือถ้า OUTPUT ออกมาพร้อมกันไม่ได้อ่ะครับสงสัย ต้องค่อยๆ วิจัยกันยาวแน่เลย Laughing

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

ลองศึกษาดูครับ ผมทดลองของจริงให้แล้วออกแน่นอน

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

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

สมาชิก Arduino All

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

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

Arduino All ขายดี

รหัสสินค้า A015
270.00 บาท
สินค้าหมด
รหัสสินค้า A233
5.00 บาท
  • สั่งซื้อ
รหัสสินค้า A115
10.00 บาท
  • สั่งซื้อ
รหัสสินค้า A097
4.00 บาท
  • สั่งซื้อ
รหัสสินค้า A238
4.00 บาท
  • สั่งซื้อ
รหัสสินค้า A474
7.00 บาท
  • สั่งซื้อ
รหัสสินค้า A014
95.00 บาท
  • สั่งซื้อ
รหัสสินค้า A237
4.00 บาท
  • สั่งซื้อ
Go to Top