C Handouts 6
C Handouts 6
LECTURE HANDOUTS
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Writing Sketches
• Programs written using Arduino Software (IDE) are called
sketches. These sketches are written in the text editor and are
saved with the file extension .ino. The editor has features for
cutting/pasting and for searching/replacing text. The message
area gives feedback while saving and exporting and also displays
errors. The console displays text output by the Arduino Software
(IDE), including complete error messages and other information.
The bottom righthand corner of the window displays the configured
board and serial port. The toolbar buttons allow you to verify
and upload programs, create, open, and save sketches, and open
the serial monitor.
• Additional commands are found within the five menus: File, Edit,
Sketch, Tools, Help. The menus are context sensitive, which means
only those items relevant to the work currently being carried out
are available.
File
• New Creates a new instance of the editor, with the bare
minimum structure of a sketch already in place.
• Open Allows to load a sketch file browsing through the
computer drives and folders.
• Open Recent Provides a short list of the most recent sketches,
ready to be opened.
• Sketchbook Shows the current sketches within the sketchbook
folder structure; clicking on any name opens the corresponding
sketch in a new editor instance.
• Examples Any example provided by the Arduino Software (IDE) or
library shows up in this menu item. All the examples are
structured in a tree that allows easy access by topic or
library.
1 | Page
COMPUTER PROGRAMMING PART 4
LECTURE HANDOUTS
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Edit
• Undo/Redo Goes back of one or more steps you did while
editing; when you go back, you may go forward with Redo.
• Cut Removes the selected text from the editor and places it
into the clipboard.
• Copy Duplicates the selected text in the editor and places it
into the clipboard.
• Copy for Forum Copies the code of your sketch to the clipboard
in a form suitable for posting to the forum, complete with
syntax coloring.
• Copy as HTML Copies the code of your sketch to the clipboard
as HTML, suitable for embedding in web pages.
• Paste Puts the contents of the clipboard at the cursor
position, in the editor.
• Select All Selects and highlights the whole content of the
editor.
• Comment/Uncomment Puts or removes the // comment marker at the
beginning of each selected line.
• Increase/Decrease Indent Adds or subtracts a space at the
beginning of each selected line, moving the text one space on
the right or eliminating a space at the beginning.
• Find Opens the Find and Replace window where you can specify
text to search inside the current sketch according to several
options.
• Find Next Highlights the next occurrence - if any - of the
string specified as the search item in the Find window,
relative to the cursor position.
• Find Previous Highlights the previous occurrence - if any - of
the string specified as the search item in the Find window
relative to the cursor position.
Sketch
• Verify/Compile Checks your sketch for errors compiling it; it
will report memory usage for code and variables in the console
area.
• Upload Compiles and loads the binary file onto the configured
board through the configured Port.
2 | Page
COMPUTER PROGRAMMING PART 4
LECTURE HANDOUTS
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Tools
• Auto Format This formats your code nicely: i.e. indents it so
that opening and closing curly braces line up, and that the
statements inside curly braces are indented more.
• Archive Sketch Archives a copy of the current sketch in .zip
format. The archive is placed in the same directory as the
sketch.
• Fix Encoding & Reload Fixes possible discrepancies between the
editor char map encoding and other operating systems char maps.
• Serial Monitor Opens the serial monitor window and initiates
the exchange of data with any connected board on the currently
selected Port. This usually resets the board, if the board
supports Reset over serial port opening.
• Board Select the board that you're using. See below for
descriptions of the various boards.
• Port This menu contains all the serial devices (real or
virtual) on your machine. It should automatically refresh every
time you open the top-level tools menu.
• Programmer For selecting a hardware programmer when programming
a board or chip and not using the onboard USB-serial
connection. Normally you won't need this, but if you're burning
a bootloader to a new microcontroller, you will use this.
• Burn Bootloader The items in this menu allow you to burn a
bootloader onto the microcontroller on an Arduino board. This
is not required for normal use of an Arduino board but is
useful if you purchase a new ATmega microcontroller (which
normally come without a bootloader). Ensure that you've
selected the correct board from the Boards menu before burning
the bootloader on the target board. This command also set the
right fuses.
3 | Page
COMPUTER PROGRAMMING PART 4
LECTURE HANDOUTS
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Help
• Here you find easy access to a number of documents that come
with the Arduino Software (IDE). You have access to Getting
Started, Reference, this guide to the IDE and other documents
locally, without an internet connection. The documents are a
local copy of the online ones and may link back to our online
website.
• Find in Reference This is the only interactive function of the
Help menu: it directly selects the relevant page in the local
copy of the Reference for the function or command under the
cursor.
Sketchbook
• The Arduino Software (IDE) uses the concept of a sketchbook: a
standard place to store your programs (or sketches). The sketches
in your sketchbook can be opened from the File > Sketchbook menu
or from the Open button on the toolbar. The first time you run
the Arduino software, it will automatically create a directory
for your sketchbook. You can view or change the location of the
sketchbook location from with the Preferences dialog.
Uploading
• Before uploading your sketch, you need to select the correct
items from the Tools > Board and Tools > Port menus. The boards
are described below. On the Mac, the serial port is probably
something like /dev/tty.usbmodem241 (for an UNO or Mega2560 or
Leonardo) or /dev/tty.usbserial-1B1 (for a Duemilanove or earlier
USB board), or /dev/tty.USA19QW1b1P1.1 (for a serial board
connected with a Keyspan USB-to-Serial adapter). On Windows, it's
probably COM1 or COM2 (for a serial board) or COM4, COM5, COM7,
or higher (for a USB board) - to find out, you look for USB
serial device in the ports section of the Windows Device Manager.
On Linux, it should be /dev/ttyACMx , /dev/ttyUSBx or similar.
Once you've selected the correct serial port and board, press the
upload button in the toolbar or select the Upload item from the
Sketch menu. Current Arduino boards will reset automatically and
begin the upload. With older boards (pre-Diecimila) that lack
auto-reset, you'll need to press the reset button on the board
just before starting the upload. On most boards, you'll see the
RX and TX LEDs blink as the sketch is uploaded. The Arduino
Software (IDE) will display a message when the upload is
complete, or show an error.
• When you upload a sketch, you're using the Arduino bootloader, a
small program that has been loaded on to the microcontroller on
your board. It allows you to upload code without using any
additional hardware. The bootloader is active for a few seconds
4 | Page
COMPUTER PROGRAMMING PART 4
LECTURE HANDOUTS
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
when the board resets; then it starts whichever sketch was most
recently uploaded to the microcontroller. The bootloader will
blink the on-board (pin 13) LED when it starts (i.e. when the
board resets).
Libraries
• Libraries provide extra functionality for use in sketches, e.g.
working with hardware or manipulating data. To use a library in a
sketch, select it from the Sketch > Import Library menu. This
will insert one or more #include statements at the top of the
sketch and compile the library with your sketch. Because
libraries are uploaded to the board with your sketch, they
increase the amount of space it takes up. If a sketch no longer
needs a library, simply delete its #include statements from the
top of your code.
• There is a list of libraries in the reference. Some libraries are
included with the Arduino software. Others can be downloaded from
a variety of sources or through the Library Manager. Starting
with version 1.0.5 of the IDE, you do can import a library from a
zip file and use it in an open sketch. See these instructions for
installing a third-party library.
Third-Party Hardware
• Support for third-party hardware can be added to the hardware
directory of your sketchbook directory. Platforms installed there
may include board definitions (which appear in the board menu),
core libraries, bootloaders, and programmer definitions. To
install, create the hardware directory, then unzip the third-
party platform into its own sub-directory. (Don't use "arduino"
as the sub-directory name or you'll override the built-in Arduino
platform.) To uninstall, simply delete its directory.
Serial Monitor
• This displays serial sent from the Arduino board over USB or
serial connector. To send data to the board, enter text and click
on the "send" button or press enter. Choose the baud rate from
the drop-down menu that matches the rate passed to Serial.begin
in your sketch. Note that on Windows, Mac or Linux the board will
reset (it will rerun your sketch) when you connect with the
serial monitor. Please note that the Serial Monitor does not
process control characters; if your sketch needs a complete
management of the serial communication with control characters,
you can use an external terminal program and connect it to the
COM port assigned to your Arduino board.
Preferences
• Some preferences can be set in the preferences dialog (found
under the Arduino menu on the Mac, or File on Windows and Linux).
The rest can be found in the preferences file, whose location is
shown in the preference dialog.
5 | Page
COMPUTER PROGRAMMING PART 4
LECTURE HANDOUTS
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Boards
• The board selection has two effects: it sets the parameters (e.g.
CPU speed and baud rate) used when compiling and uploading
sketches; and sets and the file and fuse settings used by the
burn bootloader command. Some of the board definitions differ
only in the latter, so even if you've been uploading successfully
with a particular selection you'll want to check it before
burning the bootloader.
• Arduino Software (IDE) includes the built in support for the
boards in the following list, all based on the AVR Core. The
Boards Manager included in the standard installation allows to
add support for the growing number of new boards based on
different cores like Arduino Due, Arduino Zero, Edison, Galileo
and so on.
o Arduino Yún An ATmega32u4 running at 16 MHz with auto-
reset, 12 Analog In, 20 Digital I/O and 7 PWM.
o Arduino Uno An ATmega328P running at 16 MHz with auto-
reset, 6 Analog In, 14 Digital I/O and 6 PWM.
o Arduino Diecimila or Duemilanove w/ ATmega168 An ATmega168
running at 16 MHz with auto-reset.
o Arduino Nano w/ ATmega328P An ATmega328P running at 16 MHz
with auto-reset. Has eight analog inputs.
o Arduino Mega 2560 An ATmega2560 running at 16 MHz with
auto-reset, 16 Analog In, 54 Digital I/O and 15 PWM.
o Arduino Mega An ATmega1280 running at 16 MHz with auto-
reset, 16 Analog In, 54 Digital I/O and 15 PWM.
o Arduino Mega ADK An ATmega2560 running at 16 MHz with auto-
reset, 16 Analog In, 54 Digital I/O and 15 PWM.
o Arduino Leonardo An ATmega32u4 running at 16 MHz with auto-
reset, 12 Analog In, 20 Digital I/O and 7 PWM.
o Arduino Micro An ATmega32u4 running at 16 MHz with auto-
reset, 12 Analog In, 20 Digital I/O and 7 PWM.
o Arduino Esplora An ATmega32u4 running at 16 MHz with auto-
reset.
o Arduino Mini w/ ATmega328P An ATmega328P running at 16 MHz
with auto-reset, 8 Analog In, 14 Digital I/O and 6 PWM.
o Arduino Ethernet Equivalent to Arduino UNO with an Ethernet
shield: An ATmega328P running at 16 MHz with auto-reset, 6
Analog In, 14 Digital I/O and 6 PWM.
o Arduino Fio An ATmega328P running at 8 MHz with auto-reset.
Equivalent to Arduino Pro or Pro Mini (3.3V, 8 MHz) w/
ATmega328P, 6 Analog In, 14 Digital I/O and 6 PWM.
o Arduino BT w/ ATmega328P ATmega328P running at 16 MHz. The
bootloader burned (4 KB) includes codes to initialize the
on-board Bluetooth® module, 6 Analog In, 14 Digital I/O and
6 PWM..
o LilyPad Arduino USB An ATmega32u4 running at 8 MHz with
auto-reset, 4 Analog In, 9 Digital I/O and 4 PWM.
o LilyPad Arduino An ATmega168 or ATmega132 running at 8 MHz
with auto-reset, 6 Analog In, 14 Digital I/O and 6 PWM.
o Arduino Pro or Pro Mini (5V, 16 MHz) w/ ATmega328P An
ATmega328P running at 16 MHz with auto-reset. Equivalent to
Arduino Duemilanove or Nano w/ ATmega328P; 6 Analog In, 14
Digital I/O and 6 PWM.
o Arduino NG or older w/ ATmega168 An ATmega168 running at 16
MHzwithout auto-reset. Compilation and upload is equivalent
to Arduino Diecimila or Duemilanove w/ ATmega168, but the
6 | Page
COMPUTER PROGRAMMING PART 4
LECTURE HANDOUTS
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
2. Serial.begin(9600);
Serial.println(“Hello World”);
These statements are present in the setup function’s body.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
8 | Page