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
*/
End of line
Pins:
Unless othersiwse stated, pins are just indicated by numbers such as this indicated pin 13 on the actual board:
Other:
$delay([milliseconds]);
This sets a delay
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:
-
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]);
-
[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
*
* http://arduino.cc/en/Reference/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.
*