Books and Tutorials



  • Simon Monk These Arduino tutorials are easy and progressive
  • All Adafruit Tutorials
  • Lady Ada Lesson Zero These are the beginner Lady Ada Tutorials
  • LadyAda Arduino Tutorial These Lady Ada Arduino tutorials are a bit more difficult
  • Chicago Robotics
  • Rod Elliot's Electronics Tutorial
  • Discover Circuits
  • Interfacing with hardware
  • Big list of Arduino Tutorial links on the right margin
  • Resistors Katz
  • Tutorials in the Arduino IDE Online
  • Jeremy Blum
  • Online Electronics This is a nice simple electronics course.
  • Build an Arduino
  • Arduino in a Nutshell
  • Programming Electronics Academy Arduino for absolute beginners Notes:
    • Tutorial 4
      • You may find it useful to come back to the begining of this tutorial after you write a few sketches. It will be more understandable.
      • "void setup ()" Essentially is like starting your car at the beginning of a drive. You set the car up first; adjust the mirrors, the seat, the radio, the heat, etc.
      • code. // , /* and */, ";" , functions , {} and ()
      • You can set up a phone number function with me. When you call I know to turn on the soup. Or when you call you tell me to wait so many minutes and then turn on the soup. void says, "don't tell me anything on the phone". The number of minutes you want me to wait is put in between the ( and ).
    • getting ready to Blink; Variablesdeclaring and intializing.
      • pleaseUseThisFormForVariableNames
      • Data types are in part to keep the amount of space in storage needed to a minimum.
      • Bad explanation of "=" . int ledPin = 13; Make a variable called ledPin, and store 13 in it. The "equals" means store what is second into the beginning. It really is not like the common usage of "=". It is telling the computer to do something, not saying something is true.
    • Blink
      • It would be good to make sure that the two leads coming out of the Arduino board do not touch. This very easily could fry your board. Either use a piece of insulation on one of the leads, use a breadboard, use a male,female lead, or risk it.
      • He could also just write "13" instead of using the variable "led". What he is doing is setting you up for good coding practice. This way you can change the output pin at the top of the program and not have to search through something that could get quite long to change the pin. Also if he has to use the pin number more than once, this takes less computer memory.
      • Directions to upload the program to the board
      1. Plug your board into the USB port. It should blink the first time you do this.
      2. Open the Arduino IDE (program).
      3. Under Tools Select your board "Arduino Uno"
      4. Under Tools select your serial port. It should start with usb . On the Mac there ends up being two functionally identical selections. If nothing is available that is usb, then you probably need to load the driver separately
      5. Press the upload button in the Arduino IDE. It is under the "close this window" red button and next to the check mark. It is an arrow facing right.
    • Tutorial 7 Digital Read and Serial communications
      • The resistor can be thought of as a very slow leak. When no voltage is coming through the switch the pin is tied to ground through this slow leak so that any static or electrical noise is bled off. When 5 volts is applied through the switch the leak is too small to have an impact.
    • Tutorial 8 Analog Read
      • Make sure you have this hooked up correct.
      • You need to understand how the potentiometer is built.
    • Tutorial 9 : Analog read, conversion,
      • you could use the map function rather than his conversion method
      • although the precision is 7 digits the print function limits the output to 2 decimal points unless otherwise specified. From the comments "According to the Arduino Reference for Serial.print -> "Floats are printed as ASCII digits, defaulting to two decimal places. I didn't realize this until you asked and I checked! Thanks for that. Also, if you use the command: Serial.println(1.23456, 4); it should display "1.2346" on the serial monitor. The second number passed is specifying how many digits to display."
      • The challenges at the end are good