Physical Computing with Arduino
While completing these lessons, be sure to check out additional examples and extended readings in the Resources section as well as the lessons and example codes found on the Arduino website to build a stronger understanding of these concepts.
The remainder of this course will require an Arduino kit. If this is not provided by the school, or you would like to purchase your own for at-home use or experimenting after you have completed the course, these kits are open-source and can be purchased online. Kits containing that Arduino Uno board and necessary components usually range form $40-$60.
In P5 the software would be a little forgiving and still function without proper semicolon syntax at the end of lines. However Arduino is not quite as user friendly in that regard. When writing this code you will have to be sure that the appropriate lines end with a semicolon or you will not be able to upload your code to the board.
void vs function
The designation ‘void’ replaces ‘function’ that we have been using in P5
loop vs draw
void loop() in Arduino behaves in the same was as
function draw() in P5
Unlike in P5, you will have to specify the kind of variable you are using in Arduino. The words below all replace
let depending on the data type or behaviors of the variable
used for integer numbers
Used for floating point numbers
Used for values that do not change. You may want to utilize a const if you want to assign the same value to multiple objects in the code and be able to edit them all at one time when the code is not running.
This designation is used when your variable will contain a string
Sets the Arduino’s pins to either transmit or receive data. each pin can only do one or the other at one time.
// arguments: // pinNumber: number designation of the pin you want to set (can be stored as variable) // mode: INPUT or OUTPUT pinMode(pinNumber, mode);
sends data out through a digital pin
// arguments: // pinNumber: number designation of the pin you want to set (can be stored as variable) // state: HIGH or LOW digitalWrite(pinNumber, state);
receives data from a digital pin. values can be stored in a variable.
// arguments: pin number you wish to read // pinNumber: number designation of the pin you want to set (can be stored as variable) //returns: HIGH or LOW digitalRead(pinNumber);
receives data through an analog pin arguments: pin number (A0-A5 on Arduino Uno) values can be stored in a variable.
Sends Pulse Width Modulation data through a PWM compatible pin
//arguments: pin number, value //pin number: certain pins can be used to our put pulse width modulation to control various elements such as leds and motors. On an arduino Uno, those pins are 3, 5, 6, 9, 10, & 11 (on the digital side) //value: PW duty cycle. Range 0-255. 0 is always off, 255 is always on. analogWrite(5, 100);
When you are ready, head to the next page to get Arduino set up on your computer.