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

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


  


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

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


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

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

รับค่าจาก Arduino เข้า VB

เจมส์

ตอนนี้ผมกำลังศึกษาโปรเจ็คเกี่ยวกับ โปรแกรมตรวจสอบลานจอดรถอยู่ครับ

ผมใช้ Arduino Mega 2560 กับ Ultrasonic Sensor Module HY-SRF05 ผมได้ทำการติดต่อผ่าน Serial Port มาเรียบร้อยแล้ว ได้ค่า cm ตามภาพ

ผมอยากสอบถามว่า จะเอาค่า cm ที่ได้มาใช้ยังไงครับ ผมอยากให้กำหนดประมาณว่า ถ้าระยะน้อยกว่า 50cm จาก P1 เป็นภาพ P1 ที่มีรถมาจอด

ตอนนี้ผมลองใช้เซ็นเซอร์ 1 ตัวก่อนนะครับ

Code ฝั่ง arduino 

int pingPin = 13;

    int inPin = 12;

 

     

    void setup() {

      Serial.begin(9600);

    }

     

    void loop()

    {

      long duration, cm;

     

      pinMode(pingPin, OUTPUT);

     

 

      digitalWrite(pingPin, LOW);

      delayMicroseconds(2);

      digitalWrite(pingPin, HIGH);

      delayMicroseconds(5);

      digitalWrite(pingPin, LOW);

      pinMode(inPin, INPUT);

      duration = pulseIn(inPin, HIGH);

 

      cm = microsecondsToCentimeters(duration);

 

      Serial.print(cm);

      Serial.print("cm");

      Serial.println();     

      delay(50);

    }

     

    long microsecondsToCentimeters(long microseconds)

    {

      return microseconds / 29 / 2;

    }

 

Code ฝั่ง VB

Public Class Form1

 

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = False

        Dim lists As String() = IO.Ports.SerialPort.GetPortNames

 

        For i = 0 To lists.Count - 1

            ComboBox1.Items.Add(lists(i))

        Next

    End Sub

 

    Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click

        If ComboBox1.SelectedItem = "" Then Return

        If SerialPort1.IsOpen Then SerialPort1.Close()

        If Button1.Text = "Connect" Then

            SerialPort1.BaudRate = 9600

            SerialPort1.PortName = ComboBox1.SelectedItem

            Try

                SerialPort1.Open()

                Button1.Text = "Disconnect"

                ComboBox1.Enabled = False

            Catch ex As Exception

                MsgBox(ex.Message)

            End Try

        Else

            Button1.Text = "Connect"

            ComboBox1.Enabled = True

        End If

    End Sub

 

    Private Sub SerialPort1_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived

 

        Dim line As String = SerialPort1.ReadLine()

        Label1.Text = line

    End Sub

 

    Private Sub PictureBox1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles PictureBox1.Click

  

    End Sub

End Class

ขอแนวทางจากพี่ๆช่วยแนะนำทีครับ ว่าผมควรจะทำยังไงบ้าง ขอบคุณครับ

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

แก้แค่โคดใน VB ใช้ if เช็ค แล้วเปลี่ยนรูปครับ ตัวอย่างโคดนี้

Picturebox1.Image = Image.FromFile("C:\mypicture.jpg")

QUOTE 
ความคิดเห็นที่ #2
เจมส์
ตอนนี้สลับได้แล้วครับ แต่มันเป็นแบบต้อง คลิ๊กเม้าส์ อยากจะให้ทำงานเลยไม่ต้องคลิ๊กต้องเลือก Declaration แบบไหนหรอครับ [img]https://www.img.in.th/images/624905838cf0d1aa538077a95edefb0a.png[/img]
QUOTE 
ความคิดเห็นที่ #3
เจ้าของร้าน

ใส่ใน event เมื่อมีการรับข้อมูลจาก Serial 

SerialPort1_DataReceived ตรงนี้ครับ

QUOTE 
ความคิดเห็นที่ #4
เจมส์
สอบถามเพิ่มเติมหน่อยครับตัวเซ็นเซอร์ Ultrasonic Sensor Module HY-SRF05 ขา OUT เอาไว้ทำอะไรหรอครับ ผมสามารถต่อ LED ในขานี้ได้เลยมั้ย ขอบคุณครับ
QUOTE 
ความคิดเห็นที่ #5
เจ้าของร้าน

ขา OUT ให้สัญญาณ 1 เมื่อมีวิตตถุ น่าจะต่อกับ LED ได้ ขอมูลอ้างอิงตาม datasheet นี้ครับ

http://www.energiazero.org/arduino_sensori/Arduino%20ultrasonic%20sensor%20(HC-SR04%20or%20HY-SRF05).pdf

QUOTE 
ความคิดเห็นที่ #6
เจมส์
รบกวนสอบถามเพิ่มเติมอีกหน่อยครับ จะรับค่าจาก serial port เป็นแต่ละตัวแปรแยกให้มันมาแสดงผล ใน vb ยังไงหรอครับ Dim line As String = SerialPort1.ReadLine // สร้างตัวแปรแบบนี้มันดึงข้อมูลมาทั้งหมดเลยครับ ผมต้องการเป็นตัวแปรที่ผมสร้างไว้ใน Arduino IDE ต้องใช้คำสั่งยังไงหรอครับ ขอบคุณล่วงหน้าครับ
QUOTE 
ความคิดเห็นที่ #7
เจ้าของร้าน

ส่งเป็น 1 ข้อความ 4 ตัว แล้วแยกด้วยเครื่องหมายจุลคา ','

เช่น 1,2,3,4

Dim s As String s = "Chilkat Mail, ActiveX Component, $99, free upgrades, 1-Year Support" Dim fields() As String ' Split the string at the comma characters and add each field to a ListBox fields() = Split(s, ",") For i = 0 To UBound(fields) List1.AddItem Trim$(fields(i)) Next
QUOTE 
ความคิดเห็นที่ #8
เจมส์
ผมลองมาหลายวันแล้วครับ ยังไม่ได้เลย https://www.picz.in.th/images/2018/02/27/03.png จากรูปผมจะดึง ตัวแปร distance1 กับ distance2 มาใน VB ยังไงหรอครับให้มันมาแสดง distance1 แสดงที่ label1.text distance2 แสดงที่ laber2.text พอจะมี Code ตัวอย่างฝั่ง VB ไหมครับ ขอบคุณครับ
QUOTE 
ความคิดเห็นที่ #9
เจ้าของร้าน

ตามที่แนะนำไปแล้ว ส่งไป 1 ข้อความแล้วตัดให้เป็น 4 ตัวแปร

ดูวิธีการตัด string ตามตัวอย่าง อีกครั้งก่อนนะครับ

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

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

สอน esp8266

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

สอน NodeMCU

อุปกรณ์ Arduino

MEMBER ZONE

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