Belajar mengirimkan serial data dari VB 6 ke arduino
sekarang kita belajar mengirimkan serial dengan VB 6 dan blinking pada LED di arduino
ini adalah program arduinonya
const int ledPin = 13; // the number of the LED pin
int bataskonter = 0;
int waktutunggu = 0;
int noinput = 0;
String datamasukan;
void setup() {
Serial.begin(9600); // opens serial port, sets data rate to 9600 bps
pinMode(ledPin, OUTPUT);
Serial.println("Masukkan data: ");
}
void loop() {
if (Serial.available() > 0) {
datamasukan = Serial.readStringUntil('\n');
String data1 = datamasukan.substring(0, 2);
String data2 = datamasukan.substring(2, 6);
bataskonter = hexToDec(data1);
waktutunggu = hexToDec(data2);
Serial.print("Led blingking: ");
Serial.print(bataskonter);
Serial.println("times ");
Serial.print("Delay: ");
Serial.print(waktutunggu);
Serial.println("msecond ");
Serial.print("processing");
for (int konter = 0; konter < bataskonter; konter++)
{
digitalWrite(ledPin, HIGH);
delay(waktutunggu);
digitalWrite(ledPin, LOW);
delay(waktutunggu);
Serial.print(" . ");
}
Serial.println("done!!! ");
Serial.println("");
noinput = 0;
Serial.println("Masukkan data: ");
}
}
unsigned int hexToDec(String hexString) {
unsigned int decValue = 0;
int nextInt;
for (int i = 0; i < hexString.length(); i++) {
nextInt = int(hexString.charAt(i));
if (nextInt >= 48 && nextInt <= 57) nextInt = map(nextInt, 48, 57, 0, 9);
if (nextInt >= 65 && nextInt <= 70) nextInt = map(nextInt, 65, 70, 10, 15);
if (nextInt >= 97 && nextInt <= 102) nextInt = map(nextInt, 97, 102, 10, 15);
nextInt = constrain(nextInt, 0, 15);
decValue = (decValue * 16) + nextInt;
}
return decValue;
}
ini adalah program arduinonya
const int ledPin = 13; // the number of the LED pin
int bataskonter = 0;
int waktutunggu = 0;
int noinput = 0;
String datamasukan;
void setup() {
Serial.begin(9600); // opens serial port, sets data rate to 9600 bps
pinMode(ledPin, OUTPUT);
Serial.println("Masukkan data: ");
}
void loop() {
if (Serial.available() > 0) {
datamasukan = Serial.readStringUntil('\n');
String data1 = datamasukan.substring(0, 2);
String data2 = datamasukan.substring(2, 6);
bataskonter = hexToDec(data1);
waktutunggu = hexToDec(data2);
Serial.print("Led blingking: ");
Serial.print(bataskonter);
Serial.println("times ");
Serial.print("Delay: ");
Serial.print(waktutunggu);
Serial.println("msecond ");
Serial.print("processing");
for (int konter = 0; konter < bataskonter; konter++)
{
digitalWrite(ledPin, HIGH);
delay(waktutunggu);
digitalWrite(ledPin, LOW);
delay(waktutunggu);
Serial.print(" . ");
}
Serial.println("done!!! ");
Serial.println("");
noinput = 0;
Serial.println("Masukkan data: ");
}
}
unsigned int hexToDec(String hexString) {
unsigned int decValue = 0;
int nextInt;
for (int i = 0; i < hexString.length(); i++) {
nextInt = int(hexString.charAt(i));
if (nextInt >= 48 && nextInt <= 57) nextInt = map(nextInt, 48, 57, 0, 9);
if (nextInt >= 65 && nextInt <= 70) nextInt = map(nextInt, 65, 70, 10, 15);
if (nextInt >= 97 && nextInt <= 102) nextInt = map(nextInt, 97, 102, 10, 15);
nextInt = constrain(nextInt, 0, 15);
decValue = (decValue * 16) + nextInt;
}
return decValue;
}
Private Sub Drive1_Change()
End Sub
Private Sub Command2_Click()
MSComm1.PortOpen = True
End Sub
Private Sub Command3_Click()
MSComm1.PortOpen = False
End Sub
Private Sub Command1_Click()
Text4.Text = Text1.Text + Text2.Text
MSComm1.Output = Text4.Text
End Sub
0 komentar: