所以我在 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