1

所以我在 vb 2010 上制作了一个用户界面,允许用户在文本框中键入他们想要的 0-255 之间的值的 PWM。我希望能够获取该值并尽可能多地更改它,但似乎有一个问题,我只能发送一个值而无需再次调试程序。我用作测试的 LED 似乎没有以我在文本框中使用的 PWM 的等效亮度响应。我希望能够使用某种 switch 语句以 8 个独立的继电器作为最终目标来控制它。任何帮助都会非常好我当前的代码:VB

 Imports System.IO
Imports System.IO.Ports
Imports System.Threading
Public Class Form1
    Shared _continue As Boolean
    Shared _serialPort As SerialPort
    Dim SerialPort1 As SerialPort
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        SerialPort1 = New SerialPort
        SerialPort1.PortName = "COM4"
        SerialPort1.BaudRate = 9600
        SerialPort1.DataBits = 8
        SerialPort1.Parity = Parity.None
        SerialPort1.StopBits = StopBits.One
        SerialPort1.Handshake = Handshake.None
        SerialPort1.Encoding = System.Text.Encoding.Default
        SerialPort1.Open()
    End Sub

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

        input = TextBox1.Text
        returnvalue = input


        SerialPort1.Write(input)
        SerialPort1.Close()


        MessageBox.Show(returnvalue)

    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Dim a As Integer
        a = SerialPort1.ReadChar()
        MessageBox.Show(a)
    End Sub
End Class



Arduino
   void setup() {
  // initialize serial communication:
  Serial.begin(9600);
   // initialize the LED pins:
      int thisPin = 2;
        pinMode(thisPin, OUTPUT);
      }

void loop() { 
    int inByte= 0;
    int V1;
  if (Serial.available()) {
     inByte = Serial.read();
     V1 = inByte;
      analogWrite(2, V1);
  }
}

Any help would be awesome ive been stumped on this for awhile
4

1 回答 1

0

我对 VB 2000 没有什么经验。但我可以回答 Arduino 方面的问题。看起来您正在读取 Arduino 中的字节(一次 1 个)

 inByte = Serial.read();

但看起来您正在 VB2000 应用程序中发送文本

 SerialPort1.Write(input)

你能证实吗?如果是这样,您需要将文本输入转换为 Integer,然后仅发送 1 个字节。

于 2015-01-04T18:43:36.600 回答