Senin, 30 Maret 2015

0

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;
}






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: