CV. ZENTRONIC - Perusahaan Jasa Listrik dan Elektronika

Selasa, 24 Januari 2023

Arduino Motor DC kendali dengan Visual Basic 6.0

Anda dapat menggunakan kontrol komunikasi serial di VB (Visual Basic) untuk berkomunikasi dengan board Arduino. Ini memungkinkan seseorang untuk membuat antarmuka yang lebih formal ke Board.

 


 Kontrol komunikasi serial ditemukan di project/component/Microsoft Comm Control 6.0 di studio visual VB. Memilihnya menambahkannya ke kotak alat. Itu kemudian dapat diseret ke form. Simbolnya terlihat seperti telepon.



Dalam contoh ini Board Arduino mengendalikan motor listrik melalui rangkaian jembatan H. Input ke rangkaian bridge berasal dari pin 4, 5, 6, dan 7 dari board Arduino.

 

 

Dalam kode VB di bawah ini, antarmuka serial diatur saat memuat form. Dan empat tombol ditambahkan: maju, mundur, berhenti, dan keluar.


Saat memilih tombol, ia mengirimkan sinyal ke board yang pada gilirannya mengeluarkan sinyal ke pasang pin ke transistor di jembatan H. Antarmuka yang lebih praktis akan memiliki kode untuk menanyakan kepada pengguna port komunikasi mana yang akan dihubungkan.

  ' VB 6 -motor control via Arduino UNO/Mega 2560

Private Sub Form_Load()
 MSComm1.RThreshold = 3
 MSComm1.Settings = "9600,n,8,1"
 MSComm1.CommPort = 6    'use the one IDE uses
 MSComm1.PortOpen = True
 MSComm1.DTREnable = False
 Text1.Text = ""
End Sub

Private Sub FORWARD_Click()
 Text1.Text = "FORWARD DIRECTION WAS SELECTED"
 MSComm1.Output = "f"
End Sub

Private Sub REVERSE_Click()
 Text1.Text = "REVERSE DIRECTION WAS SELECTED"
 MSComm1.Output = "r"
End Sub

Private Sub STOP_Click()
 Text1.Text = "STOP WAS SELECTED"
 MSComm1.Output = "s"
End Sub

Private Sub EXIT_Click()
 MSComm1.Output = "s" 'make sure motor is stopped
 Unload Me
End Sub
 
 Di sisi board kode Arduino menunggu sinyal serial kemudian mengatur atau menghapus output sesuai kebutuhan. 

  

// this program receives commands via the visual basic program running on the pc.

//based on: zentronic.co.id (c) 2023

//outputs to the four transistors in the 
// H bridge controling the motor
int pin7 = 7;  
int pin6 = 6; 
int pin5 = 5;  
int pin4 = 4;  

void setup() 
{ 
  Serial.begin(9600); 
  pinMode(pin7, OUTPUT); 
  pinMode(pin6, OUTPUT);  
  pinMode(pin5, OUTPUT); 
  pinMode(pin4, OUTPUT); 

  //all low/off = stopped
  digitalWrite(pin4,LOW);  
  digitalWrite(pin5,LOW);  
  digitalWrite(pin6,LOW);  
  digitalWrite(pin7,LOW); 
} 

void loop() 
{ 
  if (Serial.available()) 
  { 
      int command = Serial.read();  
      //all low/off = stopped
      digitalWrite(pin4,LOW);  
      digitalWrite(pin5,LOW);  
      digitalWrite(pin6,LOW);  
      digitalWrite(pin7,LOW); 
      
    if (command=='f') //forward
    { 
      digitalWrite(pin7,HIGH);  
      digitalWrite(pin4,HIGH);  
    } 
     if(command=='r')  //reverse
    {  
      digitalWrite(pin5,HIGH);
      digitalWrite(pin6,HIGH); 
    }
    //we initialize to stop with all LOWs above
    if(command=='s') command = 's'; //dummy statement
    
  }//end if(serial)
}//end Loop()
 

Tidak ada komentar:

Posting Komentar

Arduino – LM35 Temperature Sensor

  Sensor Suhu seri LM35 adalah perangkat suhu sirkuit terpadu presisi dengan tegangan keluaran yang berbanding lurus dengan suhu Celcius. ...