參考來源http://www.multiwingspan.co.uk/arduino.php?page=vb1
At the top of the form, you have a GroupBox. Inside the GroupBox, there are 2 ComboBoxes, each with its own Label. The ComboBoxes are called cmbPort and cmbBaud. There are 2 Buttons, one called btnConnect and the other called btnDisconnect. Below the GroupBox, there is a large TextBox. It has been named txtIn and has its Multiline property set to true and its Scrollbars property set to Vertical.
1) 下載 VB2010+ARDUINO 程式
http://www.mediafire.com/file/nf0pykto5pwr11m/RFID_VB_COMPORT.rar/file
================arduino====================================
/*
* -----------------------------------------------------------------------------------------------
* Example sketch/program showing how to read new NUID from a PICC to serial.
* -----------------------------------------------------------------------------------------------
*
/* Wiring RFID RC522 module
=========================================================
GND = GND 3.3V = 3.3V
The following table shows the typical pin layout used:
Signal MFRC522 WeMos D1 mini NodeMcu Generic
RST/Reset RST D3 [1] D3 [1] GPIO-0 [1]
SPI SS SDA [3] D8 [2] D8 [2] GPIO-15 [2]
SPI MOSI MOSI D7 D7 GPIO-13
SPI MISO MISO D6 D6 GPIO-12
SPI SCK SCK D5 D5 GPIO-14
[1] (1, 2) Configurable, typically defined as RST_PIN in sketch/program.
[2] (1, 2) Configurable, typically defined as SS_PIN in sketch/program.
[3] The SDA pin might be labeled SS on some/older MFRC522 boards
=========================================================
*/
#include <ESP8266WiFi.h>
#include <SPI.h>
#include <MFRC522.h>
#define RST_PIN D3 // RST-PIN für RC522 - RFID - SPI - D3
#define SS_PIN D8 // SDA-PIN für RC522 - RFID - SPI - D8
#define BUILTIN_LED 2 // Arduino standard is GPIO13 but lolin nodeMCU is 2
MFRC522 rfid(SS_PIN, RST_PIN); // Instance of the class
MFRC522::MIFARE_Key key;
// Init array that will store new NUID
byte nuidPICC[4];
String datos;
char charBuf[50];
void setup() {
delay(500);
Serial.begin(9600);
pinMode(BUILTIN_LED, OUTPUT);
SPI.begin(); // Init SPI bus
rfid.PCD_Init(); // Init MFRC522
for (byte i = 0; i < 6; i++) {
key.keyByte[i] = 0xFF;
}
datos = "This code scan the MIFARE Classsic NUID.";
datos.toCharArray(charBuf, 50);
delay(100);
Serial.write(charBuf);
delay(100);
Serial.println(""); // to jump lines
delay(100);
datos = "Using the following key:";
datos.toCharArray(charBuf, 50);
delay(100);
Serial.write(charBuf);
delay(100);
Serial.println(""); // to jump lines
delay(100);
//Serial.println(F("This code scan the MIFARE Classsic NUID."));
//Serial.print(F("Using the following key:"));
printHex(key.keyByte, MFRC522::MF_KEY_SIZE);
Serial.println(""); // to jump lines
}
void loop() {
// Look for new cards
if ( ! rfid.PICC_IsNewCardPresent())
return;
// Verify if the NUID has been readed
if ( ! rfid.PICC_ReadCardSerial())
return;
Serial.print(F("PICC type: "));
MFRC522::PICC_Type piccType = rfid.PICC_GetType(rfid.uid.sak);
Serial.println(rfid.PICC_GetTypeName(piccType));
// Check is the PICC of Classic MIFARE type
if (piccType != MFRC522::PICC_TYPE_MIFARE_MINI &&
piccType != MFRC522::PICC_TYPE_MIFARE_1K &&
piccType != MFRC522::PICC_TYPE_MIFARE_4K) {
Serial.println(F("Your tag is not of type MIFARE Classic."));
return;
}
//if (rfid.uid.uidByte[0] != nuidPICC[0] ||
//rfid.uid.uidByte[1] != nuidPICC[1] ||
//rfid.uid.uidByte[2] != nuidPICC[2] ||
//rfid.uid.uidByte[3] != nuidPICC[3] ) {
//Serial.println(F("A new card has been detected."));
// Store NUID into nuidPICC array
for (byte i = 0; i < 4; i++) {
nuidPICC[i] = rfid.uid.uidByte[i];
}
Serial.print(F("The NUID tag is:"));
Serial.print(F("-->In hex: "));
printHex(rfid.uid.uidByte, rfid.uid.size);
//Serial.println();
Serial.print(F("-->In dec: "));
printDec(rfid.uid.uidByte, rfid.uid.size);
Serial.println();
//}
//else Serial.println(F("Card read previously."));
// Halt PICC
rfid.PICC_HaltA();
// Stop encryption on PCD
rfid.PCD_StopCrypto1();
digitalWrite(BUILTIN_LED, !digitalRead(BUILTIN_LED));
}
/**
* Helper routine to dump a byte array as hex values to Serial.
*/
void printHex(byte *buffer, byte bufferSize) {
for (byte i = 0; i < bufferSize; i++) {
Serial.print(buffer[i] < 0x10 ? " 0" : " ");
Serial.print(buffer[i], HEX);
}
}
/**
* Helper routine to dump a byte array as dec values to Serial.
*/
void printDec(byte *buffer, byte bufferSize) {
for (byte i = 0; i < bufferSize; i++) {
Serial.print(buffer[i] < 0x10 ? " 0" : " ");
Serial.print(buffer[i], DEC);
}
}
================VB2010===================================
Imports System.IO
Imports System.IO.Ports
Public Class Form1
Dim WithEvents sp As New SerialPort
Private Sub GetSerialPortNames()
For Each sport As String In My.Computer.Ports.SerialPortNames
cmbPort.Items.Add(sport)
Next
End Sub
Sub ShowString(ByVal myString As String)
txtIn.AppendText(myString)
End Sub
Delegate Sub myMethodDelegate(ByVal [text] As String)
Dim myDelegate As New myMethodDelegate(AddressOf ShowString)
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim BaudRates() As String = {"300", "1200", "2400", "4800", "9600", "14400", "19200", "28800", "38400", "57600", "115200"}
cmbBaud.Items.AddRange(BaudRates)
cmbBaud.SelectedIndex = 4
Try
GetSerialPortNames()
cmbPort.SelectedIndex = 0
Catch
MsgBox("No ports connected.")
End Try
End Sub
Private Sub btnConnect_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnConnect.Click
Try
sp.BaudRate = cmbBaud.SelectedItem.ToString
sp.PortName = cmbPort.SelectedItem.ToString
sp.Open()
If sp.IsOpen Then
btnConnect.Visible = False
cmbPort.Enabled = False
cmbBaud.Enabled = False
btnDisconnect.Visible = True
End If
Catch
sp.Close()
End Try
End Sub
Private Sub btnDisconnect_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDisconnect.Click
Try
sp.Close()
btnConnect.Visible = True
btnDisconnect.Visible = False
cmbPort.Enabled = True
cmbBaud.Enabled = True
Exit Sub
Catch
MessageBox.Show("Some kind of problem.")
End Try
End Sub
Private Sub Form1_FormClosing(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosingEventArgs)
If sp.IsOpen() Then
MessageBox.Show("Disconnect before closing")
e.Cancel = True
End If
End Sub
Private Sub SerialPort_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles sp.DataReceived
Dim str As String = sp.ReadExisting()
Invoke(myDelegate, str)
End Sub
Private Sub CLEAR_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CLEAR.Click
txtIn.Text = ""
End Sub
End Class
https://sites.google.com/site/changsmallyi/dang-an-xia-zai/VB2010%20Express.zip?attredirects=0&d=1
沒有留言:
張貼留言