นวัตกรรม สิ่งประดิษฐ์ และเทคโนโลยี

กรุณา เข้าสู่ระบบ หรือ สมัครสมาชิก.

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น
การค้นหาขั้นสูง  
หน้า: [1] 2 3 ... 10
 1 
 เมื่อ: เมษายน 20, 2019, 08:52:49 AM 
เริ่มโดย NAWATTAKAM - กระทู้ล่าสุด โดย NAWATTAKAM
ดาวส์โหลด LIB : https://github.com/dthain/QMC5883L


โค๊ด
#include <QMC5883L.h>
#include <Wire.h>

QMC5883L compass;

void setup()
{
Wire.begin();

compass.init();
compass.setSamplingRate(50);  /// Hertz

Serial.begin(9600);

}

void loop()
{
 

 //////////////////// compass 
int angle = compass.readHeading();
if(angle==0) {
/* Still calibrating, so measure but don't print */
} else
{
     Serial.print(" Degree ");
     
     if (angle > 337 || angle < 23)  {Serial.print("N : ");}
else if (angle > 22 && angle < 68)   {Serial.print("NE : ");}
else if (angle > 67 && angle < 113)  {Serial.print("E : ");}
else if (angle > 112 && angle < 158) {Serial.print("SE : ");}
else if (angle > 157 && angle < 203) {Serial.print("S : ");}
else if (angle > 202 && angle < 248) {Serial.print("SW : ");}
else if (angle > 247 && angle < 293) {Serial.print("W : ");}
else if (angle > 292 && angle < 338) {Serial.print("NW : ");}

 Serial.println(angle);
   
}
}

กรณีต้องการอ่านค่าสนามแม่เหล้กทั้ง 3 แกน

