Arduino and C#

Anyone know of some good arduino c# tutorials?
I am a total novice at both but need to get up to speed fast.



Do you absolutely need to code in pure C# or just some sort of C ?
Maybe you should have a look at the OpenFrameworks project.
Kind of Processing, but for C.

It might be a good idea if you explained a little bit more what it is you need to do with c#.

C# can't program Arduino, but you can easily communicate frm a PC program written in c# with Arduino - is that what you need to do ?


The arduino will be programed using the arduino AVR but will communicate with a GUI that resides on my computer that I was hoping to build in visual C# express. I originally wanted the GUI to run under Processing but Processing doesn't allow you to have multiple windows.
The system will eventually have 4 temp sensors (DS18B20s, maybe) 5 solenoid valves, 2 electric heating elements and 2 pumps.

I'm trying to figure out how to format the data on both end that gets communicated so the user can look at the computer and see what the arduino is doing.

Thanks again.


Well it is certainly possible, you have just to design the protocol you wish to use between your Arduino sketch and your PC C# application(s). From a hardware perspective is just a full duplex serial communications link between your application and your sketch. Within this links bandwidth capability you have no limits other then your imagination and skill level.


My imagination is vast. It is my skill level that is worrisome

Processing doesn't allow you to have multiple windows.

In fact, processing allows you to have multiple windows.
For example :

void setup() {
 GUI gui = new GUI("newWindow",450,450);
 GUI gui2 = new GUI("another",250,450);

void draw() {

Then, add a file called GUI and put this code

import java.awt.Color;
import java.awt.Dimension;
import javax.swing.*;

public class GUI extends JFrame {

  String t;
  int sX,sY;

  public GUI(String Title, int sX, int sY) {
    setSize(new Dimension(sX,sY));
    setBackground(new Color((int)(Math.random()*255),(int)(Math.random()*255),(int)(Math.random()*255)));

3 windows...


I had no idea. Thanks I really wanted to do everything in Arduino and Processing and make it all open source but than somewhere I read that Processing wouldn't allow multiple windows.
My plan is to have a main window with buttons that open new window where I can set variable that are then placed back in the main window.