288x Filetype PDF File size 0.18 MB Source: static.igem.org
Coding Workshop
Learning to Program with an Arduino
Lecture Notes
Table of Contents
Programming
Introduction
Values
Assignment
Arithmetic
Control
Tests
If Blocks
For Blocks
Functions
Arduino Main Functions
Arduino Hardware Functions
How?
I Programming doesn’t have to be scary, in fact much easier
than French or Spanish!
I With just a few keywords, should be able to write many
simple programs
I Here’s an example of a simple program:
print("Hello, World!")
I It consists of a function, print( ) ,andavalue,
"Hello, World!" ; we will come back to these later
I It is written in a popular and fairly easy language, python; We
encourage you to learn this if you gain an interest in coding!
How?
I The Arduino uses a slightly stricter language, a dialect of
C++
I The patterns you learn here will in fact work in many
languages (‘C-like’ languages, which unfortunately does not
include python)
I Don’t worry if you don’t take everything in first time round!
Wehave provided a cheat sheet, and there are some exercises
for you to try which should help you put these concepts into
practice
I Hopefully you will come to realise that writing programs is
just breaking down tasks into simple instructions so that a
stupid computer can repeat them; In reality you do not need
to know much to write any program, as computers do not
understand many di↵erent instructions, and only a very few
are actually necessary
C++Values
I Values are items of data, and in C++ it is quite important to
explicitly distinguish between di↵erent types of data
I Most important are numbers; there are two main types:
I Whole numbers, known as int ; e.g. 3 , -4
I Decimal numbers, known as float ; e.g. 3.0 , 2.71
I We will also need truth values, known as bool ,i.e. true
and false
I In an earlier example you also met textual data; we shouldn’t
need it here but we refer to single letters/numbers/etc as
char , e.g. ’%’ , and blocks of text as char[] , e.g.
"Hello, World!"
Assignment
I Believe it or not, you’re almost ready to program!
I Firstly, it will be nice to be able to remember values; we do
this through assignment:
I Let’s analyse a simple example, int x = 7;
I First note that we had to declare what type of value x is;
Computers are a bit stupid, and so sometimes we have to help
them along a bit
I This is also why we include a semicolon; Though languages
can di↵er in the way they’re written, most have punctuation to
indicate the end of an instruction or statement
I We can now use x to refer to 7 whenever we like!
I We can also change x at any time, in this way the = sign
di↵ers from maths– x = 42; –note that we have now changed
the value of x , also note that the computer has already been
told that x is a whole number, and it doesn’t like to be told
twice!
Manipulating Values
I Computers excel at arithmetic and decisions, and almost all
computation is simple combinations of these
I Arithmetic is achieved as simply as using the following four
symbols: + , - , * , / , with parentheses where appropriate!
I Computers are quite strict, and dividing whole numbers will
give you the quotient, you can get the remainder with %
I Continuing on with our example, let’s try to find the product
of 7 and 6:
int x = 7;
int y = 6;
x = x * y;
I You may wonder whether the last line makes sense... In
algebra this would mean y =1orx = 0, but here the = sign
means assignment, so the computer first works out the answer
on the right, and then assigns it to the name on the left
Conditions and Control
I The last thing we need to be able to write any program is the
ability to make decisions
I We will consider two decision making structures or blocks:
if and for (there are others but they don’t really do
anything else)
I if lets you decide whether to run a block of code (set of
statements) based on a previous result, for example if x is
even; it is often accompanied by else which runs a di↵erent
block otherwise
I for lets you run a block of code multiple times, ‘for every
time that something is true’, though it is easier to think of as
doing something for every number in a given range
no reviews yet
Please Login to review.