โค๊ด
int16_t Fx,Fy,Fz,t;
compass.readRaw(&Fx,&Fy,&Fz,&t);

  Serial.print( X: "); Serial.print( Fx);  Serial.print(" ,Y: "); Serial.print(Fy);  Serial.print(" ,Z: "); Serial.print( Fz); 


 2 
 เมื่อ: เมษายน 06, 2019, 06:23:22 PM 
เริ่มโดย NAWATTAKAM - กระทู้ล่าสุด โดย NAWATTAKAM




DIY


 3 
 เมื่อ: เมษายน 04, 2019, 08:50:42 PM 
เริ่มโดย NAWATTAKAM - กระทู้ล่าสุด โดย NAWATTAKAM
การต่อขา
- ขา 3.3V ต่อเข้า VCC ของ GPS
- ขา GND ต่อร่วมกันทั้ง LCD และ GPS
- ขา Tx ของ GPS ต่อเข้าขา 10 ของ UNO (ทำขา Rx ด้วย ซอร์ฟแวร์ซีเรียล)
- ขา SCL และ SDA ของ LCD ต่อเข้า ขา SCL และ SDA ของ UNO

* ติดตั้งไลบารี่  TinyGPS++ ก่อน  จาก http://arduiniana.org/libraries/tinygpsplus/

หรือ
นำTinyGPS++.h และ TinyGPS++.cpp ไปไว้โฟลเดอร์เดียวกับไฟล์งาน 
 

ARDUINO UNO
โค๊ด
#include <SoftwareSerial.h>
#include <LiquidCrystal_I2C.h> //ประกาศ Library ของจอ I2C
#include "TinyGPS++.h" //// ไฟล์อยู่ที่เดียวกับไฟล์งาน


LiquidCrystal_I2C lcd(0x27, 20, 4);  /// เลือกใช้จอ LCD แบบ I2C ขนาด 20 *4

SoftwareSerial serial_connection(10, 11); // RX=pin 10, TX=pin 11 

TinyGPSPlus gps;


void setup() {
  Serial.begin(9600);
  serial_connection.begin(9600);

   
lcd.begin();

lcd.setCursor(0,0);   
lcd.print("TIME : ");


lcd.setCursor(0, 1); 
lcd.print("LO   :");

lcd.setCursor(0,2); 
lcd.print("LA   : ");

lcd.setCursor(0,3);   
lcd.print("ALT  : ");


}




void loop() { // run over and over

  while(serial_connection.available())
{
gps.encode(serial_connection.read());
}


if(gps.location.isUpdated())
{

//// แสดงเวลาจากดาวเทียม +7 ตามโซนประเทศไทย และ % (modulo) 24 เพื่อแสดงแค่ 0-23
lcd.setCursor(7,0); 
lcd.print( (gps.time.hour()+7)%24);  lcd.print(":"); lcd.print(gps.time.minute()); lcd.print(":"); lcd.print(gps.time.second());

lcd.setCursor(7,1);   
lcd.print(gps.location.lng(), 6);

lcd.setCursor(7,2);   
lcd.print(gps.location.lat(), 6);


lcd.setCursor(7,3); 
lcd.print(gps.altitude.meters());


}

}



การแสดงผล


ฟังชั่นอื่นๆ ที่น่าสนใจ

โค๊ด
Serial.println(gps.location.lat(), 6); // Latitude in degrees (double)
Serial.println(gps.location.lng(), 6); // Longitude in degrees (double)
Serial.print(gps.location.rawLat().negative ? "-" : "+");
Serial.println(gps.location.rawLat().deg); // Raw latitude in whole degrees
Serial.println(gps.location.rawLat().billionths);// ... and billionths (u16/u32)
Serial.print(gps.location.rawLng().negative ? "-" : "+");
Serial.println(gps.location.rawLng().deg); // Raw longitude in whole degrees
Serial.println(gps.location.rawLng().billionths);// ... and billionths (u16/u32)
Serial.println(gps.date.value()); // Raw date in DDMMYY format (u32)
Serial.println(gps.date.year()); // Year (2000+) (u16)
Serial.println(gps.date.month()); // Month (1-12) (u8)
Serial.println(gps.date.day()); // Day (1-31) (u8)
Serial.println(gps.time.value()); // Raw time in HHMMSSCC format (u32)
Serial.println(gps.time.hour()); // Hour (0-23) (u8)
Serial.println(gps.time.minute()); // Minute (0-59) (u8)
Serial.println(gps.time.second()); // Second (0-59) (u8)
Serial.println(gps.time.centisecond()); // 100ths of a second (0-99) (u8)
Serial.println(gps.speed.value()); // Raw speed in 100ths of a knot (i32)
Serial.println(gps.speed.knots()); // Speed in knots (double)
Serial.println(gps.speed.mph()); // Speed in miles per hour (double)
Serial.println(gps.speed.mps()); // Speed in meters per second (double)
Serial.println(gps.speed.kmph()); // Speed in kilometers per hour (double)
Serial.println(gps.course.value()); // Raw course in 100ths of a degree (i32)
Serial.println(gps.course.deg()); // Course in degrees (double)
Serial.println(gps.altitude.value()); // Raw altitude in centimeters (i32)
Serial.println(gps.altitude.meters()); // Altitude in meters (double)
Serial.println(gps.altitude.miles()); // Altitude in miles (double)
Serial.println(gps.altitude.kilometers()); // Altitude in kilometers (double)
Serial.println(gps.altitude.feet()); // Altitude in feet (double)
Serial.println(gps.satellites.value()); // Number of satellites in use (u32)
Serial.println(gps.hdop.value()); // Horizontal Dim. of Precision (100ths-i32)

 4 
 เมื่อ: มีนาคม 31, 2019, 09:53:28 AM 
เริ่มโดย NAWATTAKAM - กระทู้ล่าสุด โดย NAWATTAKAM
ปกติ ภาษา Html ในการแสดงพื้นหลังจะใช้คำสั่ง

โค๊ด
<body background=" ภาพ.jpg"> 

แต่ในคำสั่งภาษาซี จะมีปัญหาในการใส่ " ในคำสั่ง print
แก้ไขโดยการใช้ รหัสแอสกีแทน คือ \34 หรือ \" แทน "

ตัวอย่างการใช้ ภาพจาก https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png




โค๊ด
client.println("<html>");

//////////////   แสดง <body background="https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png">

client.print("<body background=");
client.print("\34") ; 
client.print("https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png"); 
client.print("\34");
client.println(">");
         
client.println("</body>"); 
client.println("</html>");



 5 
 เมื่อ: มีนาคม 31, 2019, 08:39:03 AM 
เริ่มโดย NAWATTAKAM - กระทู้ล่าสุด โดย NAWATTAKAM
ดาวส์โหลด LiquidCrystal_I2C.h
ที่ https://github.com/fdebrabander/Arduino-LiquidCrystal-I2C-library


การต่อขา

NodeMCU V3 - LCD

    VU - VCC
    G - GND
    D1 - SCL
    D2 - SDA


โค๊ด
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27, 16, 2); //ถ้าจอไม่แสดงผล ให้ลองเปลี่ยน 0x3F เป็น 0x27

