2012-05-02 22 views
13

के लिए Arduino यूएनओ मूल बातें हैलो मैं एक यूएसबी कनेक्शन के साथ हार्डवेयर को नियंत्रित करने के लिए नया हूँ। मेरे पास एक Arduino यूएनओ माइक्रोकंट्रोलर है और मुझे शुरू करने के लिए संसाधनों की खोज कर रहा था। मैं सी # (विजुअल स्टूडियो 2010) में प्रोग्राम करता हूं और सोच रहा था कि क्या कुछ मूल बातें थीं जिनका उपयोग मैं अपने कनेक्शन को स्थापित/परीक्षण करने के लिए कर सकता था। मैं अपने WinForm में एक चेक बॉक्स के रूप में सरल कुछ ढूंढ रहा हूं जो उच्च और निम्न के बीच Arduino पर डिजिटल I/O पिन टॉगल कर रहा है। शुरू करने के लिए बहुत कुछ नहीं मिला है।सी #

अग्रिम धन्यवाद।

उत्तर

6

मुझे यकीन है कि आप जानते हैं कि Arduino

Here's their C# page

+0

, मेरी खोज कभी नहीं मुझे उस पेज मिला है। धन्यवाद। – ikathegreat

5

आप दृश्य स्टूडियो का उपयोग कर रहे के बाद से, आप के लिए यह शांत दृश्य स्टूडियो प्लगइन में रुचि हो सकती कुछ नमूने है कि आप के साथ सी # का उपयोग कर सकते है कर रहा हूँ Arduino विकास। http://www.visualmicro.com

11

पीसी से एक आर्डिनो को कमांड भेजने के कई तरीके हैं। संदीप बंसिल एक धारावाहिक बंदरगाह को जोड़ने और पढ़ने का एक अच्छा उदाहरण प्रदान करता है।

नीचे एक विंडोज़ फॉर्म पर चेकबॉक्स की स्थिति के आधार पर एक सीरियल पोर्ट को लिखने का एक उदाहरण उदाहरण है, जिसमें arduino पर पीसी से अनुरोध को संसाधित करने का तरीका है।

यह एक वर्बोज़ उदाहरण है, क्लीनर समाधान हैं लेकिन यह स्पष्ट है।

उदाहरण में arduino पीसी से 'ए' या 'बी' के लिए इंतजार कर रहा है। जब चेकबॉक्स चेक किया जाता है तो पीसी 'ए' भेजता है और चेकबॉक्स अनचेक होने पर 'बी' भेजता है। उदाहरण Arduino पर डिजिटल पिन 4 मानता है।

Arduino कोड

#define DIGI_PIN_SOMETHING 4 
unit8_t commandIn; 
void setup() 
{ 
    //create a serial connection at 57500 baud 
    Serial.begin(57600); 
} 

void loop() 
{ 
    //if we have some incomming serial data then.. 
    if (Serial.available() > 0) 
    { 
     //read 1 byte from the data sent by the pc 
     commandIn = serial.read(); 
     //test if the pc sent an 'a' or 'b' 
     switch (commandIn) 
     { 
      case 'a': 
      { 
       //we got an 'a' from the pc so turn on the digital pin 
       digitalWrite(DIGI_PIN_SOMETHING,HIGH); 
       break; 
      } 
      case 'b': 
      { 
       //we got an 'b' from the pc so turn off the digital pin 
       digitalWrite(DIGI_PIN_SOMETHING,LOW); 
       break; 
      } 
     } 
    } 
} 

विंडोज सी #

यह कोड आपके प्रपत्र .cs फ़ाइल में निवास करेंगे। उदाहरण मानता है कि आपने OnOpenForm, OnCloseForm और ऑनक्लिक ईवेंट के लिए चेकबॉक्स में फॉर्म इवेंट संलग्न किए हैं। घटनाओं में से प्रत्येक से आप नीचे दिए गए .... संबंधित तरीकों कॉल कर सकते हैं

using System; 
using System.IO.Ports; 

class fooForm and normal stuff 
{ 
    SerialPort port; 

    private myFormClose() 
    { 
     if (port != null) 
     port.close(); 
    } 

    private myFormOpen() 
    { 
     port = new SerialPort("COM4", 57600); 
     try 
     { 
      //un-comment this line to cause the arduino to re-boot when the serial connects 
      //port.DtrEnabled = true; 

      port.Open(); 
     } 
     catch (Exception ex) 
     { 
      //alert the user that we could not connect to the serial port 
     } 
    } 

    private void myCheckboxClicked() 
    { 
     if (myCheckbox.checked) 
     { 
      port.Write("a"); 
     } 
     else 
     { 
      port.Write("b");  
     } 
    } 
} 

युक्ति:

आप arduino से एक संदेश को पढ़ने के लिए तो के अंतराल के साथ अपने फार्म के लिए टाइमर जोड़ने चाहते हैं 50 या 100 मिलीसेकंड।

टाइमर का OnTick घटना में आप निम्नलिखित कोड का उपयोग कर डेटा के लिए जाँच करनी चाहिए:

//this test is used to see if the arduino has sent any data 
if (port.BytesToRead > 0) 

//On the arduino you can send data like this 
Serial.println("Hellow World") 

//Then in C# you can use 
String myVar = port.ReadLine(); 

readLine() का परिणाम होगा कि myVarHello World शामिल हैं।

1

मैं Arduinos के साथ इंटरफेस करने के लिए सी # लाइब्रेरी पर काम कर रहा हूं, वहां बहुत सारे अच्छे कोड उदाहरण हैं और चीजों को समझने में मदद करने के लिए पर्याप्त रूप से टिप्पणी की जानी चाहिए, उम्मीद है कि मदद करता है!

GitHub रेपो: https://github.com/qwertykeith/ArduinoLibrary

0

पीसी और Arduino के बीच संचार के लिए बुनियादी तरीका पीसी पर 2 बटन बना सकते हैं और Arduino पर प्रकाश चालू/बंद है। https://www.instructables.com/id/C-Serial-Communication-With-Arduino/ बिल्कुल क्या आप चाहते हैं: का प्रयोग करें portwrite();

यहाँ सबसे सरल डेमो है!

सी # कोड:

using System; 
using System.Windows.Forms; 
using System.IO.Ports; 
namespace ledcontrol 
{ 
    public partial class Form1 : Form 
    { 
     SerialPort port; 
     public Form1() 
     { 
      InitializeComponent(); 
      this.FormClosed += new FormClosedEventHandler(Form1_FormClosed); 
      if (port==null) 
      { 
       port = new SerialPort("COM7", 9600);//Set your board COM 
       port.Open(); 
      } 
     } 
     void Form1_FormClosed(object sender,FormClosedEventArgs e) 
     { 
      if(port !=null &&port.IsOpen) 
      { 
       port.Close(); 
      } 
     } 
     private void button1_Click(object sender, EventArgs e) 
     { 
      PortWrite("1"); 
     } 

     private void button2_Click(object sender, EventArgs e) 
     { 
      PortWrite("0"); 
     } 
     private void PortWrite(string message) 
     { 
      port.Write(message); 
     } 
    } 
} 

Arduino स्केच:

const int LedPin = 13; 
int ledState = 0; 

void setup() 
{ 
    pinMode(LedPin, OUTPUT); 

    Serial.begin(9600);  
} 

void loop() 
{ 
    char receiveVal;  

    if(Serial.available() > 0) 
    {   
     receiveVal = Serial.read(); 

     if(receiveVal == '1')  
      ledState = 1;  
     else 
      ledState = 0;  
    }  

    digitalWrite(LedPin, ledState); 

    delay(50);  
} 
किसी कारण से