Learn how to use the Arduino microcontroller with Make's tutorial videos

Marc de Vinck has been producing an excellent series of tutorial videos that show you how to make things with the Arduino microcontroller. In this third installment, he uses the Arduino to control a servo motor with a potentiometer.

If you're interested in learning how to use the Arduino, I recommend starting with the slim, easy-to-grok book, Getting Started with Arduino, by Massimo Banzi, the co-founder of Arduino.


  1. Has anyone made a USB device or host with an Arduino? I know it has the USB port connector, but I haven’t seen any projects that actually use it for something.

    I mean, if I wanted to make a super game controller that replaced my keyboard and joysticks with an Arduino controller, and plugged into my USB ports to act as keyboard and joystick, can I do that? Anyone actually prove it?

    Can I do USB host somehow? Or at least USB-on-the-go?

    All the microcontroller programmers I’ve seen use serial. The Arduino is one of the few that appears to use USB, but I can’t tell if you can actually use it as a USB device in a project, or if the USB is only for burning the prom.

    I wrote a little perl script that uses the mouse to act like a morse-code key for training you morse code, but software can only do the dots adn dashes so fast, and it isn’t a real morse-code key. I was thinking of making a trainer that would use hardware to time the keystrokes, adn then send the timing information to the computer. Right now, it sends raw keystrokes to the ocmputer and software tries to time the dots and dashes.


    An Arduino acting as the hardware timer would allow the software to only worry about high level functions. But I need to convert the data to USB data, meaning I need to have the Arduino act like a USB mouse and/or keyboard.

    Anyone see any projects that actually use the USB for something?

  2. As a wannabee maker who doesn’t have a lot of experience in gadget-craft, I really appreciate these videos.

  3. @1

    The USB port on the arduino is connected to a usb-serial converter, which is fully addressable by the microchip. Any program you send to the chip can send and receive data from the USB port. The PC sees it as a serial port.

  4. timmaah!

    I saw in your arduina code you have:

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

    That let’s you read data from through the arduina’s USB port plugged into the PC?

    So, I could do something like Serial.write(byte) to send data?

    If that’s all it takes, I might have to pick up an arduino board.

  5. Cool.

    Anyone have feedback on how well that development environment works? Maybe someone can compare it to AVR Studio?

    I wonder how many people start learning about micro controllers by mastering assembly first.

  6. GregLondon @1

    The USB port on the Arduinos is a ‘device’ type, not a ‘host’ type. That means it cannot initiate a USB discussion.
    There is some ongoing work with the Vinculum products – http://www.vinculum.com/prd_vdip1.html
    but, it appears that the code that has been generated by the community so far is not production ready.

    The cui is a PIC based board with full HID support – http://www.create.ucsb.edu/~dano/CUI/

    He has also put an Atmega on the same board, so you can have an Arduino style device with full USB HID support.

  7. @allenrl, AVR Studio is more C and Assembler oriented while Arduino adds an ‘object programming layer’ in that peripherals are treated more like objects like the serial port or PWM output which makes programming easier tough not optimized. Programs or ‘sketches’ written with Arduino are understandable to almost everyone while reading a Microcontroller C source code isn’t.
    So, to program in C on a development/debugging environment a good knowledge of assembler and structure of the micro is necessary while the strenght of Arduino is the availability of libraries which masks to some good extent the inner working of the microprocessor.
    The bad (probably the most evident and the only one so far) is that not debugging of the code can be done with Arduino but given the aim of the platform, simple workarounds can be implemented to debug the simple programs which are likely to run on Arduino.
    Arduino is good value for money and worth a shot. You can’t be too wrong.


Comments are closed.