Just nu i M3-nätverket
Gå till innehåll

Program som styr en DC motor


sagittarius83

Rekommendera Poster

sagittarius83

Hejsan!

 

Jag har en DC motor som är kopplad till ett processorkort som är i sin tur kopplad seriellt till min dator.

 

Jag styr motorn med hjälp av PWM från en funktions- och strömgenerator. Jag vill styra den från min dator med hjälp av C#.

 

Jag har försökt skriva kod i C# så att den skickar samt tar emot värden till och från processorn.

 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO.Ports;

namespace Formt

{
   delegate void ButtonEventHandler(object sender, EventArgs e);
   delegate void SetTextDeleg(String text);
   public partial class Form1 : Form
   {
       //delegate void SerialDataReceivedEventHandler(object sender, SerialDataReceivedEventArgs e);


       public Form1()
       {


           InitializeComponent();


  /// SerialPort serialPort1 = new SerialPort("COM1", 9600, Parity.None, 8, StopBits.One);
   serialPort1.DataReceived += new SerialDataReceivedEventHandler(port_DataReceived);
           button1.Click += new EventHandler(button1_Click);
           button2.Click += new EventHandler(button2_Click);

          serialPort1.Open();
           //serialPort1.ReadTimeout = 500;
           //Application.Run();

       }

       private void button1_Click(object sender, EventArgs e)
       {
           //comfiguring the serial port
           serialPort1.Close();
           serialPort1.PortName = "COM1";
           serialPort1.BaudRate = 9600;
           serialPort1.DataBits = 8;
           serialPort1.Parity = Parity.None;
           serialPort1.StopBits = StopBits.One;

           //open the serial port

            serialPort1.Open();

           //MessageBox.Show("sender");

           //write data to serial port
            serialPort1.Write(textBox1.Text);


           //serialPort1.Write("1");


           ///close the port


          // if (radioButton1.Checked)
          // {


               textBox1.Text = "Send";

               // MessageBox.Show("Percy Villegas");
          // }

           //serialPort1.Write("percy");
           //serialPort1.Write("1");


           //close the port
           //serialPort1.Close();

       }
  private void port_DataReceived(object sender, SerialDataReceivedEventArgs e)
   {
       	/***serialPort1.PortName = "COM1";
           serialPort1.BaudRate = 9600;
           serialPort1.DataBits = 8;
           serialPort1.Parity = Parity.None;
           serialPort1.StopBits = StopBits.One;***/
      // textBox2.Text = "p";

       //MessageBox.Show(serialPort1.ReadExisting());

       //Application.Run();
        //   serialPort1.ReadTimeout = 500;


     // Enter an application loop to keep this thread alive
     //Application.Run();

  	// Show all the incoming data in the port's buffer
     // Console.WriteLine("Incoming Data:");
     //Console.WriteLine(serialPort1.ReadExisting());
    //textBox1.Text = serialPort1.ReadExisting();

  String data =  serialPort1.ReadExisting();
     this.BeginInvoke(new SetTextDeleg(si_DataReceived), new object [] {data});
      // serialPort1.Open();
  }

  private void si_DataReceived(string data) { textBox2.Text = data.Trim(); }


       private void button2_Click(object sender, EventArgs e)
       {


           //textBox1.Text = "Marco";

           Buttonn sss = new Buttonn();

           textBox2.Text = sss.clicked();
          // textBox2.Text = sss.clicked();

       }


   }

   public class Buttonn
   {


       public string clicked()
       {
           int Ampere = 10, Resistans = 5, Volt;
           String Volta;
           Volt = Ampere * Resistans;
           Volta = Convert.ToString(Volt);




           return Volta;

       }


   }


}

 

Jag är inte så bra på C# och har lite brist på tid, därför vill jag be om hjälp från er som är vana C#-programmerare, lite grovt kanske om hur koden ska se ut...

 

 

Jag vill komplettera koden så att C#-programmet ser ut som i bilden... Med start, stop samt mät knapp (där den mäter aktuell hastighet samt ström i motorn)

 

 

 

Projekt mappen finns zippad här:

http://www.megaupload.com/se/?d=DTOTLYW4

 

[bild bifogad 2009-02-09 21:16:15 av sagittarius83]

[inlägget ändrat 2009-02-09 21:17:56 av sagittarius83]

1121742_thumb.jpg

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...