void setup()
{
lcd.begin();
lcd.setCursor(3, 0); // ไปที่ตัวอักษรที่ 3 บรรทัดที่ 0
lcd.print("LCD ESP8266");

lcd.setCursor(1, 1); // ไปที่ตัวอักษรที่ 0 บรรทัดที่ 1
lcd.print("Nawattakam.com");
}

void loop()
{
}




 6 
 เมื่อ: มีนาคม 30, 2019, 02:24:40 PM 
เริ่มโดย NAWATTAKAM - กระทู้ล่าสุด โดย NAWATTAKAM
ใช้ A0 วัดสัญญาณ ค่า 0-3.3V

โดยใช้ฟังชั่น analogRead(; อ่านค่า จะค่า 0-1023
และใช้ readVolte() แปลงเป็นค่าแรงดัน


โค๊ด
#include <ESP8266WiFi.h>

int adc = A0;

const char* ssid = "3BB_xxxxx"; //// ใส่ชื่อ wifi
const char* password = "YYYYYYY";   //// ใส่พาสเวิร์ด wifi

String readStrings = ""; // สร้างตัวแปรมาเก็บข้อมูลค่าที่ส่งเข้ามา

WiFiServer server(80); //สร้าง object ของ class WiFiServer ขึ้นมาและส่งค่าพารามิเตอร์ 80 เพื่อกำหนดพอร์ต

void setup() {
  Serial.begin(9600); //กำหนด baudrate
  delay(10);

  Serial.println();
  Serial.print("Connecting to ");

  Serial.println(ssid); //แสดงข้อความ Connecting to (ชื่อ SSID ที่เราตั้ง) ผ่านทาง Serial
 
  WiFi.begin(ssid, password); // เริ่มเชื่อมต่อไปยัง ssid และ password ที่เรากำหนด
 
  while (WiFi.status() != WL_CONNECTED) { // ถ้ายังไม่เชื่อมต่อกับ wifi ให้ทำการวน loop ไปเรื่อย ๆ และ print ข้อความ ... ออกมา
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.println("WiFi connected");//เมื่อเชื่อมต่อกับ wifi ได้แล้วให้ แสดง WiFi connected ผ่าน Serial
 
  // Start the server
  server.begin(); //ให้ทำการเริ่ม server
  Serial.println("Server started"); //แสดงข้อความว่า Server started ผ่าน Serial

  // Print the IP address
  Serial.println(WiFi.localIP()); //แสดง IP Address ทาง Serial

pinMode(adc, INPUT);

}

double readVolte() {
//สูตรคำนวน volte = ค่าที่อ่านได้จาก A0 * Vcc สูงสุดคือ 3.3V / ค่าที่อ่านได้สูงสุดจาก A0 คือ 1023;
int val = analogRead(adc);
double cal = val * 3.3 / 983;
return cal;
}


void loop() {


 Serial.println(readVolte());
  // put your main code here, to run repeatedly:
  WiFiClient client = server.available(); // สร้าง object ชื่อ client จาก class WiFiClient ให้เท่ากับ Server.available()
 if (client) {
    Serial.println("new client");
    // an http request ends with a blank line
    bool currentLineIsBlank = true;
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
   
       if (c == '\n' && currentLineIsBlank) {
          // send a standard http response header
          client.println("HTTP/1.1 200 OK");
          client.println("Content-Type: text/html");
          client.println("Connection: close");  // the connection will be closed after completion of the response
          client.println("Refresh: 0.5");  // refresh the page automatically every 0.5 sec
          client.println();
          client.println("<!DOCTYPE HTML>");
          client.println("<html>");
          client.print("analog input ");
          client.print(readVolte());
          client.println(" V <br />");
          client.println("</html>");
        break;
      }
      if (c == '\n') {
        // you're starting a new line
          currentLineIsBlank = true;
        } else if (c != '\r') {
          // you've gotten a character on the current line
         currentLineIsBlank = false;
      }
      }
    }
    // give the web browser time to receive the data
    delay(1);
    // close the connection:
    client.stop();
    Serial.println("client disconnected");
  }
  }

 



 7 
 เมื่อ: มีนาคม 30, 2019, 12:26:39 PM 
