Top Banner
ARDUINO 1 By Wilmer Arellano
81

ARDUINO 1 By Wilmer Arellano. Arduino Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software.

Dec 22, 2015

Download

Documents

Britney Ray
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: ARDUINO 1 By Wilmer Arellano. Arduino  Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software.

ARDUINO 1

By Wilmer Arellano

Page 2: ARDUINO 1 By Wilmer Arellano. Arduino  Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software.

Arduino

Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software.

It's intended for artists, designers, hobbyists, and anyone interested in creating interactive

objects or environments. http://www.arduino.cc/

Page 3: ARDUINO 1 By Wilmer Arellano. Arduino  Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software.

Arduino

Arduino can sense the environment by receiving input from a variety of sensors and

can affect its surroundings by controlling lights, motors, and other actuators.

The microcontroller on the board is programmed using the Arduino programming language (based on Wiring) and the Arduino development environment (based on Processing).

http://www.arduino.cc/

Page 4: ARDUINO 1 By Wilmer Arellano. Arduino  Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software.

Arduino

If you like processing please visit: http://openprocessing.org/

You can find another interesting software at: http://fritzing.org/ This software allows for easy documenting

and PCB generation of Arduino projects.

Page 5: ARDUINO 1 By Wilmer Arellano. Arduino  Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software.

Arduino

Arduino projects can be stand-alone or they can communicate with software on running on a computer (e.g. Flash, Processing, MaxMSP).

http://www.arduino.cc/

Page 6: ARDUINO 1 By Wilmer Arellano. Arduino  Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software.

Download the latest version from the page: http://arduino.cc/en/Main/Software

Page 7: ARDUINO 1 By Wilmer Arellano. Arduino  Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software.
Page 8: ARDUINO 1 By Wilmer Arellano. Arduino  Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software.

Basics

In the Arduino environment programs are referred to as sketches

http://www.arduino.cc/ http://arduino.cc/en/Reference/

HomePage http://arduino.cc/en/Tutorial/Foundations

Page 9: ARDUINO 1 By Wilmer Arellano. Arduino  Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software.

Basics

Comments /* * Blink * * The basic Arduino example.

Turns on an LED on for one second, * then off for one second, and so on... We use pin 13 because, * depending on your Arduino board, it has either a built-in LED * or a built-in resistor so that you need only an LED. * * http://www.arduino.cc/en/Tutorial/Blink */

// LED connected to digital pin 13

Page 10: ARDUINO 1 By Wilmer Arellano. Arduino  Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software.

Digital / Analog

Page 11: ARDUINO 1 By Wilmer Arellano. Arduino  Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software.

Power

The Arduino Duemilanove can be powered via the USB connection or with an external power supply. The power source is selected automatically. The Arduino Diecimila requires the user to select the power option with a jumper

External (non-USB) power can come either from an AC-to-DC adapter (wall-wart) or battery. The adapter can be connected by plugging a 2.1 mm center-positive plug into the board's power jack. Leads from a battery can be inserted in the Gnd and Vin pin headers of the POWER connector

Page 12: ARDUINO 1 By Wilmer Arellano. Arduino  Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software.

Power

The board can operate on an external supply of 6 to 20 volts. If supplied with less than 7 V, however, the 5 V pin may supply less than five volts and the board may be unstable. If using more than 12 V, the voltage regulator may overheat and damage the board.

The recommended range is 7 to 12 volts.

Page 13: ARDUINO 1 By Wilmer Arellano. Arduino  Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software.

The power pins are as follows: •Vin. The input voltage to the Arduino board when it's using an external power source (as opposed to 5 volts from the USB connection or other regulated power source). You can supply voltage through this pin, or, if supplying voltage via the power jack, access it through this pin. •5V. The regulated power supply used to power the microcontroller and other components on the board. This can come either from Vin via an on-board regulator, or be supplied by USB or another regulated 5V supply. •3V3. A 3.3 volt supply generated by the on-board FTDI chip. Maximum current draw is 50 mA. •GND. Ground pins.

Power connector

USB connector

Vin5V output3V3 output

Arduino Microcontroller Boards13

Page 14: ARDUINO 1 By Wilmer Arellano. Arduino  Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software.

breadboards

A breadboard is used to make up temporary circuits for testing or to try out an idea.

