Đăng ký Đăng nhập
Trang chủ THỰC TẬP ĐIỀU KHIỂN – LẬP TRÌNH GIAO TIẾP MÁY TÍNH...

Tài liệu THỰC TẬP ĐIỀU KHIỂN – LẬP TRÌNH GIAO TIẾP MÁY TÍNH

.DOC
43
481
138

Mô tả:

Giao tiếp V.B 6.0 và arduino
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC NÔNG LÂM THÀNH PHỐ HỒ CHÍ MINH KHOA CƠ KHÍ CÔNG NGHỆ BÁO CÁO MÔN HỌC THỰC TẬP ĐIỀU KHIỂN – LẬP TRÌNH GIAO TIẾP MÁY TÍNH SVTT: Nguyễn Hoàng Việt Lớp: DH12TD MSSV: 12138006 1 BÀI 1 GIAO DIỆN ĐO LƯỜNG VÀ ĐIỀU KHIỂN NHIỆT ĐỘ I. Giao diện giao tiếp máy tính dùng phần mềm Visual Basic 6.0 Hình 1.1 Thiết kế giao diện Visual Basic 6.0 2 Code Visual Basic 6.0  Form 1 Dim a Private Sub Command2_Click() Form1.Hide Form2.Show End Sub Private Sub Form_Load() End Sub Private Sub thoat_Click() Dim a As Integer a = MsgBox("Ban Muon Thoat Khoi Chuong Trinh?", vbQuestion + vbYesNo, "Thong bao") Select Case a Case vbYes End Case vbNo End Select End Sub Private Sub Timer1_Timer() a = Format(Time, "hh:mm:ss") ' thoi gian thuc lbl.Caption = a 3 End Sub  Form 2 Dim nhietdo, b, so, data, d, h, q, w Private Sub Command1_Click() Form2.Hide Form5.Show End Sub Private Sub Command_Click() Timer2.Interval = Val(Text1.Text) Timer3.Interval = Val(Text1.Text) End Sub Private Sub Command2_Click() Dim a As Integer a = MsgBox("Ban Muon Thoat Khoi Chuong Trinh?", vbQuestion + vbYesNo, "Thong Bao") Select Case a Case vbYes End Case vbNo End Select End Sub Private Sub Command3_Click() 4 Form2.Hide Form1.Show End Sub Private Sub Command5_Click() MSComm1.CommPort = d MSComm1.PortOpen = True MsgBox ("Ket noi thanh cong") Label2.Caption = "Connecting" End Sub Private Sub Command6_Click() MSComm1.PortOpen = False MsgBox ("Da ngat ket noi") Label2.Caption = "Disconnect" End Sub Private Sub Form_Load() MSComm1.RThreshold = 1 MSComm1.InputLen = 1 MSComm1.InBufferSize = 16 MSComm1.InputLen = 10 MSComm1.DTREnable = False For h = 1 To 16 5 Combo1.AddItem "COM" & Trim$(Str$(h)) Next h End Sub Private Sub Option2_Click() Form3.Show Form2.Hide End Sub Private Sub MSComm1_OnComm() If MSComm1.InBufferCount <> 0 Then nhietdo = MSComm1.Input End If data = Mid(nhietdo, 1, 4) End Sub Private Sub Timer1_Timer() If (MSComm1.PortOpen = True) Then If opt1.Value = True Then txt.Text = data ElseIf opt2.Value = True Then txt.Text = data End If End If 6 lbl.Caption = Format(Time, "hh:mm:ss") ' thoi gian thuc d = Val(Mid(Combo1.Text, 4, 1)) End Sub Private Sub Timer2_Timer() q = Text6.Text w = Val(txt.Text) If (MSComm1.PortOpen = True) Then If IsNumeric(q) = True Then If Val(q) <= w Then MSComm1.Output = "m" Shape1.BackColor = &HFF& Else MSComm1.Output = "t" Shape1.BackColor = &HFF0000 End If End If End If End Sub Private Sub Timer3_Timer() If opt2.Value = True Then If MSComm1.PortOpen = True Then 7 If Not Adodc1.Recordset.EOF Then Adodc1.Recordset.MoveLast so = Val(Adodc1.Recordset.Fields("SO THU TU")) so = so + 1 Adodc1.Recordset.AddNew Adodc1.Recordset.Fields("SO THU TU") = so Adodc1.Recordset.Fields("THOI GIAN") = Now() Adodc1.Recordset.Fields("NHIET DO") = nhietdo Adodc1.Recordset.Update Adodc1.Refresh End If Adodc1.Refresh Adodc1.Recordset.MoveLast End If End If End Sub 8 II. Sơ đồ nguyên lý kết nối Arduino UNO Hình 1.2 Sơ đồ nguyên lý Code arduino UNO: float reading,voltage,temp; int kt; void setup() { Serial.begin(9600); pinMode(6,OUTPUT); } void doc() { reading = analogRead(A0); 9 voltage = map(reading,0,1023,0,1500); temp = voltage/1.8 + 25; Serial.println(temp); delay(50); } void loop() { doc(); kt = Serial.read(); if(kt=='m'){ digitalWrite(6,HIGH); } if(kt=='t'){ digitalWrite(6,LOW); } 10 BÀI 2 GIAO DIỆN ĐO LƯỜNG VÀ ĐIỀU CHỈNH SỐ I. Giao diện giao tiếp máy tính phần mềm Visual Basic 6.0 Hình 2.1 Giao diện thiết kế trên Visual Basic 6.0 11 Code Visual Basic 6.0  Form 1: Dim a Private Sub Command2_Click() Form1.Hide Form2.Show End Sub Private Sub Form_Load() End Sub Private Sub thoat_Click() Dim a As Integer a = MsgBox("Ban Muon Thoat Khoi Chuong Trinh?", vbQuestion + vbYesNo, " Thong bao") Select Case a Case vbYes End Case vbNo End Select End Sub Private Sub Timer1_Timer() a = Format(Time, "hh:mm:ss") ' thoi gian thuc lbl.Caption = a 12 End Sub  Form 2: Dim buoc Dim b, c, d As Integer Dim h As Integer Private Sub Form_Load() MSComm1.RThreshold = 1 MSComm1.InBufferSize = 16 MSComm1.InputLen = 10 MSComm1.DTREnable = False For h = 1 To 16 Combo1.AddItem "COM" & Trim$(Str$(h)) Next h End Sub Private Sub MSComm1_OnComm() If MSComm1.InBufferCount <> 0 Then buoc = MSComm1.Input End If Text1.Text = buoc End Sub Private Sub Timer1_Timer() 13 b = Val(Text6.Text) c = Val(Text1.Text) If (MSComm1.PortOpen = True) Then If (Option1.Value = True) Then If b <= c Then MSComm1.Output = "m" Shape1.BackColor = &HFF& Else MSComm1.Output = "t" Shape1.BackColor = &HFF0000 End If End If If Option2.Value = True Then MSComm1.Output = "t" Shape1.BackColor = &HFF0000 End If End If Label6.Caption = Format(Time, "hh:mm:ss") ' thoi gian thuc d = Val(Mid(Combo1.Text, 4, 1)) End Sub Private Sub Command1_Click() 14 MSComm1.CommPort = d MSComm1.PortOpen = True MsgBox ("Ket noi thanh cong") Label1.Caption = "Connecting" End Sub Private Sub Command2_Click() Dim a As Integer a = MsgBox("Ban Muon Thoat Khoi Chuong Trinh?", vbQuestion + vbYesNo, "Thong Bao") Select Case a Case vbYes End Case vbNo End Select End Sub Private Sub Command3_Click() Form2.Hide Form1.Show End Sub Private Sub Command4_Click() MSComm1.PortOpen = False MsgBox ("Da ngat ket noi") 15 Label1.Caption = "Disconnect" End Sub II. Sơ đồ nguyên lý kết nối Arduino UNO Hình 2.2 Sơ đồ nguyên lý  Code arduino UNO const int buttonPin = 2; int buttonState = 0; unsigned int i = 0; int kt; void setup() { Serial.begin(9600); pinMode(buttonPin, INPUT); pinMode(6, OUTPUT); 16 } void loop() { doc(); kt = Serial.read(); if(kt=='m'){ digitalWrite(6,HIGH); } if(kt=='t'){ digitalWrite(6,LOW); } delay(200); } void doc() {buttonState = digitalRead(buttonPin); if (buttonState == LOW) { i = i +1;} Serial.println(i); lcd.setCursor(0, 1); lcd.print(" "); lcd.print(i); } BÀI 3 #include "DHT.h" const int DHTPIN = A0; //Đọc dữ liệu từ DHT11 ở chân 2 trên mạch Arduino 17 const int DHTTYPE = DHT11; //Khai báo loại cảm biến, có 2 loại là DHT11 và DHT22 DHT dht(DHTPIN, DHTTYPE); int kt; int del = 100; float reading0,reading,reading1,value,value1; float voltage0,voltage,voltage1; float temp0,temp,temp1,doam,doam1; float h, t; void setup() { Serial.begin(9600); dht.begin(); pinMode(7, OUTPUT); pinMode(6, OUTPUT); pinMode(5, OUTPUT); pinMode(4, OUTPUT); pinMode(3, OUTPUT); } void docnd() { h = dht.readHumidity(); //Đọc độ ẩm t = dht.readTemperature(); //Đọc nhiệt độ 18 value = analogRead(A1); doam = map(value,0,1023,0,100); value1 = analogRead(A2); doam1 = map(value1,0,1023,0,100); reading = analogRead(A3); voltage = reading * 5.0 / 1024.0; temp = voltage * 100.0; reading0 = analogRead(A5); voltage0 = map(reading0,0,1023,0,1500); temp0 = voltage0/1.8 + 25; } void printt() { Serial.println(doam+1000); delay(del); Serial.println(doam1+2000); delay(del); Serial.println(t+3000); delay(del); Serial.println(temp+4000); delay(del); 19 Serial.println(h+5000); delay(del); Serial.println(temp0+6000); delay(del); } void loop() { docnd(); printt(); kt = Serial.read(); if (kt == 'q') { digitalWrite(7,HIGH);} else if (kt == 'w') { digitalWrite(7,LOW);} else if (kt == 'e') { digitalWrite(6,HIGH);} else if (kt == 'r') { digitalWrite(6,LOW);} else if (kt == 't') { digitalWrite(5,HIGH);} else if (kt == 'y') { digitalWrite(5,LOW);} else if (kt == 'u') { digitalWrite(4,HIGH);} else if (kt == 'i') { digitalWrite(4,LOW);} else if (kt == 'o') { digitalWrite(3,HIGH);} else if (kt == 'p') { digitalWrite(3,LOW);} } 20
- Xem thêm -

Tài liệu liên quan