เริ่มโดย NAWATTAKAM - กระทู้ล่าสุด โดย NAWATTAKAM
จาก
https://robotics-za.blogspot.com/2015/06/nodemcu-v2-4-web-server-relay.html



การต่อ
ขา -> LED ขา A -> ตัวต้านทาน -> ขา GND






โค๊ด
#include <ESP8266WiFi.h>

const char* ssid = "3BB_xxx"; //// ใส่ชื่อ wifi
const char* password = "YYYYYYYY";   //// ใส่พาสเวิร์ด wifi

String readStrings = ""; // สร้างตัวแปรมาเก็บข้อมูลค่าที่ส่งเข้ามา

int pin1 = 16; //(D0)
int pin2 = 5; //(D1)
int pin3 = 4; // (D2)
int pin4 = 2; // (D3)

WiFiServer server(80); //สร้าง object ของ class WiFiServer ขึ้นมาและส่งค่าพารามิเตอร์ 80 เพื่อกำหนดพอร์ต

void setup() {
  Serial.begin(9600); //กำหนด baudrate ที่ 115200
  delay(10);
 
  pinMode(pin1,OUTPUT); //เซต pin1 ให้เป็น output
  pinMode(pin2,OUTPUT); //เซต pin2 ให้เป็น output
  pinMode(pin3,OUTPUT); //เซต pin3 ให้เป็น output
  pinMode(pin4,OUTPUT); //เซต pin4 ให้เป็น output
 
  // Connect to WiFi network
  Serial.println();
  Serial.println();
  Serial.print("Connecting to ");
  Serial.println(ssid); //แสดงข้อความ Connecting to (ชื่อ SSID ที่เราตั้ง) ผ่านทาง Serial
 
  WiFi.begin(ssid, password); // เริ่มเชื่อมต่อไปยัง ssid และ password ที่เรากำหนด
 
  while (WiFi.status() != WL_CONNECTED) { // ถ้ายังไม่เชื่อมต่อกับ wifi ให้ทำการวน loop ไปเรื่อย ๆ และ print ข้อความ ... ออกมา
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.println("WiFi connected");//เมื่อเชื่อมต่อกับ wifi ได้แล้วให้ แสดง WiFi connected ผ่าน Serial
 
  // Start the server
  server.begin(); //ให้ทำการเริ่ม server
  Serial.println("Server started"); //แสดงข้อความว่า Server started ผ่าน Serial

  // Print the IP address
  Serial.println(WiFi.localIP()); //แสดง IP Address ทาง Serial

}

void loop() {
  // put your main code here, to run repeatedly:
  WiFiClient client = server.available(); // สร้าง object ชื่อ client จาก class WiFiClient ให้เท่ากับ Server.available()
 
  if(client){ //ถ้ามี client เชื่อมต่อ ให้เข้าทำงานในเงื่อนไข
  Serial.println("Yes client"); // แสดง Yes client ทาง Serial
 
    while(client.connected()){ // ถ้าหาก client กำลังเชื่อมต่อ ให้เข้า loop
       if(client.available()){ // ถ้าเข้าเงื่อนไขนี้แสดงว่ามีข้อมูลผ่านเข้ามา
        char c = client.read(); // สร้างตัวแปร char เพื่อเก็บข้อมูลที่อ่านได้
       
       
       if(readStrings.length() < 100){ // ถ้าหากตัวแปร readStrings มีขนาดไม่เกิน 100 ก็ให้ตัวแปร readStrings เพิ่มข้อมูลจากค่าที่อ่านได้จาก server
         readStrings += c;
       }
   
        if(c=='\n'){// เมื่ออ่านข้อมูลเจอ \n ก็ให้ทำเงื่อนไขต่อไป
            Serial.println(readStrings); // แสดงข้อมูลที่อ่านได้ทั้งหมดแสดงผ่าน Serial
            client.print("HTTP/1.1 200 OK\r\n"); //send new page
            client.print("Content-Type: text/html\r\n\r\n");
            client.print("<!DOCTYPE HTML>\r\n");
            client.print("<HTML>\r\n");//html tag
            client.print("<HEAD>\r\n"); //
//            client.print("<meta http-equiv='refresh' content='10'/>\r\n");
            client.print("<meta name='apple-mobile-web-app-capable' content='yes' />\r\n");
            client.print("<meta name='apple-mobile-web-app-status-bar-style' content='black-translucent' />\r\n");
            client.print("<link rel='stylesheet' type='text/css' href='http://randomnerdtutorials.com/ethernetcss.css' />\r\n");
            client.print("<TITLE>NodeMCU Project</TITLE>\r\n");
            client.print("</HEAD>\r\n");
            client.print("<BODY>\r\n");//ในส่วนของ body คือสิ่งที่จะแสดงไปยังหน้า web
            client.print("<H1>NodeMCU Web Server Proect :D</H1>\r\n"); //สร้างหัวข้อความที่มีขนาด 1
            client.print("<hr />\r\n");//ขีดเส้นใต้
            client.print("<br />\r\n");  //ขึ้นบรรทัดใหม่
            client.print("<H2>Base on ESP8266 ESP-12E</H2>\r\n"); //สร้างหัวข้อความที่มีขนาด 2
            client.print("<br />\r\n");  //ขึ้นบรรทัดใหม่
            client.print("<a href=\"/?button1on\"><font color = \"green\">LED 1 On</font></a>\r\n");//สร้าง link เมื่อคลิกจะส่งค่าไปที่ server อ่านแล้วเอาไปควบคุม relay
            client.print("<a href=\"/?button1off\"><font color = \"red\">LED 1 Off</font></a><br />\r\n");   
            client.print("<br />\r\n");     
            client.print("<a href=\"/?button2on\"><font color = \"green\">LED 2 On</font></a>\r\n");
            client.print("<a href=\"/?button2off\"><font color = \"red\">LED 2 Off</font></a><br />\r\n");   
            client.print("<br />\r\n");
            client.print("<a href=\"/?button3on\"><font color = \"green\">LED 3 On</font></a>\r\n");
            client.print("<a href=\"/?button3off\"><font color = \"red\">LED 3 Off</font></a><br />\r\n");   
            client.print("<br />\r\n");
            client.print("<a href=\"/?button4on\"><font color = \"green\">LED 4 On</font></a>\r\n");
            client.print("<a href=\"/?button4off\"><font color = \"red\">LED 4 Off</font></a><br />\r\n");   
            client.print("<br />\r\n");
            client.print("<br />\r\n");
            client.print("<a href=\"/?buttonallon\"><font color = \"green\">           LED ALL On           </font></a>\r\n");
            client.print("<br />\r\n");
            client.print("<br />\r\n");
            client.print("<a href=\"/?buttonalloff\"><font color = \"red\">           LED ALL off          </font></a>\r\n");
            client.print("<br />\r\n");
            client.print("</BODY>\r\n");
            client.print("</HTML>\n");// ปิด tag
           
            delay(1);
           
            client.stop(); // เมื่อส่งไปแล้วก็ให้ client stop เพื่อหยุดการทำงาน
           
           
            //ส่วนที่เหลือก็จะเป็นเช็คข้อความที่อ่านได้เพื่อไปควบคุม relay แต่ละ channel
            if(readStrings.indexOf("?button1on") > 0){
              Serial.println("1 on");
              digitalWrite(pin1,HIGH);
            }
           
            if(readStrings.indexOf("?button1off") >0){
              Serial.println("1 off");
              digitalWrite(pin1,LOW);
            }
           
            if(readStrings.indexOf("?button2on") >0){
              Serial.println("2 on");
              digitalWrite(pin2,HIGH);
            }
            if(readStrings.indexOf("?button2off")>0){
              Serial.println("2 off");
              digitalWrite(pin2,LOW);
            }
            if(readStrings.indexOf("?button3on")>0){
              digitalWrite(pin3,HIGH);
              Serial.println("3 on");
            }
            if(readStrings.indexOf("?button3off")>0){
              digitalWrite(pin3,LOW);
              Serial.println("3 off");
            }
            if(readStrings.indexOf("?button4on")>0){
              digitalWrite(pin4,HIGH);
              Serial.println("4 on");
            }
            if(readStrings.indexOf("?button4off")>0){
              digitalWrite(pin4,LOW);
              Serial.println("4 off");
            }
            if(readStrings.indexOf("?buttonallon")>0){
              digitalWrite(pin1,HIGH);
              digitalWrite(pin2,HIGH);
              digitalWrite(pin3,HIGH);
              digitalWrite(pin4,HIGH);
            }
            if(readStrings.indexOf("?buttonallof")>0){
              digitalWrite(pin1,LOW);
              digitalWrite(pin2,LOW);
              digitalWrite(pin3,LOW);
              digitalWrite(pin4,LOW);
            }
          readStrings = ""; //เมื่อจบโปรแกรมก็ให้ตัวแปร readStrings เคลียค่าทั้งหมด เพื่อรอรับค่าใหม่
        }//if(c == '\n')
       }//if(client.available())
      }//while(client.connected())
    }//if(client)
}//void loop()

เปิด seraial Monitor เพื่อดู IP ที่ได้รับ
ใช้โปรแกรมเข้าเว็บเช่น Chome เข้าไปที่ IP ที่ได้รับ





 8 
 เมื่อ: มีนาคม 30, 2019, 12:17:52 PM 
เริ่มโดย NAWATTAKAM - กระทู้ล่าสุด โดย NAWATTAKAM
เมื่อคอมไพล์ NodeMCU ด้วย Arduino IDE แล้วขึ้น

warning: espcomm_send_command: can't receive slip payload data
error: failed reading byte

ให้แก้ไขโดย




 9 
 เมื่อ: มีนาคม 27, 2019, 10:54:11 AM 
เริ่มโดย NAWATTAKAM - กระทู้ล่าสุด โดย NAWATTAKAM
Arduino

- ต่อขา TxD (ขา1) บอร์ด SDS011  เข้าขา 10 ของ UNO






โค๊ด
#include <SoftwareSerial.h>

SoftwareSerial mySerial(10, 11); // ->(10) RX  ,  (11) TX->


float p10, p25;
int error;


void setup()
{
  // Open serial communications and wait for port to open:
  Serial.begin(9600);
  while (!Serial) { }

  mySerial.begin(9600);

}


void PM()
{

 byte buffer;
  int value;
  int len = 0;
  int pm10_serial = 0;
  int pm25_serial = 0;
  int checksum_is;
  int checksum_ok = 0;
  int error = 1;

while (( mySerial.available() > 0) && ( mySerial.available() >= (10-len)))
  {
    buffer =  mySerial.read();
    value = int(buffer);
    switch (len) {
      case (0): if (value != 170) { len = -1; }; break;
      case (1): if (value != 192) { len = -1; }; break;
      case (2): pm25_serial = value; checksum_is = value; break;
      case (3): pm25_serial += (value << 8); checksum_is += value; break;
      case (4): pm10_serial = value; checksum_is += value; break;
      case (5): pm10_serial += (value << 8); checksum_is += value; break;
      case (6): checksum_is += value; break;
      case (7): checksum_is += value; break;
      case (8): if (value == (checksum_is % 256)) { checksum_ok = 1; } else { len = -1; }; break;
      case (9): if (value != 171) { len = -1; }; break;
    }
    len++;
    if (len == 10 && checksum_ok == 1) {
      p10 = (float)pm10_serial/10.0;
      p25 = (float)pm25_serial/10.0;
      len = 0; checksum_ok = 0; pm10_serial = 0.0; pm25_serial = 0.0; checksum_is = 0;
      error = 0;
    }

  }



if (!error) {
    Serial.print("P2.5: " + String(p25));    Serial.println("         P10:  " + String(p10));
  }
  delay(100);


 
}


void loop() { // run over and over
 
   PM();
   
}



ผล


 10 
 เมื่อ: มีนาคม 27, 2019, 09:33:16 AM 
เริ่มโดย NAWATTAKAM - กระทู้ล่าสุด โดย NAWATTAKAM

Arduino

โค๊ด
#include <SoftwareSerial.h>


//// กำหนดขา
SoftwareSerial mySerial(10, 11); // ->(10) RX รับข้อมูลเข้า  ,  (11) TX ส่งข้อมูลออก->
 
void setup() {
  // Open serial communications and wait for port to open:
  Serial.begin(9600);
  while (!Serial) { }

  mySerial.begin(9600);
  mySerial.println("Hello, world?");
}

void loop() { // run over and over
  if (mySerial.available()) {
    Serial.write(mySerial.read());
    Serial.write("."); //// test
  }
 
}


หน้า: [1] 2 3 ... 10