No soldering is required so it is easy to change connections and replace components.

Parts will not be damaged so they will be available to re-use afterwards.

http://www.kpsec.freeuk.com/breadb.htm

Page 15: ARDUINO 1 By Wilmer Arellano. Arduino  Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software.
Page 16: ARDUINO 1 By Wilmer Arellano. Arduino  Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software.
Page 17: ARDUINO 1 By Wilmer Arellano. Arduino  Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software.

Basic Programming

Declare variables at top setup() and loop()

There are two special functions that are a part of every Arduino sketch: setup() and loop(). The setup() is called once, when the sketch

starts. It's a good place to do setup tasks like setting pin modes or initializing libraries.

The loop() function is called over and over and is heart of most sketches.

You need to include both functions in your sketch, even if you don't need them for anything.

Page 18: ARDUINO 1 By Wilmer Arellano. Arduino  Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software.

Basic Programming

void setup() { }

void loop() { }

Page 19: ARDUINO 1 By Wilmer Arellano. Arduino  Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software.
Page 20: ARDUINO 1 By Wilmer Arellano. Arduino  Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software.
Page 21: ARDUINO 1 By Wilmer Arellano. Arduino  Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software.

Variables

You can use variables in a similar way as they are used in math or physics

All variables have to be declared before they are used , and optionally,

set an initial value (initializing the variable).

Page 22: ARDUINO 1 By Wilmer Arellano. Arduino  Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software.

int

Example int ledPin = 13;

Syntax int var = val;

Page 23: ARDUINO 1 By Wilmer Arellano. Arduino  Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software.
Page 24: ARDUINO 1 By Wilmer Arellano. Arduino  Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software.

ASCII Table

Page 25: ARDUINO 1 By Wilmer Arellano. Arduino  Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software.
Page 26: ARDUINO 1 By Wilmer Arellano. Arduino  Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software.
Page 27: ARDUINO 1 By Wilmer Arellano. Arduino  Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software.
Page 28: ARDUINO 1 By Wilmer Arellano. Arduino  Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software.
Page 29: ARDUINO 1 By Wilmer Arellano. Arduino  Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software.
Page 30: ARDUINO 1 By Wilmer Arellano. Arduino  Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software.

/*

* “Hello World!”

* This is the Hello World! for Arduino.

* It shows how to send data to the computer

*/

void setup() // run once, when the sketch starts

{

Serial.begin(9600); // set up Serial library at 9600 bps

Serial.println("Is anybody out there?"); // prints phrase with ending line break

}

void loop() // run over and over again

{

// do nothing!

}

// After sending program to the Arduino, press Reset button on the board and watch Serial monitor

Page 31: ARDUINO 1 By Wilmer Arellano. Arduino  Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software.

Basic Programming

The pinMode() function configures a pin as either an input or an output. To use it: You pass it the number of the pin to

configure and the constant INPUT or OUTPUT. pinMode(11, INPUT); pinMode(13, OUTPUT); 

When configured as an input, a pin can detect the state of a sensor like a pushbutton.

As an output, it can drive an actuator like an LED.

Page 32: ARDUINO 1 By Wilmer Arellano. Arduino  Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software.

Basic Programming

The digitalWrite() functions outputs a value on a pin.

Possible values are: LOW (0 V)or HIGH (5 V)

For example: digitalWrite(13, HIGH); digitalWrite(11, LOW);

Page 33: ARDUINO 1 By Wilmer Arellano. Arduino  Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software.

Basic Programming

The delay() causes the Arduino to wait for the specified number of milliseconds before continuing on to the next line.

There are 1000 milliseconds in a second, so the line: delay(1000);

creates a delay of one second.

Page 34: ARDUINO 1 By Wilmer Arellano. Arduino  Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software.
Page 35: ARDUINO 1 By Wilmer Arellano. Arduino  Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software.

