Arduino 1 - PowerPoint PPT Presentation

arduino 1 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Arduino 1 PowerPoint Presentation
play fullscreen
1 / 68
Arduino 1
223 Views
Download Presentation
lucita
Download Presentation

Arduino 1

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. Arduino 1 Under Development

  2. 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/

  3. 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/

  4. 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/

  5. Download the latest version from the page: • http://arduino.cc/en/Main/Software • Download the latest version from the page: • http://www.ftdichip.com/Drivers/VCP.htm

  6. 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

  7. 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

  8. Digital / Analog

  9. 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

  10. 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.

  11. Arduino Microcontroller Boards • 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. USB connector Power connector 3V3 output 5V output Vin

  12. Arduino Microcontroller Boards

  13. 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

  14. Programming Primerhttp://ardx.org/src/circ/CIRC00-sheet-SOLA.pdf

  15. Programming Primerhttp://ardx.org/src/circ/CIRC00-sheet-SOLA.pdf

  16. /* * “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

  17. Programming Primerhttp://ardx.org/src/circ/CIRC00-sheet-SOLA.pdf

  18. Programming Primerhttp://ardx.org/src/circ/CIRC00-sheet-SOLA.pdf

  19. Programming Primerhttp://ardx.org/src/circ/CIRC00-sheet-SOLA.pdf

  20. Programming Primerhttp://ardx.org/src/circ/CIRC00-sheet-SOLA.pdf

  21. Programming Primerhttp://ardx.org/src/circ/CIRC00-sheet-SOLA.pdf

  22. 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.

  23. 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);

  24. 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.

  25. http://arduino.cc/en/Tutorial/Blink // The setup() method runs once, when the sketch starts void setup() { // initialize the digital pin as an output: pinMode(13, OUTPUT); } // the loop() method runs over and over again, // as long as the Arduino has power void loop() { digitalWrite(13, HIGH); // set the LED on delay(1000); // wait for a second digitalWrite(13, LOW); // set the LED off delay(1000); // wait for a second }

  26. 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).

  27. int • Integers are your primary datatype for number storage, and store a 2 byte value. This yields a range of -32,768 to 32,767 (minimum value of -2^15 and a maximum value of (2^15) - 1). • Int's store negative numbers with a technique called 2's complement math. The highest bit, sometimes refered to as the "sign" bit, flags the number as a negative number. The rest of the bits are inverted and 1 is added.

  28. int • Example • int ledPin = 13; • Syntax • int var = val; • Syntax • int var; // value will be assign later

  29. http://arduino.cc/en/Tutorial/Blink 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 }

  30. char • A data type that takes up 1 byte of memory that stores a character value. Character literals are written in single quotes, like this: 'A' (for multiple characters - strings - use double quotes: "ABC"). • Characters are stored as numbers however. You can see the specific encoding in the ASCII chart.

  31. ASCII Table

  32. char • The char datatype is a signed type, meaning that it encodes numbers from -128 to 127. For an unsigned, one-byte (8 bit) data type, use the byte data type. • Example • char myChar = 'A'; • char myChar = 65; // both are equivalent

  33. char • It is possible to do arithmetic on characters, in which the ASCII value of the character is used (e.g. 'A' + 1 has the value 66, since the ASCII value of the capital letter A is 65). See Serial.println reference for more on how characters are translated to numbers.

  34. byte • A byte stores an 8-bit unsigned number, from 0 to 255. • Example • byte b = B10010; // "B" is the binary formatter (B10010 = 18 decimal)

  35. unsigned int • 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).

  36. unsigned int • Example • unsigned int ledPin = 13; • Syntax • unsigned int var = val; • var - your unsigned int variable name • val - the value you assign to that variable

  37. long • long – long variables are extended size variables for number storage, and store 32 bits (4 bytes), from −2,147,483,648 to 2,147,483,647. • unsigned long – unsigned long variables are extended size variables for number storage, and store 32 bits (4 bytes). Unlike standard longs unsigned longs won't store negative numbers, making their range from 0 to 4,294,967,295

  38. float / double • float – datatype for floating-point numbers, a number that has a decimal point. They are often used to approximate analog and continuous values because they have greater resolution than integers. Floating-point numbers can be as large as 3.4028235E+38 and as low as −3.4028235E+38. They are stored as 32 bits (4 bytes) of information. • double – double precision floating point number. Occupies 4 bytes. The double implementation on the Arduino is currently exactly the same as the float, with no gain in precision.

  39. 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

  40. Traffic Light Control IntledRed= 13; intledGreen = 11;intledYellow = 12; void setup(){pinMode(ledRed, OUTPUT);      // sets the digital pin as outputpinMode(ledYellow, OUTPUT);      // sets the digital pin as outputpinMode(ledGreen, OUTPUT);      // sets the digital pin as output} void loop(){digitalWrite(ledGreen, HIGH);   // sets the Green LED on  delay(1000);                  // waits for a seconddigitalWrite(ledGreen, LOW);    // sets the Green LED offdigitalWrite(ledYellow,HIGH);   // sets the Yellow LED on  delay(1000);                  // waits for a seconddigitalWrite(ledYellow, LOW);    // sets the Yellow LED offdigitalWrite(ledRed, HIGH);   // sets the Red LED on  delay(1000);                  // waits for a seconddigitalWrite(ledRed, LOW);    // sets the Reed LED off}

  41. 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) • }

  42. 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)

  43. 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.

  44. int buttonPin = 2; // the number of the pushbutton pin int ledPin = 13; // the number of the LED pin int 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: } }

  45. 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

  46. int buttonPin = 2; // the pin that the pushbutton is attached to int ledPin = 13; // the pin that the LED is attached to int buttonState = 0; // current state of the button int 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); } }

  47. 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;