This is an old revision of the document!
Arduino Setup
Things you need:
For linux you can run the software from bash or make a script. It is good to do sudo so you have all permissions for ports
After running the program, you can make or upload scripts. then comile and load
This document
many examples in this document show examples of code. Unless in a code box, the examples will start with $ and follow some of hte principals in the linux page on this wiki.
Coding Notes
IDEA!!!!!: Can write examples of if then (etc) operations of what would hapen if, and so on in the comments.
Basic scripts:
void setup() {
}
void loop() {
}
Basic Sytax
No Code
/*
you can write notes that will not be part of the scripte with forward slash star
then star forward slash to end
*/
// You can also do just forward slash, forward slash space for a single line
End of line
Use semicolen at the end of each line, ex:
pinMode(13, OUTPUT);
Pins:
Unless othersiwse stated, pins are just indicated by numbers such as:
pinMode(13, OUTPUT);
delay([milliseconds])
Advanced Syntax
Cast
Cast is a way of converting one type of data, to another type,
such as float to int
([type])[var]
type is things like float or int
var is any variable or constant
Example (to change a float brightness to a int brightness
float bright = sensorValue * (255.0 / 1023.0);
int bint; a way to define an int name, but give no value
* float bflo; define float name, but give no value
bflo = bright; sets what value the float is
* bint = (int)bflo; this is the cast directive
analogWrite(led, bint);
for this example, it would cast the light as an int through a pwm pin and allow it to be an integer between 0-255
==== Before void setup: ====
Before setup you can define things such as int
*
==== void setup ====
More:http://arduino.cc/en/Reference/Setup. “The setup() function is called when a sketch starts. Use it to initialize variables, pin modes, start using libraries, etc. The setup function will only run once, after each powerup or reset of the Arduino board. ”
==== Within the void setup brackets {} ====
Numbers and more etc
* int
* int [var] = x:
* This will define an integer with
* [var]
* name of integer
* x
* Any 16 bit number which is between -32,768 and 32,768.
* If larger see:
* http://arduino.cc/en/Reference/Int
* Can also make x a sensor value or other things ex
* int sensorvalue = analogRead(A0);
*
* float
* float [var] = [val];
* [var]
* name of float
* [val]
* 32bit number meant for decimal point value
*
* long
* long [var] = [val][L]
* for ding larger numbers that are 32bit but integers.
* If doing math with integers, need to have L at end of number
* ex:
* long speedOfLight - 186000L
*
* Before operators:
*
* const
* const [type] [name] = [var]
* A constant will not change, so you can not use operations to change the int or float
*
* unsigned
* unsigned [type] [name] = [var]
* Unsigned will use the bit available per type in only positive.
* for example for int, it will used:0 to 65,535
* instead of -32,768 and 32,768
*
*
* Modes
*
* pinMode([pin], [configuration]);
* http://arduino.cc/en/Tutorial/DigitalPins
* [pin] an be a number, or if defined int earlier, that int definition
* [configuration]
* INPUT
* Requires very little impedence to take an input
* OUTPUT
* Send 40mA of curent
* Note: it is a good idea to connect OUTPUT pins to other devices with 470Ω or 1k resistors, unless maximum current draw from the pins is required for a particular application. “
* INPUT_PULLUP
* This needs more explanation but basically changes the ohm resistance for better? or Varied? inputs
*
* digitalWrite([pin], [value])
* [pin]
* number of pin, or constant
* [value]
* HIGH
* sends 5V (3.3V on 3.3V Boards)
* Low
* sends 0V
*
* digitalRead([pin])
* will read whatever value is active on [pin], often set is INPUT
* may need to
*
* analogRead([pin])
* Will give an analog read between 0-1023 (10bit)
*
* if else
* if ([if formula])
* {
* then do this
}
else {
then do this
* }
* Do not need else forumla as it will follow after if
* can do:
* else if ([if then formula)
* {
* Then do this
}
and chain together other paremiters, but be sure to end with basic else
Do not need else, but watch out
x == y (x is equal to y) !!! important to use 2 equals
x != y (x is not equal to y)
x < y (x is less than y)
x > y (x is greater than y)
x ⇐ y (x is less than or equal to y)
x >= y (x is greater than or equal to y)
[equation] || [equation] (|| equals OR)
! (equals NOT)
&& (equals AND)
Serial
-
Some pins are auto serial (kinda like the auto 5V or GND)
But you can define a pin with:
Serial.[options]([var]);
[options]
.begin
Will beging sending output via the serial port at whatever baud rate. ex:
Serial.begin(9600)
Note: This only initializes the serial communication so you most likely want to put it in the setup area.
.println
This will send the serial the variablable. Such as:
Serial.println([varialbe])
Note: the variable here is not a pin, it needs to be something like an actual number, letter (
ASCII) or an int defined somewhere else.
.print(”[text]“)
in this option, it will print text within the parenthesis
[baud]
The baud rate of the signal. Usually 9600
Readouts
millis()
will return the ammount of millisconds since the prgrams has started
Glossery:
PWM = Pulse width modulation. Basically an analog modulation variable that sends an analog signal
It can set the modulation at 8bit or 0-255. ex:
analogWrite(127) which is about half.