/*  *Blink  *Turns on an LED on for one second, then off for one second, repeatedly.  *The circuit:  * LED connected from digital pin 13 to ground.  * Note: On most Arduino boards, there is already an LED on the board  * connected to pin 13, so you don't need any extra components for this example.    *Created 1 June 2005  *By David Cuartielles  *http://arduino.cc/en/Tutorial/Blink  *based on an orginal by H. Barragan for the Wiring i/o board*/ int ledPin =  13;    // LED connected to digital pin 13 // The setup() method runs once, when the sketch starts void setup()   {                  // initialize the digital pin as an output:  pinMode(ledPin, OUTPUT);     } // the loop() method runs over and over again,// as long as the Arduino has power void loop()                     {  digitalWrite(ledPin, HIGH);   // set the LED on  delay(1000);                  // wait for a second  digitalWrite(ledPin, LOW);    // set the LED off  delay(1000);                  // wait for a second}

Page 36: ARDUINO 1 By Wilmer Arellano. Arduino  Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software.

int ledPin =  13;    // LED connected to digital pin 13 void setup()   {                

  pinMode(ledPin, OUTPUT);     } void loop()                     {  digitalWrite(ledPin, HIGH);   // set the LED on  delay(1000);                  // wait for a second  digitalWrite(ledPin, LOW);    // set the LED off  delay(1000);                  // wait for a second}

Page 37: ARDUINO 1 By Wilmer Arellano. Arduino  Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software.

Fading with digitalWrite

Page 38: ARDUINO 1 By Wilmer Arellano. Arduino  Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software.

delayMicroseconds(us)

us: the number of microseconds to pause (unsigned int)

Example

int outPin = 8; // digital pin 8

void setup() {

pinMode(outPin, OUTPUT); // sets the digital pin as output }

void loop() {

digitalWrite(outPin, HIGH); // sets the pin on

delayMicroseconds(50); // pauses for 50 microseconds

digitalWrite(outPin, LOW); // sets the pin off

delayMicroseconds(50); // pauses for 50 microseconds

}

unsigned intDescriptionOn the Uno and other ATMEGA based boards, unsigned ints (unsigned integers) are the same as ints in that they store a 2 byte value. Instead of storing negative numbers however they only store positive values, yielding a useful range of 0 to 65,535 (2^16) - 1).

Page 39: ARDUINO 1 By Wilmer Arellano. Arduino  Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software.

delayMicroseconds(us)

Caveats and Known IssuesThis function works very accurately in

the range 3 microseconds and up. We cannot assure that delayMicroseconds will perform precisely for smaller delay-times.

Page 40: ARDUINO 1 By Wilmer Arellano. Arduino  Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software.

int ledPin = 9, fadeValue = 128, fading;unsigned int timeOn, timeOff;long period = 30000, repetitions, longTimeOn; // LED connected to digital pin 9

void setup() { pinMode(ledPin, OUTPUT); }

void loop() { longTimeOn = (long) fadeValue*period/255; timeOn = longTimeOn; timeOff = period - timeOn + 1; digitalWrite(ledPin, HIGH); delayMicroseconds(timeOn); digitalWrite(ledPin, LOW); delayMicroseconds(timeOff); }

CastDescriptionThe cast operator translates one variable type into another and forces calculations to be performed in the cast type.Syntax(type)variableParameters

Page 41: ARDUINO 1 By Wilmer Arellano. Arduino  Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software.

int ledPin = 9, fadeValue, fading;unsigned int timeOn, timeOff;long period = 255, repetitions, holdingTime = 30000; // LED connected to digital pin 9void setup() { pinMode(ledPin, OUTPUT); repetitions = holdingTime/period;} void loop() { // fade in from min to max in increments of 5 points: for(fadeValue = 1 ; fadeValue <= 254; fadeValue +=5) { for(fading = 0; fading <= repetitions; fading++){ timeOn = fadeValue; timeOff = period - timeOn; digitalWrite(ledPin, HIGH); delayMicroseconds(timeOn); digitalWrite(ledPin, LOW); delayMicroseconds(timeOff); } } // fade out from max to min in increments of 5 points: for(fadeValue = 254 ; fadeValue >= 1; fadeValue -=5) { for(fading = 0; fading <= repetitions; fading++){ timeOn = fadeValue; timeOff = period - timeOn; digitalWrite(ledPin, HIGH); delayMicroseconds(timeOn); digitalWrite(ledPin, LOW); delayMicroseconds(timeOff); } } }

Page 42: ARDUINO 1 By Wilmer Arellano. Arduino  Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software.

int ledPin = 9, fadeValue, fading;unsigned int timeOn, timeOff;long period = 255, repetitions, holdingTime = 30000; // LED connected to digital pin 9

void setup() { pinMode(ledPin, OUTPUT); repetitions = holdingTime/period;}

void loop() { // fade in from min to max in increments of 5 points: for(fadeValue = 1 ; fadeValue <= 254; fadeValue +=5) { fade(fadeValue); }

// fade out from max to min in increments of 5 points: for(int fadeValue = 254 ; fadeValue >= 1; fadeValue -=5) { fade(fadeValue); } } void fade(int fadeValue){ for(int fading = 0; fading <= repetitions; fading++){ timeOn = fadeValue; timeOff = period - timeOn; digitalWrite(ledPin, HIGH); delayMicroseconds(timeOn); digitalWrite(ledPin, LOW); delayMicroseconds(timeOff); }}

Page 43: ARDUINO 1 By Wilmer Arellano. Arduino  Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software.

Int ledRed = 13; int ledGreen = 11;int ledYellow = 12;

void setup(){  pinMode(ledRed, OUTPUT);      // sets the digital pin as output  pinMode(ledYellow, OUTPUT);      // sets the digital pin as output  pinMode(ledGreen, OUTPUT);      // sets the digital pin as output}

void loop(){  digitalWrite(ledGreen, HIGH);   // sets the Green LED on  delay(1000);                  // waits for a second  digitalWrite(ledGreen, LOW);    // sets the Green LED off  digitalWrite(ledYellow,HIGH);   // sets the Yellow LED on  delay(1000);                  // waits for a second  digitalWrite(ledYellow, LOW);    // sets the Yellow LED off  digitalWrite(ledRed, HIGH);   // sets the Red LED on  delay(1000);                  // waits for a second  digitalWrite(ledRed, LOW);    // sets the Reed LED off}

Page 44: ARDUINO 1 By Wilmer Arellano. Arduino  Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software.

Lots of useful functions pinMode() – set a pin as input or output

digitalWrite() – set a digital pin high/low

digitalRead() – read a digital pin’s state

analogRead() – read an analog pin

analogWrite() – write an “analog” PWM value

delay() – wait an amount of time (ms)

millis() – get the current time

Page 45: ARDUINO 1 By Wilmer Arellano. Arduino  Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software.

Traffic Light Control

Int ledRed = 13; int ledGreen = 11;int ledYellow = 12;

void setup(){  pinMode(ledRed, OUTPUT);      // sets the digital pin as output  pinMode(ledYellow, OUTPUT);      // sets the digital pin as output  pinMode(ledGreen, OUTPUT);      // sets the digital pin as output}

void loop(){  digitalWrite(ledGreen, HIGH);   // sets the Green LED on  delay(1000);                  // waits for a second  digitalWrite(ledGreen, LOW);    // sets the Green LED off  digitalWrite(ledYellow,HIGH);   // sets the Yellow LED on  delay(1000);                  // waits for a second  digitalWrite(ledYellow, LOW);    // sets the Yellow LED off  digitalWrite(ledRed, HIGH);   // sets the Red LED on  delay(1000);                  // waits for a second  digitalWrite(ledRed, LOW);    // sets the Reed LED off}

Page 46: ARDUINO 1 By Wilmer Arellano. Arduino  Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software.

//LED Pin Variables

int ledPins[] = {2,3,4,5,6,7,8,9}; //An array to hold the pin each LED is connected to                                   //i.e. LED #0 is connected to pin 2, LED #1, 3 and so on                                   //to address an array use ledPins[0] this would equal 2                                   //and ledPins[7] would equal 9 /* * setup() - this function runs once when you turn your Arduino on * We the three control pins to outputs */

Page 47: ARDUINO 1 By Wilmer Arellano. Arduino  Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software.

void setup(){    //Set each pin connected to an LED to output mode (pulling high (on) or low (off)  for(int i = 0; i < 8; i++){         //this is a loop and will repeat eight times      pinMode(ledPins[i],OUTPUT); //we use this to set each LED pin to output  }                                   //the code this replaces is below   /* (commented code will not run)   * these are the lines replaced by the for loop above they do exactly the   * same thing the one above just uses less typing  pinMode(ledPins[0],OUTPUT);  pinMode(ledPins[1],OUTPUT);  pinMode(ledPins[2],OUTPUT);  pinMode(ledPins[3],OUTPUT);  pinMode(ledPins[4],OUTPUT);  pinMode(ledPins[5],OUTPUT);  pinMode(ledPins[6],OUTPUT);  pinMode(ledPins[7],OUTPUT);  (end of commented code)*/}

Page 48: ARDUINO 1 By Wilmer Arellano. Arduino  Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software.

void oneAfterAnotherNoLoop(){  int delayTime = 100; //the time (in milliseconds) to pause between LEDs                       //make smaller for quicker switching and larger for slower  digitalWrite(ledPins[0], HIGH);  //Turns on LED #0 (connected to pin 2 )  delay(delayTime);                //waits delayTime milliseconds  digitalWrite(ledPins[1], HIGH);  //Turns on LED #1 (connected to pin 3 )  delay(delayTime);                //waits delayTime milliseconds  digitalWrite(ledPins[2], HIGH);  //Turns on LED #2 (connected to pin 4 )  delay(delayTime);                //waits delayTime milliseconds  digitalWrite(ledPins[3], HIGH);  //Turns on LED #3 (connected to pin 5 )  delay(delayTime);                //waits delayTime milliseconds  digitalWrite(ledPins[4], HIGH);  //Turns on LED #4 (connected to pin 6 )  delay(delayTime);                //waits delayTime milliseconds  digitalWrite(ledPins[5], HIGH);  //Turns on LED #5 (connected to pin 7 )  delay(delayTime);                //waits delayTime milliseconds  digitalWrite(ledPins[6], HIGH);  //Turns on LED #6 (connected to pin 8 )  delay(delayTime);                //waits delayTime milliseconds  digitalWrite(ledPins[7], HIGH);  //Turns on LED #7 (connected to pin 9 )  delay(delayTime);                //waits delayTime milliseconds  

Page 49: ARDUINO 1 By Wilmer Arellano. Arduino  Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software.

//Turns Each LED Off  digitalWrite(ledPins[7], LOW);  //Turns on LED #0 (connected to pin 2 )  delay(delayTime);                //waits delayTime milliseconds  digitalWrite(ledPins[6], LOW);  //Turns on LED #1 (connected to pin 3 )  delay(delayTime);                //waits delayTime milliseconds  digitalWrite(ledPins[5], LOW);  //Turns on LED #2 (connected to pin 4 )  delay(delayTime);                //waits delayTime milliseconds  digitalWrite(ledPins[4], LOW);  //Turns on LED #3 (connected to pin 5 )  delay(delayTime);                //waits delayTime milliseconds  digitalWrite(ledPins[3], LOW);  //Turns on LED #4 (connected to pin 6 )  delay(delayTime);                //waits delayTime milliseconds  digitalWrite(ledPins[2], LOW);  //Turns on LED #5 (connected to pin 7 )  delay(delayTime);                //waits delayTime milliseconds  digitalWrite(ledPins[1], LOW);  //Turns on LED #6 (connected to pin 8 )  delay(delayTime);                //waits delayTime milliseconds  digitalWrite(ledPins[0], LOW);  //Turns on LED #7 (connected to pin 9 )  delay(delayTime);                //waits delayTime milliseconds  }

Page 50: ARDUINO 1 By Wilmer Arellano. Arduino  Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software.

//Turn Each LED on one after another  for(int i = 0; i <= 7; i++){    digitalWrite(ledPins[i], HIGH);  //Turns on LED #i each time this runs i    delay(delayTime);                //gets one added to it so this will repeat   }                                  //8 times the first time i will = 0 the final                                     //time i will equal 7; //Turn Each LED off one after another  for(int i = 7; i >= 0; i--){  //same as above but rather than starting at 0 and counting u                    //p                                //we start at seven and count down    digitalWrite(ledPins[i], LOW);  //Turns off LED #i each time this runs i    delay(delayTime);                //gets one subtracted from it so this will repeat   }                                  //8 times the first time i will = 7 the final                                     //time it will equal 0

Page 51: ARDUINO 1 By Wilmer Arellano. Arduino  Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software.
Page 52: ARDUINO 1 By Wilmer Arellano. Arduino  Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software.

void loop()                     // run over and over again{ motorOnThenOff(); //motorOnThenOffWithSpeed(); //motorAcceleration();}

Page 53: ARDUINO 1 By Wilmer Arellano. Arduino  Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software.

void motorOnThenOff(){  int onTime = 2500;  //the number of milliseconds for the motor to turn on for  int offTime = 1000; //the number of milliseconds for the motor to turn off for    digitalWrite(motorPin, HIGH); // turns the motor On  delay(onTime);                // waits for onTime milliseconds  digitalWrite(motorPin, LOW);  // turns the motor Off  delay(offTime);               // waits for offTime milliseconds}

Page 54: ARDUINO 1 By Wilmer Arellano. Arduino  Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software.

/* * motorOnThenOffWithSpeed() - turns motor on then off but uses speed values as well  * (notice this code is identical to the code we used for * the blinking LED) */void motorOnThenOffWithSpeed(){    int onSpeed = 200;  // a number between 0 (stopped) and 255 (full speed)   int onTime = 2500;  //the number of milliseconds for the motor to turn on for    int offSpeed = 50;  // a number between 0 (stopped) and 255 (full speed)   int offTime = 1000; //the number of milliseconds for the motor to turn off for    analogWrite(motorPin, onSpeed);   // turns the motor On  delay(onTime);                    // waits for onTime milliseconds  analogWrite(motorPin, offSpeed);  // turns the motor Off  delay(offTime);                   // waits for offTime milliseconds}

Page 55: ARDUINO 1 By Wilmer Arellano. Arduino  Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software.

/* * motorAcceleration() - accelerates the motor to full speed then * back down to zero*/void motorAcceleration(){  int delayTime = 50; //milliseconds between each speed step    //Accelerates the motor  for(int i = 0; i < 256; i++){ //goes through each speed from 0 to 255    analogWrite(motorPin, i);   //sets the new speed    delay(delayTime);           // waits for delayTime milliseconds  }    //Decelerates the motor  for(int i = 255; i >= 0; i--){ //goes through each speed from 255 to 0    analogWrite(motorPin, i);   //sets the new speed    delay(delayTime);           // waits for delayTime milliseconds  }}

Page 56: ARDUINO 1 By Wilmer Arellano. Arduino  Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software.

If / else

if/else allows greater control over the flow of code than the basic if statement, by allowing multiple tests to be grouped together. For example, an analog input could be tested and one action taken if the input was less than 500, and another action taken if the input was 500 or greater. The code would look like this:

if (Comparison) { // action A (Comparison true) } else { // action B (Comparison false) }

Page 57: ARDUINO 1 By Wilmer Arellano. Arduino  Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software.

Comparison Operators

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) x == y (x is equal to y) x != y (x is not equal to y)

Page 58: ARDUINO 1 By Wilmer Arellano. Arduino  Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software.

ARDX

Practice examples: 1, 2, 3, 6, 7, 8

Page 59: ARDUINO 1 By Wilmer Arellano. Arduino  Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software.

Button

Pushbuttons or switches connect two points in a circuit when you press them. This example turns on the built-in LED on pin 13 when you press the button.

Page 60: ARDUINO 1 By Wilmer Arellano. Arduino  Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software.

int buttonPin = 2; // the number of the pushbutton pinint ledPin = 13; // the number of the LED pinint buttonState = 0; // variable for reading the pushbutton status

void setup() { pinMode(ledPin, OUTPUT); // initialize the LED pin as an output: pinMode(buttonPin, INPUT); // initialize the pushbutton pin as an input: }

void loop(){ buttonState = digitalRead(buttonPin); // read the state of the pushbutton value:

if (buttonState == HIGH) { // check if the pushbutton is pressed. If it is, the buttonState is HIGH: digitalWrite(ledPin, HIGH); // turn LED on: } else { digitalWrite(ledPin, LOW); // turn LED off: }}

Page 61: ARDUINO 1 By Wilmer Arellano. Arduino  Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software.

Button

The problem with the last program is that the switch has to remain pressed in order for the LED to turn on

We want the LED to change state when we press the button and to stay in the new state when the button is released

Page 62: ARDUINO 1 By Wilmer Arellano. Arduino  Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software.

int buttonPin = 2; // the pin that the pushbutton is attached toint ledPin = 13; // the pin that the LED is attached toint buttonState = 0; // current state of the buttonint lastLEDState = 0; // previous state of the button

void setup() { pinMode(buttonPin, INPUT); // initialize the button pin as a input: pinMode(ledPin, OUTPUT); // initialize the LED as an output:}

void loop() { buttonState = digitalRead(buttonPin); // read the pushbutton input pin: if (buttonState == HIGH) { // Determine if button State is HIGH if (lastLEDState == HIGH) { // if the current state is HIGH then turn LED off digitalWrite(ledPin, LOW); lastLEDState = LOW; } else {// if the current state is LOW then turn LED on digitalWrite(ledPin, HIGH); lastLEDState = HIGH; } while(buttonState == HIGH){ buttonState = digitalRead(buttonPin); // read the pushbutton input pin: }; delay(250); } }

Page 63: ARDUINO 1 By Wilmer Arellano. Arduino  Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software.

Arithmetic Operators

Arithmetic operators include addition, subtraction, multiplication, and division. They return the sum, difference, product, or quotient of two operands.

y = y + 3;

x = x - 7;

i = j * 6;

r = r / 5;

Page 64: ARDUINO 1 By Wilmer Arellano. Arduino  Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software.

/* Math */

int a = 5;

int b = 10;

int c = 20;

void setup()

{

Serial.begin(9600); // set up Serial library at 9600 bps

Serial.println("Here is some math: ");

Serial.print("a = ");

Serial.println(a);

Serial.print("b = ");

Serial.println(b);

Serial.print("c = ");

Serial.println(c);

Serial.print("a + b = "); // add

Serial.println(a + b);

Serial.print("a * c = "); // multiply

Serial.println(a * c);

Serial.print("c / b = "); // divide

Serial.println(c / b);

Serial.print("b - c = "); // subtract

Serial.println(b - c);

}

void loop() // we need this to be here even though its empty

{

}

Run this program.

What do you see on the Serial Monitor?

Replace format “int” with “float”

Run this program again.

What do you see on the Serial Monitor?

Page 65: ARDUINO 1 By Wilmer Arellano. Arduino  Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software.

Playing tones

/*Syntaxtone(pin, frequency)tone(pin, frequency, duration)

Parameterspin: the pin on which to generate the tonefrequency: the frequency of the tone in hertzduration: the duration of the tone in milliseconds (optional) */

int speakerPin = 11;

void setup() {pinMode(speakerPin, OUTPUT);}void loop() {

tone(speakerPin, 262, 1000); // Generate tonedelay(2000);

}

Page 66: ARDUINO 1 By Wilmer Arellano. Arduino  Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software.

Playing tunes

#include "pitches.h"

int speakerPin = 11;int i = 0;int length = 15; // the number of notesint melody[] = {n_C4, n_C4, n_G4, n_G4, n_A4, n_A4, n_G4, n_F4, n_F4, n_E4, n_E4, n_D4, n_D4, n_C4, n_P}; // P represents a restint beats[] = { 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 4 };int tempo = 300;

void setup() {pinMode(speakerPin, OUTPUT);}void loop() {while (i < length) {tone(speakerPin, melody[i],beats[i]*tempo);delay(beats[i]*tempo + tempo / 2); // pause between notesi = i + 1;}}

Page 67: ARDUINO 1 By Wilmer Arellano. Arduino  Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software.

#include

Download and install under Arduino libraries

Pitches

/************************************************* * Public Constants *************************************************/

#define P 0#define B0 31#define C1 33#define CS1 35#define D1 37#define DS1 39#define E1 41#define F1 44#define FS1 46#define G1 49#define GS1 52#define A1 55#define AS1 58#define B1 62#define C2 65#define CS2 69#define D2 73

Page 68: ARDUINO 1 By Wilmer Arellano. Arduino  Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software.

#include "pitches.h"

int speakerPin = 11;int i = 0;int length = 15; // the number of notesint melody[] = {n_C4, n_C4, n_G4, n_G4, n_A4, n_A4, n_G4, n_F4, n_F4, n_E4, n_E4, n_D4, n_D4, n_C4, n_P}; // P represents a restint beats[] = { 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 4 };int tempo = 300;

void setup() {delay(1000);pinMode(speakerPin, OUTPUT);}void loop() {

while (digitalRead(1)&&(i<length)) {// Plays only if pin 1 is HIGHtone(speakerPin, melody[i],beats[i]*tempo);delay(beats[i]*tempo + tempo / 2); // pause between notesi = i + 1;}i=0;}

Page 69: ARDUINO 1 By Wilmer Arellano. Arduino  Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software.

#include "pitches.h"int speakerPin = 11;int i = 0;int length = 15; // the number of notesint melody[] = {n_C4, n_C4, n_G4, n_G4, n_A4, n_A4, n_G4, n_F4, n_F4, n_E4, n_E4, n_D4, n_D4, n_C4, n_P}; // P represents a restint beats[] = { 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 4 };int tempo = 300;

void setup() {delay(1000);pinMode(speakerPin, OUTPUT);pinMode(1, OUTPUT);digitalWrite(1, LOW);}void loop() {

while ((i<length)) {digitalWrite(1, HIGH);tone(speakerPin, melody[i],beats[i]*tempo);delay(beats[i]*tempo + tempo / 2); // pause between notesi = i + 1;}i=0;digitalWrite(1, LOW);}

Page 70: ARDUINO 1 By Wilmer Arellano. Arduino  Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software.
Page 71: ARDUINO 1 By Wilmer Arellano. Arduino  Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software.
Page 72: ARDUINO 1 By Wilmer Arellano. Arduino  Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software.

DE F

BA

G

Page 73: ARDUINO 1 By Wilmer Arellano. Arduino  Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software.
Page 74: ARDUINO 1 By Wilmer Arellano. Arduino  Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software.
Page 75: ARDUINO 1 By Wilmer Arellano. Arduino  Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software.
Page 76: ARDUINO 1 By Wilmer Arellano. Arduino  Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software.
Page 77: ARDUINO 1 By Wilmer Arellano. Arduino  Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software.

Keyboard 1

#include "pitches.h"int speakerPin = 11;int key1 = 1, key2 = 2, key3 = 3;

int melody[] = {0,A4}; int keep_on = 20;int play;

void setup() {pinMode(speakerPin, OUTPUT);pinMode(key1, INPUT);}

void loop() { play = digitalRead(key1); if(play == 1){ tone(speakerPin, melody[key1], keep_on); play = 0; }}

Page 78: ARDUINO 1 By Wilmer Arellano. Arduino  Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software.

#include "pitches.h"int speakerPin = 11;int key1 = 1, key2 = 2, key3 = 3;

int melody[] = {0,A4, B4, C3 }; int keep_on = 20;int play;

void setup() {pinMode(speakerPin, OUTPUT);pinMode(key1, INPUT);pinMode(key2, INPUT);pinMode(key3, INPUT);}

void loop() {

play = digitalRead(key1); if(play == 1){ tone(speakerPin, melody[key1], keep_on); play = 0; } play = digitalRead(key2); if(play == 1){ tone(speakerPin, melody[key2], keep_on); play = 0; } play = digitalRead(key3); if(play == 1){ tone(speakerPin, melody[key3], keep_on); play = 0; }}

Page 79: ARDUINO 1 By Wilmer Arellano. Arduino  Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software.

Voltage measurement

unsigned int voltage1, distance1;

int sensor1 = 0;

void setup()

{

Serial.begin(9600); // setup serial

}

void loop()

{

voltage1 = analogRead(sensor1);

Serial.println(voltage1); // debug value

delay(1000);

}

Page 80: ARDUINO 1 By Wilmer Arellano. Arduino  Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software.

distance = 32/voltageGood for voltage < 2.6 V,distance > 10 cm

Page 81: ARDUINO 1 By Wilmer Arellano. Arduino  Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software.

Voltage measurement

int analogRead(pin) Description

Reads the value from the specified analog pin. The Arduino board contains a 6 channel (8 channels on the Mini and Nano), 10-bit analog to digital converter. This means that it will map input voltages between 0 and 5 volts into integer values between 0 and 1023. This yields a resolution between readings of: 5 volts / 1024 units or, .0049 volts (4.9 mV) per unit. It takes about 100 us (0.0001 s) to read an analog input, so the maximum reading rate is about 10,000 times a second.