Skip to main content
1 of 4

Microcontroller Information:

First, I think you meant "C", not "C#" - those are two totally different programming languages. On top of that, Arduino uses a version of C++, which is different still.

Microcontrollers are typically programmed in C or in assembly (ASM). If you are new, I would recommend C. Arduino is not a microcontroller, it is a development board (usually) based around an AVR microcontroller, although there other MCUs in use. The on board MCUs (microcontroller units) will have a bootloader installed. This is a special section of code that alters how the MCU works. In the case of Arduino, it allows for programming through the serial port as opposed to standard programming methods as well as access to special library functions. Also on the board will (typically) be a USB to serial converter because many smaller chips don't have internal USB hardware, so the USB has to be converted for proper communication.

Question 1:

An MCU will have a specific number of I/O pins. These are pins which can be inputs or outputs. You can directly connect as many digital sensors as there are I/O pins, but analog sensors are limited to the number of ADC (analog to digital converter) pins available. Not all MCUs have an ADC unit. You can also connect many, many more sensors by using external GPIO expanders or parallel in, serial out registers. These can be controlled using a few MCU pins and can greatly expand the number of I/O pins available.

Question 2:

You will write a program on the computer which is installed onto the MCU. If the code allows for you to have external communications (through USB, serial, SPI, I2C, etc) then you can communicate with the chip while it is running. But that ability is dependent on the code you write.

Your Project:

Realistically, your project does not sound that complicated: read a temperature sensor (sounds like analog) and drive a motor to open/close a window based on that sensor reading. When to stop the motor will probably be based on another sensor attached to the window. This can be done with a very small MCU with few pins and little program space (such as the ATtiny24 or ATtiny25). But I think you will run into a lot of problems if you don't work on something a bit smaller first. The standard "hello world" of MCUs is to blink an LED. Then build on that by trying to control the blinking speed with a button, then drive a motor, etc.

Personal Opinion...

I do not, nor do I have any desire to ever use Arduino. I build all of my own circuitry, typically with AVR MCUs, but I understand the reason why people do use them. Personally, I think it is far better to learn how to design your own circuit and program it than to copy other people's code and piece together random things - which is what I see most Arduino users doing. There are PLENTY of online tutorials for getting started with microcontrollers that do not involve Arduino, which is what I would suggest you look into if you have any plans of designing your own circuitry in the future.