0
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心
发布
  • 发文章

  • 发资料

  • 发帖

  • 提问

  • 发视频

创作活动
LAB-13109

LAB-13109

  • 厂商:

    SPARKFUNELECTRONICS

  • 封装:

  • 描述:

    INVENTOR'S KIT LAB PACK V3.2

  • 数据手册
  • 价格&库存
LAB-13109 数据手册
0 ~3 1 RX 7 2 TX ~6 ~5 4 8 ) SC SC L AR A E GN F D 13 1 ~1 2 ~1 1 0 ~9 8 9 ~ V ~ N D 7 IG 6 IT ~ AL ~5 (P 4 W 3 M ~ O Version 3.2 EF 10 . K C ~ 11 A H ~ 12 . P ET T 13 R TX A A H L SC A SD EF AR ND G 13 RX E L . N S E R IS ES SE N ER VI IOR RE W D IN V V 3V T 3. SE GN PO D AN A5 G OR M ON 15 15 F RE RE GN A1 A4 AL O A3 1 3for the SparkFun RedBoard Your guide to the SparkFun Inventor’s Kit RX TX TF LA EN PM LO VE DE GE UA NG LA INO DU DIG I TA L( PW M~ ) AR TP 7- 7- IO 5V A0 A2 T SIK GUIDE SE RE Table of Contents Welcome to the SparkFun Inventor’s Guide The SparkFun Inventor's Guide is your map for navigating the waters of beginning embedded electronics. This booklet contains all the information you will need to explore the 16 circuits of the SparkFun Inventor's Kit for Educators. At the center of this manual is one core philosophy - that anyone can (and should) play around with electronics. When you're done with this guide, you'll have the know-how to start creating your own projects and experiments. Now enough talking - let's get inventing! www.sparkfun.com Section 1: Getting Started What is the RedBoard platform? 2 Download Arduino Software (IDE) 4 Install Drivers 5 Select your board: Arduino Uno 8 Download “SIK Guide Code” 9 Section 2: Getting Started with Circuits The World Runs on Circuits 10 Inventory of Parts 12 RedBoard 14 Breadboard 16 Circuit #1 - Your First Circuit: Blinking a LED 18 Circuit #2 - Potentiometer 25 Circuit #3 - RGB LED 29 Circuit #4 - Multiple LEDs 33 Circuit #5 - Push Buttons 37 Circuit #6 - Photo Resistor 41 Circuit #7 - Temperature Sensor 45 Circuit #8 - A Single Servo 49 Circuit #9 - Flex Sensor 53 Circuit #10 - Soft Potentiometer 57 Circuit #11 - Piezo Buzzer 61 Circuit #12 - Spinning a Motor 65 Circuit #13 - Relay 69 Circuit #14 - Shift Register 73 Circuit #15 - LCD 77 Circuit #16 - Simon Says 81 Page 1 What is the RedBoard platform? The DIY Revolution We live in a unique time where we have access to resources that allow us to create our own solutions and inventions. The DIY revolution is composed of hobbyists, tinkerers and inventors who would rather craft their own projects than let someone do it for them. www.sparkfun.com A Computer for the Physical World The RedBoard in your hand (or on your desk) is your development platform. At its roots, the RedBoard is essentially a small portable computer. It is capable of taking inputs (such as the push of a button or a reading from a light sensor) and interpreting that information to control various outputs (like a blinking LED light or an electric motor). That's where the term "physical computing" is born this board is capable of taking the world of electronics and relating it to the physical world in a real and tangible way. Trust us - this will all make more sense soon. RedBoard 7-15V IOREF FPO FPO 13 TX RX The SparkFun RedBoard is one of a multitude of development boards based on the ATmega328. It has 14 digital input/output pins (6 of which can be PWM outputs), 6 analog inputs, a 16 MHz crystal oscillator, a USB connection, a power jack, an ISP header, and a reset button. Don’t worry, you’ll learn about all these later. RESET // SparkFun RedBoard RESET 5V GND VIN POWER GND A0 A1 A3 Page 2 ISP A5 ON A4 ANALOG IN A2 DIGITAL (PWM~) LEARN. SHARE. HACK. 3.3V SCL SDA AREF GND 13 12 ~11 ~10 ~9 8 7 ~6 ~5 4 ~3 2 TX 1 RX 0 c b a d h RedBoard e g f a Bug Zapper Counter d Camera Time-lapse operation g Auto-Coffee Maker b Old Toy Email Notifer e Auto-Plant Watering h Quadcopter c Power-Lacing High Tops f Re-Programmed Traffic Light Page 3 Download the Arduino IDE (Integrated Development Environment) Access the Internet NW N In order to get your RedBoard up and running, you'll need to download the newest version of the Arduino software first from www.arduino.cc (it's free!). This software, known as the Arduino IDE, will allow you to program the board to do exactly what you want. It’s like a word processor for writing programs. With an internet-capable computer, open up your favorite browser and type in the following URL into the address bar: NE W E SE S SW arduino.cc/en/main/software 1 Click on your appropriate computer operating system next to the “ + ” sign. Windows Download Windows Mac OS X Mac OS X Linux: 32 bit, 64 bit Linux:source 32 bit, 64 bit user ••••••••• Choose the appropriate Operating System installation package for your computer. Page 4 // Connect your RedBoard to your Computer Use the USB cable provided in the SIK kit to connect the RedBoard to one of your computer’s USB inputs. 715 V IO F RE RE 3V T 3. SE 5V T N ER VI W D SE GN PO D RE GN A0 A1 13 N . . 10 K ~ C 11 A ~ H 12 . E R A H S IN A5 G L SC A SD EF AR ND G 13 TX E L RX R A O A4 AL A3 AN A2 ~ 9 P 8 O N TX RX D 7 IG 6 TI A ~ 5 L ~ 4 (P W 3 M ~ ~ 2 ) 1 IS 0 3 2 // Install Arduino Drivers Depending on your computer’s operating system, you will need to follow specific instructions. Please go to www.sparkfun.com/FTDI for specific instructions on how to install the FTDI drivers onto your RedBoard. Page 5 // Open the Arduino IDE: Open the Arduino IDE software on your computer. Poke around and get to know the interface. We aren’t going to code right away, this is just an introduction. This step is to set your IDE to identify your RedBoard. 1 2 7 8 9 Page 6 3 4 5 6 GUI (Graphical User Interface) 1 Verify: Compiles and approves your code. It will catch errors in syntax (like missing semi-colons or parenthesis). // See Diagram Below 2 Upload: Sends your code to the RedBoard. When you click it, you should see the lights on your board blink rapidly. // See Diagram Below 3 New: This buttons opens up a new code window tab. 4 Open: This button will let you open up an existing sketch. // See Diagram Below 5 Save: This saves the currently active sketch. 6 Serial Monitor: This will open a window that displays any serial information your RedBoard is transmitting. It is very useful for debugging. 7 Sketch Name: This shows the name of the sketch you are currently working on. 8 Code Area: This is the area where you compose the code for your sketch. 9 Message Area: This is where the IDE tells you if there were any errors in your code. // The three most important commands for this guide are seen below: Open Verify Upload Page 7 4 // Select your board: Arduino Uno Note: // Select your Serial Device Your SparkFun RedBoard and the Arduino UNO are interchangeable but you won’t find the RedBoard listed in the Arduino Software. Select “Arduino UNO” instead. Select the serial device of the RedBoard from the Tools | Serial Port menu. This is likely to be com3 or higher (COM1 and COM2 are usually reserved for hardware serial ports). To find out, you can disconnect your RedBoard and re-open the menu; the entry that disappears should be the RedBoard. Reconnect the board and select that serial port. Select the serial device of the RedBoard from the Tools > Serial Port menu. On the Mac, this should be something with /dev/tty.usbmodem or /dev/tty.usbserial in it. http://www.arduino.cc/playground/Learning/Linux Page 8 Download Arduino Code (For use with the circuits in this guide) 5 Type in the following URL to download the code: // Copy “SIK Guide Code” into “Examples” library in Arduino folder sparkfun.com/sikcode Start Unzip the file “SIK Guide Code”. It should be located in your browser’s “Downloads” folder. Right click the zipped folder and choose “unzip”. Programs arduino examples Copy the “SIK Guide Code” folder into Arduino’s folder named “examples”. Contents Resources Unzip the file “SIK Guide Code”. It should be loacted in your browser’s “Downloads” folder. Right click the zipped folder and choose “unzip”. Find “Arduino” in your applications folder. Right click(ctrl + click) on “Arduino”. Select “Show Package Contents”. Java examples Copy the “SIK Guide Code” folder into Arduino’s folder named “examples”. http://www.arduino.cc/playground/Learning/Linux WHAT’S NEXT? Read on to learn more about getting started with circuits. Then you can start on your first circuit on page 17! Page 9 Getting Started with Circuits What is an Electrical Circuit? A circuit is basically an electrical loop with a starting point and an ending point - with any number of components in between. Circuits can include resistors, diodes, inductors, sensors of all sizes and shapes, motors, and any other handful of hundreds of thousands of components. Circuits are usually divided into three categories - analog circuits, digital circuits, or mixed-signal circuits. In this guide, you will explore all three sets of circuits. The World Runs on Circuits: Everywhere you look, you'll find circuits. The cell phone in your pocket, the computer that controls your car's emissions system, your video game console - all these things are chock full of circuits. In this guide, you'll experiment with some simple circuits and learn the gist of the world of embedded electronics. // Simple and Complex Circuits In this guide, you will be primarily exploring simple circuits - but that doesn't mean you can't do amazing things with simple tools! When you've finished the SIK, your knowledge of circuits will enable you to explore amazing projects and unleash the power of your imagination. Page 10 a b c d e 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 a b c d e f g h i f g h i 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 Page 11 Inventory of Parts LED (5mm) Jumper Wire x30 x5 330Ω Resistor x25 x5 x5 x5 * ACTUAL SIZE x1 * ACTUAL SIZE x25 Diode (1N4148) x1 * ACTUAL SIZE x2 Piezo Buzzer Photo Resistor x1 x1 Transistor (TMP36) P2N2 222A A18 Temp. Sensor (P2N2222AG) FRONT x1 DC Motor FRONT BACK x2 Push Button x1 + 10KΩ Resistor Potentiometer Page 12 - (Light Emitting Diode) Various Colors x4 BACK Flex Sensor SparkFun RedBoard RESET x1 7-15V Soft Potentiometer 13 TX RX IOREF RESET 5V GND VIN POWER GND A0 A1 A2 A3 ISP A5 7 ~6 ~5 4 ~3 2 TX 1 RX 0 ON A4 ANALOG IN x1 DIGITAL (PWM~) LEARN. SHARE. HACK. 3.3V Servo SCL SDA AREF GND 13 12 ~11 ~10 ~9 8 x1 Breadboard Standard Solderless (Color may vary) x1 a b c d e Integrated Circuit Relay (IC) x1 x1 LCD x1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 a b c d e f g h i f g h i 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 x1 Page 13 RESET 2 1 8 7-15V 13 TX RX IOREF RESET 5V 10 VIN POWER GND A0 A1 A3 Page 14 ISP A5 7 9 ON A4 ANALOG IN A2 DIGITAL (PWM~) LEARN. SHARE. HACK. 3.3V GND SCL SDA AREF 3 4 5 GND 13 12 ~11 ~10 ~9 8 7 ~6 ~5 4 ~3 2 TX 1 RX 0 6 SparkFun RedBoard 1 Power In (Barrel Jack) - Can be used with either a 9V or 12V wall-wart or battery. 2 Power In (USB Port) - Provides power and communicates with your board when plugged into your computer via USB. LED (RX: Receiving) - This shows when the FTDI chip is receiving data bits from the microcontroller. This happens when the microcontroller is 3 sending data bits back to the computer. LED (TX: Transmitting) - This shows when the FTDI chip is transmitting data bits to the microcontroller. This happens when the 4 microcontroller is receiving this data from the computer. 5 LED (Pin 13: Troubleshooting) - This LED is incorporated into your sketch to show if your program is running properly. 6 Pins (ARef, Ground, Digital, Rx, Tx) - These various pins can be used for inputs, outputs, power, and ground. // See Diagram Below 7 LED (Indicates RedBoard is ON) - This is a simple power indicator LED. 8 Reset Button - This is a way to manually reset your RedBoard, which makes your code restart. 9 ICSP Pins (Uploading Code without Bootloader) - This is for "In-Circuit Serial Programming," used if you want to bypass the bootloader. 10 Pins (Analog In, Power In, Ground, Power Out, Reset) - These various pins can be used for inputs, outputs, power, and ground. // See Diagram 11 RFU - This pin is reserved for future use. // Pins Diagram The header pins are one of the most important parts for putting our example circuits together. Take a moment and locate the input/output ports of your RedBoard. SCL SDA ARef 11 RFU IOREF Reset Power Out Power Out Ground Ground 10 Power In Ground Digital Digital Digital Digital Digital Digital 6 Digital Digital Analog Digital Analog Digital Analog Digital Analog Digital Analog TX - Out Analog RX - In = PWM/Analog out compatible (i.e. ) Page 15 1 2 a b c d e 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 a b c d e f g h i f g h i 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 This line divides the board in half, restricting electricity to one half or the other. Page 16 Breadboard 1 Vertical Connection (+ Power and - Ground) - Power bus // See Diagram Below 2 Horizontal Connection (a-e & f-j) // See Diagram Below) Making a Connection: Above the breadboard LED How’s it all connected? CONNECTED! a b c d e 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 a b c d e f g h i f g h i 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 Power: Each + sign runs power anywhere in the vertical column. Ground: Each - sign runs to ground anywhere in the vertical column. Inside the breadboard Horizontal Rows: Each of these rows numbered 1-30 are comprised of five horizontal sockets. Components placed in the same row will be connected in a circuit when power is running. View of the inside Page 17 CIRCUIT #1 - Your First Circuit How It Works: ASSEMBLE WRITE UPLOAD Make sure the text on the RedBoard and breadboard are facing up so you can read them. a b c d e RESET 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 7-15V 13 TX RX IOREF RESET 5V GND VIN POWER GND A0 A1 A3 TX RX ISP A5 ON A4 ANALOG IN A2 SCL SDA AREF GND 13 12 ~11 ~10 ~9 8 DIGITAL (PWM~) LEARN. SHARE. HACK. 3.3V 7 ~6 ~5 4 ~3 2 1 0 f g h i a b c d e 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 f g h i Connect the USB cable. Screw the RedBoard down and into place. 715 V IO RE F RE 5V 3V T 3. SE GN PO WE R A0 T N SE VI D RE D GN A1 A2 13 X T AN LE N AR .S K. AC ~ 12 .H RE HA ~ 11 10 ~ 9 DIG 8 7 ~ I TA 6 ~ PW L( 5 4 ~ M~ AL OG IN A5 RX A4 L SC A SD EF AR ND G 13 A3 3 ISP ON ) 2 TX 1 RX 0 Peel sticker off back of breadboard and stick into place. Your RedBoard runs on 5V. This is the power that will be supplied from your computer via USB and will be the driving force behind any components you use in your circuits. By plugging your RedBoard into your computer, you are supplying it with just the right voltage it needs to thrive! 5V can’t hurt you, so don’t be afraid to touch anything in your circuit. You can also power the RedBoard through the barrel jack. The on-board voltage regulator can handle anything from 7 to 15VDC. Page 18 Circuit 2 Blinking an LED PIN 13 RedBoard 1 LEDs (light-emitting diodes) are small, powerful lights that are used in many different applications. To start off the SIK, we will work on blinking an LED. That's right - it's as simple as turning a light on and off. It might not seem like much, but establishing this important baseline will give you a solid foundation as we work toward more complex experiments. LED (Light-Emitting Diode) Resistor (330 ohm) (Orange-Orange-Brown) Each circuit begins with a brief description of the what you are putting together and the expected result. GND (Ground) PARTS: This is a schematic of your circuit. LED 330Ω Resistor Wire 1 X X 1 3 X This section lists the parts you will need to complete the circuit. 715 V IO F RE RE 5V 3V T 3. SE SE T W N ER VI D PO D RE GN GN A0 A1 L SC A SD EF AR ND G 13 RX A TX E L 13 . ~ . 10 K 11 C A ~ H 12 . E R A S H IN A5 G N R A4 AL O A3 AN A2 ~ 9 P 8 D 7 I 6 IG T ~ AL ~5 (P 4 W 3 M ~ ~ 2 IS O N ) TX 1 RX 0 This is an illustration of how the completed circuit should look. It is not necessary to use the black holder for the RedBoard and breadboard, but we recommend it for the first time inventor! Components like resistors need to have their legs bent into 90° angles in order to correctly fit the breadboard sockets. You can also cut the legs shorter to make them easier to work with on the breadboard. Page 19 Page 20 A5 13 TX RX A4 A3 POWER A2 A1 A0 VIN GND GND 5V 3.3V RESET IOREF 7-15V Circuit 1: Blinking an LED SCL SDA AREF GND 13 12 ~11 ~10 ~9 8 RESET 7 ~6 ~5 4 ~3 2 TX 1 RX 0 DIGITAL (PWM~) ON LEARN. SHARE. HACK. ISP ANALOG IN 1 2 3 4 5 6 7 330Ω Resistor: The color banding 8 should read orange-or9 ange-brown-gold. The compo10 nent legs can go in either hole. 11 12 13 14 15 16 17 18 19 20 21 22 Jumper Wire: All jumper wires work the same. They are used to 23 24 connect two points together. This guide will show the wires with different 25 colored insulations for clarity, but using 26 different combinations of colors is 27 completely acceptable. 28 29 30 a b c d e f g h i f g h i 1 2 3 4 5 LED: Make sure the short leg,6 marked with flat side, goes into 7 the negative position (-). 8 9 10 11 12 13 14 Flat Edge 15 16 17 18 Short Leg 19 20 21 22 23 24 25 26 27 28 29 30 a b c d e Page 21 Breadboard: The white background represents a connection to a breadboard socket specified by a letter-number coordinate such as e2. These coordinates are merely suggestions that align with the graphic image. “Pin 13” on the RedBoard connects to socket “e2” on the breadboard. e2 Pin 13 Jumper Wire RedBoard: The red background represents a connection to one of the RedBoard header pins. “5V” on the RedBoard connects to the row marked “+” on the breadboard. “GND” on the RedBoard should be connected to the row marked “-” on the breadboard. Resistors are placed in breadboard sockets only. The “-” symbol represents any socket in its vertical column on the Power bus. + a3 - + a3 GND c3 c2 5V + Jumper Wire - Components like LEDs are inserted into the breadboard sockets c2(long leg) c3(short leg). Steps highlighted with a yellow warning triangle represent a polarized component. Pay special attention to the component’s markings indicating how to place it on the breadboard. GND Image Reference: Jumper Wire 330Ω Resistor LED (5mm) Component: Open Your First Sketch: Open Up the Arduino IDE software on your computer. Coding in the Arduino language will control your circuit. Open the code for Circuit 1 by accessing the “SIK Guide Code” you downloaded and placed into your “Examples” folder earlier. File Edit Sketch Tools New Open... Sketchbook Examples Close Save Save As... Upload Upload Using Progammer Page Setup Print Help 1.Basics 2.Digital 3.Analog 4.Communication 5.Control 6.Sensors 7.Displays 8.Strings ArduinoISP SIK Guide Code Circuit Circuit Circuit Circuit Circuit Circuit Circuit Circuit Circuit Circuit Circuit Circuit Circuit Circuit Circuit Circuit EEPROM Ethernet Firmata Liquid Crystal SD Servo SoftwareSerial SPI Stepper Wire #1 #2 #3 #4 #5 #6 #7 #8 #9 #10 #11 #12 #13 #14 #15 #16 // Circuit #1 Circuit #1 /* Blink Turns on an LED on for one second, then off for one second, repeatedly. This example code is in the public domain. */ void setup() { // initialize the digital pin as an output. // Pin 13 has an LED connected on most Arduino boards: pinMode(13, OUTPUT); } void loop() { digitalWrite(13, HIGH); delay(1000); digitalWrite(13, LOW); delay(1000); } Page 22 // // // // set the LED on wait for a second set the LED off wait for a second Verify This compiles your code. The IDE changes it from text into instructions the computer can understand. Upload This sends the instructions via the USB cable to the computer chip on the RedBoard. The RedBoard will then begin running your code automatically. // The result of a completed circuit with correct code after verified and uploaded. V 15 7- 3V 3. F RE IO SET RE RE SE T P 5V D O W GN D E R GN N VI A0 LE AR .S N IN AR H AC H K. IS P O N 12 11 ~ 0 1 ~ 9 ~ 8 D 7 IG 6 IT ~ AL ~5 (P 4 W 3 M ~ ~ 2 ) 1 E. A5 L SC A SD EF AR ND G 13 A4 TX 13 R1X3 T TX RX X AN A1 AL O A2 G A3 RX 0 Page 23 1 This is where you will find the Arduino code for each circuit. Arduino Code: Circuit 2 Open Arduino IDE // File > Examples > SIK Guide > Circuit # 1 Code to Note: Remember to Verify and Upload your code. Begin to understand how the Arduino code works. See below. pinMode(13, OUTPUT); Before you can use one of the RedBoard's pins, you need to tell the RedBoard whether it is an INPUT or OUTPUT. We use a built-in "function" called pinMode() to do this. digitalWrite(13, HIGH); When you're using a pin as an OUTPUT, you can command it to be HIGH (output 5 volts), or LOW (output 0 volts). What you Should See: See if your circuit is complete and working in this section. V 15 7- You should see your LED blink on and off. If it isn't, make sure you have assembled the circuit correctly and verified and uploaded the code to your board or see the troubleshooting tips below. F RE IO SET RE V 3 3. 5V PO RE SE T D W GN D E R GN N VI A0 A1 N AR LE IN H A5 .S A4 L SC A SD EF AR ND G 13 A3 AR E. H K AC . O N 12 11 ~ 0 1 ~ 9 ~ 8 D 7 IG 6 IT ~ 5 A ~ L (P 4 W 3 M ~ ~ 2 ) 1 IS P RX 13 R1X3 T TX RX X AN AL O G A2 Here you will find examples of the circuit you just completed in the real world. Many of the theories in these circuits are used in things you use everyday! TX 0 This is a section dedicated to the most common mistakes made while assembling the circuit. Troubleshooting: Real World Application: LED Not Lighting Up? LEDs will only work in one direction. Try taking it out and twisting it 180 degrees (no need to worry, installing it backward does no permanent harm). Almost all modern flat screen televisions and monitors have LED indicator lights to show they are on or off. Program Not Uploading This happens sometimes, the most likely cause is a confused serial port, you can change this in tools>serial port> Still No Success? A broken circuit is no fun, send us an e-mail and we will get back to you as soon as we can: techsupport@sparkfun.com Page 24 Circuit 2 CIRCUIT #5 #2 Potentiometer PIN 13 RedBoard In this circuit you’ll work with a potentiometer. A potentiometer is also known as a variable resistor. When it’s connected with 5 volts across its two outer pins, the middle pin outputs a voltage between 0 and 5, depending on the position of the knob on the potentiometer. A potentiometer is a perfect demonstration of a variable voltage divider circuit. The voltage is divided proportionate to the resistance between the middle pin and the ground pin. In this circuit, you’ll learn how to use a potentiometer to control the brightness of an LED. 5 volt LED (Light-Emitting Diode) Potentiometer PIN A0 RedBoard Resistor (330 ohm) (Orange-Orange-Brown) 2 PARTS: GND (Ground) IC Potentiometer LED X 330Ω Resistor 1 X Wire 18 X 18 19 6 X 715 V IO F RE RE 5V 3V T 3. SE SE T W N ER VI D PO D GN RE GN A0 A1 L SC A SD EF AR ND G 13 A TX E RX L 13 . H S IN A5 G R N A4 AL O A3 AN A2 A ~ 10 K . 11 C A ~ H 12 . R E ~ 9 P 8 O N TX RX D 7 IG 6 IT ~ 5 A ~ L (P 4 W 3 M ~ ~ 2 ) 1 IS 0 p.10 Page 25 Page 26 A5 13 TX RX A4 A3 POWER A2 A1 A0 VIN GND GND 5V 3.3V RESET IOREF 7-15V Circuit 2: Potentiometer SCL SDA AREF GND 13 12 ~11 ~10 ~9 8 RESET 7 ~6 ~5 4 ~3 2 TX 1 RX 0 DIGITAL (PWM~) ON LEARN. SHARE. HACK. ISP ANALOG IN 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 a b c d e a b c d e f g h i f g h i 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 Page 27 A0 j20 + Pin 5V13 GND 5V GND Jumper Wire Jumper Wire e8 Jumper Wire Jumper Wire e7 + e6 Jumper Wire Jumper Wire + h20 h21 j21 + 330Ω Resistor - a8 a7 a6 - Image Reference: + LED (5mm) Potentiometer Component: 0 volts off or 5 volts on HIGH ANALOG 0 0 volts to 1023 5 volts But there are also a lot of things out there that aren't just "on" or "off". Temperature levels, control knobs, etc. all have a continuous range of values between HIGH and LOW. For these situations, the RedBoard offers six analog inputs that translate an input voltage into a number that ranges from 0 (0 volts) to 1023 (5 volts). The analog pins are perfect for measuring all those "real world" values, and allow you to interface the RedBoard to all kinds of things. DIGITAL LOW Many of the devices you'll interface to, such as LEDs and pushbuttons, have only two possible states: on and off, or as they're known to the RedBoard, "HIGH" (5 volts) and "LOW" (0 volts). The digital pins on an RedBoard are great at getting these signals to and from the outside world, and can even do tricks like simulated dimming (by blinking on and off really fast), and serial communications (transferring data to another device by encoding it as patterns of HIGH and LOW). If you look closely at your RedBoard, you'll see some pins labeled "DIGITAL", and some labeled "ANALOG". What's the difference? Digital versus Analog: 2 Arduino Code: Circuit 2 Open Arduino IDE // File > Examples > SIK Guide > Circuit # 2 Code to Note: int sensorValue; A “variable” is a stored value you’ve given a name to. You must introduce, or "declare" variables before you use them; here we're declaring a variable called sensorValue, of type "int" (integer). Don't forget that variable names are case-sensitive! We use the analogRead() function to read the value on an analog pin. analogRead() takes one parameter, the analog pin you want to use ("sensorPin"), and returns a number ("sensorValue") between 0 (0 volts) and 1023 (5 volts). sensorValue = analogRead(sensorPin); delay(sensorValue); The Arduino is very very fast, capable of running thousands of lines of code each second. To slow it down so that we can see what it's doing, we'll often insert delays into the code. delay() counts in milliseconds; there are 1000 ms in one second. What you Should See: VV 1155 77-- FF RREE I OI O S EETT S RREE VV 33 33.. P RRE ESS EET T P 55VV D O W D GGNN D ER D GGNN NN VVII A0 A1 A LE .S IN H AR E. H 88 O N TTXX 7 DD I 7 6 I GG 6 IITTA ~~ 5 A LL ~~5 ((PP 44 WW M ~33 M~ ~ 2 ~) 2 ) 11 IS P K. AC A5 RN A4 RRXX LL SSCC A A SSDD E FF E AARR N DD GG N 1 33 1 1122 1 11 ~~ 1 00 1 ~~ 1 99 ~~ A3 11 3 RR1X3 3 T TX X R XTXX AN AL O G A2 You should see the LED blink faster or slower in accordance with your potentiometer. If it isn't working, make sure you have assembled the circuit correctly and verified and uploaded the code to your board or see the troubleshooting tips below. 00 Troubleshooting: Real World Application: Sporadically Working This is most likely due to a slightly dodgy connection with the potentiometer's pins. This can usually be conquered by holding the potentiometer down. Most traditional volume knobs employ a potentiometer. Not Working Make sure you haven’t accidentally connected the wiper, the resistive element in the potentiometer, to digital pin 0 rather than analog pin 0. (the row of pins beneath the power pins). LED Not Lighting Up? LEDs will only work in one direction. Try taking it out and twisting it 180 degrees (no need to worry, installing it backward does no permanent harm). Page 28 Circuit 2 CIRCUIT #3 RGB LED PIN 11 PIN 10 RedBoard 3 You know what’s even more fun than a blinking LED? Changing colors with one LED. RGB, or red-green-blue, LEDs have three different color-emitting diodes that can be combined to create all sorts of colors. In this circuit, you’ll learn how to use an RGB LED to create unique color combinations. Depending on how bright each diode is, nearly any color is possible! PIN 9 Resistors (330 ohm) (Orange-Orange-Brown) RED GREEN BLUE LED (Light-Emitting Diode) PARTS: GND (Ground) LED IC Potentiometer 330Ω Transistor LED Wire 330Ω Resistor P2N2222AG Resistor 1 X X 1 X 38 X 1X6 X 8 715 V IO F RE RE 5V 3V T 3. SE SE T W N ER VI D PO D RE GN GN A0 A1 L SC A SD EF AR ND G 13 RX TX E A L 13 . ~ . 10 K 11 C A ~ H 12 . E R A H S IN A5 G N R A4 AL O A3 AN A2 ~ 9 P 8 D 7 I 6 IG T ~ AL ~5 (P 4 W 3 M ~ ~ 2 IS O N ) TX 1 RX 0 red blue green common p.10 Page 29 Page 30 A5 13 TX RX A4 A3 POWER A2 A1 A0 VIN GND GND 5V 3.3V RESET IOREF 7-15V Circuit 3: RGB LED SCL SDA AREF GND 13 12 ~11 ~10 ~9 8 RESET 7 ~6 ~5 4 ~3 2 TX 1 RX 0 DIGITAL (PWM~) ON LEARN. SHARE. HACK. ISP ANALOG IN * The longest lead is the common(gnd). 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 a b c d e a b c d e f g h i f g h i 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 Page 31 e7 e1 g71 5V Pin 9 330Ω Resistor Jumper Wire h7 + Pin 10 Pin 11 5V GND Jumper Wire Jumper Wire Jumper Wire h6 e5 Jumper Wire Jumper Wire g61 e6 e7 e1 5V 330Ω Resistor h4 e4 e1 g41 e7 a4 a5 a6 a7 5V Image Reference: 330Ω Resistor RGB LED (5mm) Component: LOW (0 volts) HIGH (5 volts) LOW (0 volts) HIGH (5 volts) LOW (0 volts) HIGH (5 volts) 90% 50% 10% 10% 50% 90% 4.5V 2.5V 0.5V The RedBoard is so fast that it can blink a pin on and off almost 1000 times per second. PWM goes one step further by varying the amount of time that the blinking pin spends HIGH vs. the time it spends LOW. If it spends most of its time HIGH, a LED connected to that pin will appear bright. If it spends most of its time LOW, the LED will look dim. Because the pin is blinking much faster than your eye can detect, the RedBoard creates the illusion of a "true" analog output. The answer is no... and yes. The RedBoard does not have a true analog voltage output. But, because the RedBoard is so fast, it can fake it using something called PWM ("Pulse-Width Modulation"). The pins on the RedBoard with “~” next to them are PWM/Analog out compatible. We've seen that the Arduino can read analog voltages (voltages between 0 and 5 volts) using the analogRead() function. Is there a way for the RedBoard to output analog voltages as well? The shocking truth behind analogWrite(): 3 Arduino Code: Circuit 2 Open Arduino IDE // File > Examples > SIK Guide > Circuit # 3 Code to Note: A for() loop is used to step a number across a range, and repeatedly runs code within the brackets {}. Here the variable "x" starts a 0, ends at 767, and increases by one each time ("x++"). for (x = 0; x < 768; x++) {} if (x Examples > SIK Guide > Circuit # 7 Code to Note: Before using the serial monitor, you must call Serial.begin() to initialize it. 9600 is the "baud rate", or communications speed. When two devices are communicating with each other, both must be set to the same speed. Serial.begin(9600); The Serial.print() command is very smart. It can print out almost anything you can throw at it, including variables of all types, quoted text (AKA "strings"), etc. Serial.print(degreesC); See http://arduino.cc/en/serial/print for more info. Serial.print() will print everything on the same line. Serial.println() will move to the next line. By using both of these commands together, you can create easy-to-read printouts of text and data. Serial.println(degreesF); What You Should See: V 15 7- F RE IO SET RE V 3 3. L SC A SD EF AR ND G 13 LE AR N .S H AR H AC K. IS P O N 12 11 ~ 0 1 ~ 9 ~ 8 D 7 IG 6 IT ~ 5 A ~ L (P 4 W 3 M ~ ~ 2 ) 1 E. IN A5 X 13 R1X3 T TX RX X A4 RX RE SE T A0 A1 AN AL O G A3 deg C: 23.24 deg F: 73.84 deg C: 23.24 deg F: 73.84 deg C: 23.24 deg F: 73.84 deg C: 22.75 deg F: 72.96 deg C: 23.24 deg F: 73.84 deg C: 23.24 deg F: 73.84 deg C: 23.24 deg F: 73.84 deg C: 22.75 deg F: 72.96 deg C: 23.24 deg F: 73.84 deg C: 22.75 deg F: 72.96 deg C: 22.75 deg F: 72.96 deg C: 23.24 deg F: 73.84 deg C: 22.75 deg F: 72.96 deg C: 23.24 T deg F: 73.84 P 5V D O W GN D E R GN N VI voltage: 0.73 voltage: 0.73 voltage: 0.73 voltage: 0.73 voltage: 0.73 voltage: 0.73 voltage: 0.73 voltage: 0.73 voltage: 0.73 voltage: 0.73 voltage: 0.73 voltage: 0.73 voltage: 0.73 voltage: 0.73 A2 You should be able to read the temperature your temperature sensor is detecting on the serial monitor in the Arduino IDE. If it isn't working, make sure you have assembled the circuit correctly and verified and uploaded the code to your board or see the troubleshooting tips below. 0 Troubleshooting: Real World Application: Nothing Seems to Happen This program has no outward indication it is working. To see the results you must open the Arduino IDE's serial monitor (instructions on previous page). Building climate control systems use a temperature sensor to monitor and maintain their settings. Gibberish is Displayed This happens because the serial monitor is receiving data at a different speed than expected. To fix this, click the pull-down box that reads "*** baud" and change it to "9600 baud". Temperature Value is Unchanging Try pinching the sensor with your fingers to heat it up or pressing a bag of ice against it to cool it down. Page 48 Circuit 2 CIRCUIT #8 A Single Servo Servos are ideal for embedded electronics applications because they do one thing very well that motors cannot – they can move to a position accurately. By varying the pulse width of the output voltage to a servo, you can move a servo to a specific position. For example, a pulse of 1.5 milliseconds will move the servo 90 degrees. In this circuit, you’ll learn how to use PWM (pulse width modulation) to control and rotate a servo. No junction dot means no connection 5 volt W SIG PIN 9 R V+ RedBoard B GND 8 PARTS: GND (Ground) Servo Wire X 1 X 8 715 V IO F RE RE 5V 3V T 3. SE SE T W N ER VI D PO D RE GN GN A0 A1 L SC A SD EF AR ND G 13 RX A TX E L 13 . ~ . 10 K 11 C A ~ H 12 . E R A H S IN A5 G N R A4 AL O A3 AN A2 ~ 9 P 8 D 7 I 6 IG T ~ AL ~5 4 W 3 M ~ ~ 2 IS (P O N ) TX 1 RX 0 Page 49 Page 50 A5 13 TX RX A4 A3 POWER A2 A1 A0 VIN GND GND 5V 3.3V RESET IOREF 7-15V Circuit 8: A Single Servo SCL SDA AREF GND 13 12 ~11 ~10 ~9 8 RESET 7 ~6 ~5 4 ~3 2 TX 1 RX 0 DIGITAL (PWM~) ON LEARN. SHARE. HACK. ISP ANALOG IN 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 a b c d e a b c d e f g h i f g h i 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 Page 51 5V GND Jumper Wire a6 Jumper Wire Jumper Wire b5 Jumper Wire + + e7 Jumper Wire Pin 9 e6 Jumper Wire Jumper Wire e5 Jumper Wire a7 e5 e6 e7 Image Reference: Servo Component: Tools Help Show Sketch Folder Add File... Import Library Verify / Compile Edit Sketch EEPROM Ethernet Firmata LiquidCrystal SD Servo SoftwareSerial SPI Stepper Wire After importing the library into your code, you will have access to a number of pre-written commands and functions. More information on how to use the standard library functions can be accessed at: http://arduino.cc/en/Reference/Libraries. File To use a library in a sketch, select it from Sketch > Import Library. But anyone can create a library, and if you want to use a new sensor or output device, chances are that someone out there has already written one that interfaces that device to the RedBoard. Many of SparkFun's products come with Arduino libraries, and you can find even more using Google and the Arduino Playground at http://arduino.cc/playground/. When YOU get the RedBoard working with a new device, consider making a library for it and sharing it with the world! See http: //arduino.cc/en/reference/libraries for a list of the standard libraries and information on using them. Libraries are collections of new commands that have been packaged together to make it easy to include them in your sketches. Arduino comes with a handful of useful libraries, such as the servo library used in this example, that can be used to interface to more advanced devices (LCD displays, stepper motors, ethernet ports, etc.) The Arduino development environment gives you a very useful set of built-in commands for doing basic input and output, making decisions using logic, solving math problems, etc. But the real power of Arduino is the huge community using it and their willingness to share their work. Expand your horizons using Libraries: 8 Arduino Code: Circuit 2 Open Arduino IDE // File > Examples > SIK Guide > Circuit # 8 Code to Note: #include is a special "preprocessor" command that inserts a library (or any other file) into your sketch. You can type this command yourself, or choose an installed library from the "sketch / import library" menu. #include Servo servo1; servo1.attach(9); The servo library adds new commands that let you control a servo. To prepare the Arduino to control a servo, you must first create a Servo "object" for each servo (here we've named it "servo1"), and then "attach" it to a digital pin (here we're using pin 9). V 15 7- 3V 3. F RE IO SET RE The servos in this kit don't spin all the way around, but they can be commanded to move to a specific position. We use the servo library's write() command to move a servo to a specified number of degrees(0 to 180). Remember that the servo requires time to move, so give it a short delay() if necessary. RE SE T P 5V D O W GN D E R GN N VI servo1.write(180); A0 A1 LE N .S IN AR H AC H K. IS P O N TX 12 11 ~ 0 1 ~ 9 ~ 8 D 7 IG 6 IT ~ AL ~5 P( W 4 3 M ~ ~ 2 ) 1 E. A5 AR A4 RX L SC A SD EF AR ND G 13 A3 0 You should see your servo motor move to various locations at several speeds. If the motor doesn't move, check your connections and make sure you have verified and uploaded the code, or see the troubleshooting tips below. 13 R1X3 T TX RX X AN AL O G A2 What You Should See: Troubleshooting: Real World Application: Servo Not Twisting Even with colored wires it is still shockingly easy to plug a servo in backward. This might be the case. Robotic arms you might see in an assembly line or sci-fi movie probably have servos in them. Still Not Working A mistake we made a time or two was simply forgetting to connect the power (red and brown wires) to +5 volts and ground. Fits and Starts If the servo begins moving then twitches, and there's a flashing light on your RedBoard, the power supply you are using is not quite up to the challenge. Using a wall adapter instead of USB should solve this problem. Page 52 CIRCUIT #9 Flex Sensor In this circuit, we will use a flex sensor to measure, well, flex! A flex sensor uses carbon on a strip of plastic to act like a variable resistor, but instead of changing the resistance by turning a knob, you change it by flexing (bending) the component. We use a "voltage divider" again to detect this change in resistance. The sensor bends in one direction and the more it bends, the higher the resistance gets; it has a range from about 10K ohm to 35K ohm. In this circuit we will use the amount of bend of the flex sensor to control the position of a servo. 5 volt Resistor (10K ohm) (Brown-Black-Orange) W SIG PIN 9 R V+ PIN A0 RedBoard B GND Flex Sensor PARTS: GND (Ground) Flex IC Sensor Potentiometer Servo LED 330Ω10KΩ Resistor Resistor 11 X X X 8 X 1 9 Wire X 8 X1 X 11 715 V IO F RE RE 5V 3V T 3. SE SE T W N ER VI D PO D GN RE GN A0 A1 L SC A SD EF AR ND G 13 13 . A H S IN A5 G N R A TX E RX L A4 AL O A3 AN A2 R ~ . 10 K 11 C A ~ H 12 E . ~ 9 P 8 O N TX RX D 7 IG 6 IT ~ 5 A ~ L (P 4 W 3 M ~ ~ 2 ) 1 IS 0 Page 53 Page 54 A5 13 TX RX A4 A3 POWER A2 A1 A0 VIN GND GND 5V 3.3V RESET IOREF 7-15V Circuit 9: Flex Sensor SCL SDA AREF GND 13 12 ~11 ~10 ~9 8 RESET 7 ~6 ~5 4 ~3 2 TX 1 RX 0 DIGITAL (PWM~) ON LEARN. SHARE. HACK. ISP ANALOG IN 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 a b c d e a b c d e f g h i f g h i 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 Page 55 e3 h19 h20 i20 i24 i19 Jumper Wire Flex Sensor 10KΩ Resistor Jumper Wire GND + 5V Jumper Wire Jumper Wire a3 a2 + h24 Jumper Wire Pin 9 b1 + h24 Jumper Wire Jumper Wire h24 + Jumper Wire j20 e2 Jumper Wire A0 e1 Jumper Wire Jumper Wire e1 e2 e3 Image Reference: Servo Component: for (x = 1 ; x < 9 ; x++) { Serial.print(x); } 12345678 And if you run the code again, you'll see the output you wanted: 01234567 Let's say you wanted a for() loop from 1 to 8, but your code just doesn't seem to be working right. Just add Serial.begin(9600); to your setup() function, and add a Serial.print() or println() to your loop: You wanted 1 to 8, but the loop is actually giving you 0 to 7. Whoops! Now you just need to fix the loop. for (x = 0; x < 8; x++) { Serial.print(x); } The key to visibility into a microcontroller is output. This can be almost anything, including LEDs and buzzers, but one of the most useful tools is the serial monitor. Using Serial.print() and println(), you can easily output human-readable text and data from the RedBoard to a window back on the host computer. This is great for your sketch's final output, but it's also incredibly useful for debugging. It happens to everyone - you write a sketch which successfully compiles and uploads, but you can't figure out why it's not doing what you want it to. Larger computers have screens, keyboards, and mice that you can use to debug your code, but tiny computers like the RedBoard have no such things. Debugging your sketches using the Serial Monitor: 9 Arduino Code: Circuit 2 Open Arduino IDE // File > Examples > SIK Guide > Circuit # 9 Code to Note: servoposition = map(flexposition, 600, 900, 0, 180); map(value, fromLow, fromHigh, toLow, toHigh) Because the flex sensor / resistor combination won't give us a full 0 to 5 volt range, we're using the map() function as a handy way to reduce that range. Here we've told it to only expect values from 600 to 900, rather than 0 to 1023. servoposition = constrain(servoposition, 0, 180); constrain(x, a, b) Because map() could still return numbers outside the "to" range, we'll also use a function called constrain() that will "clip" numbers into a range. If the number is outside the range, it will make it the largest or smallest number. If it is within the range, it will stay the same. What You Should See: V 15 7- F RE IO SET RE V 3 3. N VI RE SE T P 5V D O W GN D E R GN A0 A1 LE .S N IN H AR K. AC IS P O N 12 11 ~ 0 1 ~ 9 ~ 8 D 7 IG 6 IT ~ 5 A ~ L (P 4 W 3 M ~ ~ 2 ) 1 H E. A5 AR A4 TX L SC A SD EF AR ND G 13 A3 RX 13 R1X3 T TX RX X AN AL O G A2 You should see the servo motor move in accordance with how much you are flexing the flex sensor. If it isn't working, make sure you have assembled the circuit correctly and verified and uploaded the code to your board or see the troubleshooting tips below. 0 Troubleshooting: Real World Application: Servo Not Twisting Even with colored wires it is still shockingly easy to plug a servo in backwards. This might be the case. Controller accessories for video game consoles like Nintendo’s “Power Glove” use flex-sensing technology. It was the first video game controller attempting to mimic hand movement on a screen in real time. Servo Not Moving as Expected The sensor is only designed to work in one direction. Try flexing it the other way (where the striped side faces out on a convex curve). Servo Doesn’t Move very Far You need to modify the range of values in the call to the map() function. Page 56 Circuit 2 CIRCUIT #5 #10 Soft Potentiometer RedBoard In this circuit, we are going to use yet another kind of variable resistor – this time, a soft potentiometer (or soft pot). This is a thin and flexible strip that can detect where pressure is being applied. By pressing down on various parts of the strip, you can vary the resistance from 100 to 10K ohms. You can use this ability to track movement on the soft pot, or simply as a button. In this circuit, we’ll get the soft pot up and running to control an RGB LED. PIN 11 PIN 10 5 volt RedBoard PIN 9 Resistors (330 ohm) (Orange-Orange-Brown) Soft Pot PIN A0 RED GREEN BLUE Resistor (10K ohm) (Brown-Black-Orange) 10 LED (Light-Emitting Diode) PARTS: GND (Ground) LED IC 330Ω LED Soft Potentiometer Resistor X 1 X 1 X 330Ω Resistor Wire 330Ω Resistor 318 9 X X 10KΩ Resistor 8 X 3 X 1 715 V IO F RE RE 5V 3V T 3. SE SE T W N ER VI D PO D GN RE GN A0 A1 L SC A SD EF AR ND G 13 13 . A H S IN A5 G N R A TX E RX L A4 AL O A3 AN A2 R ~ . 10 K 11 C A ~ H 12 E . ~ 9 P 8 O N TX RX D 7 IG 6 IT ~ 5 A ~ L (P 4 W 3 M ~ ~ 2 ) 1 IS 0 Page 57 Page 58 A5 13 TX RX A4 A3 POWER A2 A1 A0 VIN GND GND 5V 3.3V RESET IOREF 7-15V Circuit 10: Soft Potentiometer SCL SDA AREF GND 13 12 ~11 ~10 ~9 8 RESET 7 ~6 ~5 4 ~3 2 TX 1 RX 0 DIGITAL (PWM~) ON LEARN. SHARE. HACK. ISP ANALOG IN 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 a b c d e a b c d e f g h i f g h i 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 Page 59 Jumper Wire Jumper Wire A0 Pin 11 Jumper Wire Jumper Wire Pin 10 Jumper Wire Jumper Wire Jumper Wire j20 j19 j18 h7 h6 e5 h4 + g71 e7 e1 5V 330Ω Resistor Pin 9 e6 e1 g61 e7 5V 330Ω Resistor i19 e4 e1 g41 e7 5V 330Ω Resistor 10KΩ Resistor h18 h19 h20 a4 a5 a6 a7 5V Image Reference: Soft Potentiometer RGB LED (5mm) Component: Jumper Wire Jumper Wire Component: Image Reference: GND 5V + 10 Arduino Code: Circuit 2 Open Arduino IDE // File > Examples > SIK Guide > Circuit # 10 Code to Note: These big, scary functions take a single Value (RGBposition) and calculate the three RGB values necessary to create a rainbow of color. The functions create three "peaks" for the red, green, and blue values, which overlap to mix and create new colors. See the code for more information! Even if you're not 100% clear how it works, you can copy and paste this (or any) function into your own code and use it yourself. If you want to know more about creating your own functions - take a look at circuit #11. redValue = constrain(map(RGBposition, 0, 341, 255, 0), 0, 255) + constrain(map(RGBposition, 682, 1023, 0, 255), 0, 255); greenValue = constrain(map(RGBposition, 0, 341, 0, 255), 0, 255) - constrain(map(RGBposition, 341, 682, 0,255), 0, 255); blueValue = constrain(map(RGBposition, 341, 682, 0, 255), 0, 255) - constrain(map(RGBposition, 682, 1023, 0, 255), 0, 255); What You Should See: V 15 7- You should see the RGB LED change colors in accordance with how you interact with the soft potentiometer. If it isn't working, make sure you have assembled the circuit correctly and verified and uploaded the code to your board, or see the troubleshooting tips below. 3V 3. F RE IO SET RE RE SE T PO 5V W D GN D E R GN N VI A0 A1 LE .S N IN H A5 AR A4 L SC A SD EF AR ND G 13 A3 AR E. H K AC . O N 12 11 ~ 0 1 ~ 9 ~ 8 D 7 IG 6 IT ~ AL ~5 (P 4 W 3 M ~ ~ 2 ) 1 IS P TX 13 R1X3 T TX RX X AN AL O G A2 RX 0 Troubleshooting: Real World Application: LED Remains Dark or Shows Incorrect Color With the four pins of the LED so close together, it’s sometimes easy to misplace one. Try double checking each pin is where it should be. The knobs found on many objects, like a radio for instance, are using similar concepts to the one you just completed for this circuit. Bizarre Results The most likely cause of this is if you’re pressing the potentiometer in more than one position. This is normal and can actually be used to create some neat results. Page 60 Circuit 2 CIRCUIT #11 Piezo Buzzer 11 In this circuit, we'll again bridge the gap between the digital world and the analog world. We'll be using a buzzer that makes a small "click" when you apply voltage to it (try it!). By itself that isn't terribly exciting, but if you turn the voltage on and off hundreds of times a second, the buzzer will produce a tone. And if you string a bunch of tones together, you've got music! This circuit and sketch will play a classic tune. We'll never let you down! Piezo Buzzer RedBoard PIN 9 PARTS: GND (Ground) Piezo Buzzer Wire X 1 3 X 715 V IO F RE RE 5V 3V T 3. SE SE T W N ER VI D PO D GN RE GN A0 A1 13 R N . A H S IN A5 G L SC A SD EF AR ND G 13 A LO A4 TX E RX L A A3 AN A2 R ~ . 10 K 11 C A ~ H 12 E . ~ 9 P 8 O N TX RX D 7 IG 6 IT ~ 5 A ~ L (P 4 W 3 M ~ ~ 2 ) 1 IS 0 If the buzzer doesn't easily fit into the holes on the breadboard, try rotating it slightly. Page 61 Page 62 A5 13 TX RX A4 A3 POWER A2 A1 A0 VIN GND GND 5V 3.3V RESET IOREF 7-15V Circuit 11: Piezo Buzzer SCL SDA AREF GND 13 12 ~11 ~10 ~9 8 RESET 7 ~6 ~5 4 ~3 2 TX 1 RX 0 DIGITAL (PWM~) ON LEARN. SHARE. HACK. ISP ANALOG IN 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 a b c d e a b c d e f g h i f g h i 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 Page 63 Pin 9 GND Jumper Wire Jumper Wire i7 Jumper Wire + f9 Image Reference: Piezo Buzzer Component: j9 - f7 return(x); When you write your own functions, you make your code neater and easier to re-use. See http://arduino.cc/en/reference/functiondeclaration for more information about functions. If your function is returning a value from your function, put the type of the return value in front of the function name. Then in your function, when you're ready to return the value, put in a return(value) statement. If you won't be returning a value, put "void" in front of the function name (similar to the declaration for the setup() and loop() functions). If you'll be passing parameters to your function, put them (and their types) in the parentheses after the function name. If your function is not using any parameters, just use an empty parenthesis () after the name. Your functions can take in values ("parameters"), and return a value, as this one does. } x = parameter1 + parameter2; int add(int parameter1, int parameter2) { int x; Arduino contains a wealth of built-in functions that are useful for all kinds of things. (See http://arduino.cc/en/reference for a list). But you can also easily create your own functions. First, we need to declare a function. Here's a simple example named "add," which adds two numbers together and returns the result. Let's break it down. Creating your own functions: 11 Arduino Code: Circuit 2 Open Arduino IDE // File > Examples > SIK Guide > Circuit # 11 Code to Note: Up until now we've been working solely with numerical data, but the Arduino can also work with text. Characters (single, printable, letters, numbers and other symbols) have their own type, called "char". When you have an array of characters, it can be defined between double-quotes (also called a "string"), OR as a list of single-quoted characters. char notes[] = "cdfda ag cdfdg gf "; char names[] = {'c','d','e','f','g','a','b','C'}; One of Arduino's many useful built-in commands is the tone() function. This function drives an output pin at a certain frequency, making it perfect for driving buzzers and speakers. If you give it a duration (in milliseconds), it will play the tone then stop. If you don't give it a duration, it will keep playing the tone forever (but you can stop it with another function, noTone() ). tone(pin, frequency, duration); What You Should See: V 15 7- F RE IO SET RE V 3 3. 5V PO RE SE T D W GN D E R GN N VI A0 A1 LE H .S IN .H AC K. IS P O N 12 11 ~ 0 1 ~ 9 ~ 8 D 7 IG 6 IT ~ 5 A ~ L (P 4 W 3 M ~ ~ 2 ) 1 E AR A5 N AR A4 TX L SC A SD EF AR ND G 13 A3 RX 13 R1X3 T TX RX X AN AL O G A2 You should see - well, nothing! But you should be able to hear a song. If it isn't working, make sure you have assembled the circuit correctly and verified and uploaded the code to your board or see the troubleshooting tips below. 0 Troubleshooting: Real World Application: No Sound Given the size and shape of the piezo buzzer it is easy to miss the right holes on the breadboard. Try double checking its placement. Many modern megaphones have settings that use a loud amplified buzzer. They are usually very loud and quite good at getting people’s attention. Can't Think While the Melody is Playing Just pull up the piezo buzzer whilst you think, upload your program then plug it back in. Feeling Let Down and Deserted The code is written so you can easily add your own songs. Page 64 12 Circuit 2 CIRCUIT #12 Spinning a Motor 5 volt Diode (1N4148) Remember before when you played around with a servo motor? Now we are going to tackle spinning a motor. This requires the use of a transistor, which can switch a larger amount of current than the RedBoard can. When using a transistor, you just need to make sure its maximum specs are high enough for your use. The transistor we are using for this circuit is rated at 40V max and 200 milliamps max – perfect for our toy motor! When the motor is spinning and suddenly turned off, the magnetic field inside it collapses, generating a voltage spike. This can damage the transistor. To prevent this, we use a "flyback diode", which diverts the voltage spike around the transistor. DC Motor RedBoard PIN 9 Transistor (P2N2222AG) Resistor (330 ohm) (Orange-Orange-Brown) Transistor Diode P2N2222AG X When you’re building the circuit be careful not to mix up the transistor and the temperature sensor, they’re almost identical. Look for “P2N2222A” on the body of the transistor. DC Motor 1N4148 1 X 1 Wire X 1 330Ω Resistor X 6 X 1 EMITTER BASE P2N2 222A PARTS: GND (Ground) COLLECTOR FRONT COLLECTOR BASE EMITTER BACK 715 V IO F RE RE 5V 3V T 3. SE SE T W N ER VI D PO D RE GN GN A0 A1 L SC A SD EF AR ND G 13 RX A TX E L 13 . ~ . 10 K 11 A C ~ H 12 . E R A H S IN A5 G N R A4 AL O A3 AN A2 ~ 9 P 8 D 7 I 6 IG T ~ AL ~5 (P 4 W 3 M ~ ~ 2 IS O N ) TX 1 RX 0 Page 65 Page 66 A5 13 TX RX A4 A3 POWER A2 A1 A0 VIN GND GND 5V 3.3V RESET IOREF 7-15V Circuit 12 : Spinning a Motor SCL SDA AREF GND 13 12 ~11 ~10 ~9 8 RESET 7 ~6 ~5 4 ~3 2 TX 1 RX 0 DIGITAL (PWM~) ON LEARN. SHARE. HACK. ISP ANALOG IN 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 a b c d e a b c d e f g h i f g h i 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 Page 67 Image Reference: 5V b11 a3 C 5V GND Jumper Wire Jumper Wire + e3 d11 + Jumper Wire j2 a7 Pin 9 e1 e2 e1 g21 e7 Jumper Wire Jumper Wire Jumper Wire 330Ω Resistor e7 e11 B DC Motor E a1 a2 a3 GND b7 EMITTER BASE COLLECTOR Diode 1N4148 Transistor P2N2222AG Component: P2N2 222A Finally, when you create something really cool, consider sharing it with the world so that others can learn from your genius. Be sure to let us know on https://www.sparkfun.com/project_calls so we can put it on our home page! If you need help, there are internet forums where you can ask questions. Try Arduino's forum at arduino.cc/forum, and SparkFun's at forum.sparkfun.com. When you're ready to move to more advanced topics, take a look at Arduino's tutorials page at arduino.cc/en/tutorial. Many of SparkFun's more advanced products were programmed with Arduino, (allowing you to easily modify them), or have Arduino examples for them. See our product pages for info. It's usually pretty easy to pull pieces of different sketches together, just open them in two windows, and copy and paste between them. This is one of the reasons we've been promoting "good programming habits". Things like using constants for pin numbers, and breaking your sketch into functions, make it much easier to re-use your code in new sketches. For example, if you pull in two pieces of code that use the same pin, you can easily change one of the constants to a new pin. (Don't forget that not all of the pins support analogWrite(); the compatible pins are marked on your board.) We've already shown you how to use a bunch of different input sensors and output devices (and we still have a few more to go). Feel free to make use of the examples in your own sketches - this is the whole idea behind the "Open Source" movement. 1. Perform some sort of input 2. Make some calculations or decisions 3. Perform some sort of output 4. Repeat! (Or not!) Most of the sketches you write will be a loop with some or all of these steps: At this point you're probably starting to get your own ideas for circuits that do fun things, or help solve a real problem. Excellent! Here are some tips on programming in general. Putting it all together: 12 Arduino Code: Circuit 2 Open Arduino IDE // File > Examples > SIK Guide > Circuit # 12 Code to Note: while (Serial.available() > 0) The RedBoard's serial port can be used to receive as well as send data. Because data could arrive at any time, the RedBoard stores, or "buffers" data coming into the port until you're ready to use it. The Serial.available() command returns the number of characters that the port has received, but haven't been used by your sketch yet. Zero means no data has arrived. speed = Serial.parseInt(); If the port has data waiting for you, there are a number of ways for you to use it. Since we're typing numbers into the port, we can use the handy Serial.parseInt() command to extract, or "parse" integer numbers from the characters it's received. If you type "1" "0" "0" to the port, this function will return the number 100. V 15 7- 5V 3V 3. F RE IO SET RE What You Should See: PO RE SE T D W GN D E R GN N VI A0 L SC A SD EF AR ND G 13 A LE RN H .S AC H E. AR K. O N TX 12 11 ~ 0 1 ~ 9 ~ 8 D 7 I 6 IG T ~ AL ~5 (P 4 W 3 M ~ ~ 2 ) 1 IS P RX 13 R1X3 T TX RX X IN A5 0 Page 68 A4 Still Not Working Sometimes the RedBoard will disconnect from the computer. Try un-plugging and then re-plugging it into your USB port. A Still No Luck If you sourced your own motor, double check that it will work with 5 volts and that it does not draw too much power. AN AL O 3 G Motor Not Spinning If you sourced your own transistor, double check with the data sheet that the pinout is compatible with a P2N2222AG (many are reversed). A2 Troubleshooting: A1 The DC Motor should spin if you have assembled the circuit’s components correctly, and also verified/uploaded the correct code. If your circuit is not working check the troubleshooting section below. Real World Application: Radio Controlled(RC) cars use Direct Current(DC) motors to turn the wheels for propulsion. 13 5 Circuit 2 CIRCUIT #5 #13 Relays In this circuit, we are going to use some of the lessons we learned in circuit 12 to control a relay. A relay is basically an electrically controlled mechanical switch. Inside that harmless looking plastic box is an electromagnet that, when it gets a jolt of energy, causes a switch to trip. In this circuit, you’ll learn how to control a relay like a pro – giving your RedBoard even more powerful abilities! 5 volt Resistor (330 ohm) (Orange-Orange-Brown) Diode (1N4148) SPDT Relay Transistor (P2N2222AG) RedBoard PIN 2 LEDs (Light-Emitting Diodes) Resistor (330 ohm) (Orange-Orange-Brown) When the relay is off, the COM (common) pin will be connected to the NC (Normally Closed) pin. When the relay is on, the COM (common) pin will be connected to the NO (Normally Open) pin. PARTS: GND (Ground) IC Relay Transistor LED Diode P2N2222AG X 1 X 330Ω Resistor 1N4148 8 X 1 X 1 LED X 2 Wire X 2 14 X 715 V IO F RE RE 5V 3V T 3. SE SE T W N ER VI D PO D RE GN GN A0 A1 L SC A SD EF AR ND G 13 RX A TX E L 13 . ~ . 10 K 11 A C ~ H 12 . E R A H S IN A5 G N R A4 AL O A3 AN A2 ~ 9 P 8 D 7 I 6 IG T ~ AL ~5 (P 4 W 3 M ~ ~ 2 IS O N ) TX 1 RX 0 Page 69 Page 70 A5 13 TX RX A4 A3 POWER A2 A1 A0 VIN GND GND 5V 3.3V RESET IOREF 7-15V Circuit 13: Relays SCL SDA AREF GND 13 12 ~11 ~10 ~9 8 RESET 7 ~6 ~5 4 ~3 2 TX 1 RX 0 DIGITAL (PWM~) ON LEARN. SHARE. HACK. ISP ANALOG IN 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 a b c d e a b c d e f g h i f g h i 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 Page 71 Image Reference: i13 e22 i13 Jumper Wire i15 e19 + h9 Jumper Wire Jumper Wire j9 j7 j5 j3 Jumper Wire Jumper Wire Pin 2 Jumper Wire e2 Jumper Wire Jumper Wire b14 +1 e7 e1 5V 330Ω Resistor Jumper Wire f7 a3 GND e7 Jumper Wire Jumper Wire - Jumper Wire + - Jumper Wire c22 c23 + C c19 c20 B e3 e1 g31 e7 + + E a2 a3 a4 Jumper Wire 5V - - EMITTER BASE COLLECTOR e14 e9 f15 f13 f9 Component: 330Ω Resistor Diode 1N4148 LED (5mm) LED (5mm) Transistor P2N2222AG Relay Component: P2N2 222A Image Reference: GND 5V + e4 b9 a7 a9 a20 e19 + b14 a23 + e19 + e15 + e19 + e15 f7 f5 f6e19 e15 13 Arduino Code: Circuit 2 Open Arduino IDE // File > Examples > SIK Guide > Circuit # 13 Code to Note: digitalWrite(relayPin, HIGH); When we turn on the transistor, which in turn energizes the relay's coil, the relay's switch contacts are closed. This connects the relay's COM pin to the NO (Normally Open) pin. Whatever you've connected using these pins will turn on. (Here we're using LEDs, but this could be almost anything.) digitalWrite(relayPin, LOW); The relay has an additional contact called NC (Normally Closed). The NC pin is connected to the COM pin when the relay is OFF. You can use either pin depending on whether something should be normally on or normally off. You can also use both pins to alternate power to two devices, much like railroad crossing warning lights. What You Should See: V 15 7- F RE IO SET RE V 3 3. RE SE T P 5 V DD OW GGNN DD E R GGNN NN VVI AA00 AA1 LE N .S H IINN E. H AC K. IISS PP OO NN 2 112 1 111 ~~ 100 1 ~~ 99 ~~ 88 DD I 77 I GG 66 IITT ~~ 5 AA 5 ~ ~ L L ((PP 44 WW 33 MM ~~ ~~ 22 )) 11 AR AA55 AR AA44 CLL SC A DA SSD EEFF R AAR NNDD GG 1133 AA3 TTX X RX 1133 RRX1X3 TT T X R XXX AN NA ALL OO GG AA2 You should be able to hear the relay contacts click, and see the two LEDs alternate illuminating at 1-second intervals. If you don't, double-check that you have assembled the circuit correctly, and uploaded the correct sketch to the board. Also, see the troubleshooting tips below. 00 Troubleshooting: Real World Application: LEDs Not Lighting Double-check that you've plugged them in correctly. The longer lead (and non-flat edge of the plastic flange) is the positive lead. Garage door openers use relays to operate. You might be able to hear the clicking if you listen closely. No Clicking Sound The transistor or coil portion of the circuit isn't quite working. Check the transistor is plugged in the right way. Not Quite Working The included relays are designed to be soldered rather than used in a breadboard. As such you may need to press it in to ensure it works (and it may pop out occasionally). When you’re building the circuit be careful not to mix up the temperature sensor and the transistor, they’re almost identical. Page 72 14 Circuit 2 CIRCUIT #14 Shift Register Now we are going to step into the world of ICs (integrated circuits). In this circuit, you’ll learn all about using a shift register (also called a serial-to-parallel converter). The shift register will give your RedBoard an additional eight outputs, using only three pins on your board. For this circuit, you’ll practice by using the shift register to control eight LEDs. RedBoard 5 volt PIN 2 14 PIN 3 11 PIN 4 SER VCC SCK QB SCL QC 16 15 QA 10 1 2 3 QD 12 RCK 4 QE 5 QF 13 8 OE QG GND QH QH* Resistors (330 ohm) (Orange-Orange-Brown) 6 7 9 LEDs (Light-Emitting Diodes) 74HC595 PARTS: GND (Ground) *Do not connect pin 9 IC LED X 330Ω Resistor 1 X Wire 8 X 8 19 X VCC QB 1 16 QC 2 15 QA QD 3 14 SER QE 4 13 OE QF 5 12 RCLK QG 6 11 SRCLK QH 7 10 SRCLR GND 8 9 QH’ Align notch on top, inbetween “e5” and “f5” on the breadboard. The notch indicates where pin 1 is. Bend legs to 90° angle. 715 V IO F RE RE 5V 3V T 3. SE SE T W N ER VI D PO D RE GN GN A0 A1 RX 13 IN A5 G L SC A SD EF AR ND G 13 TX A4 AL O A3 AN A2 12 ~ ~ 11 10 ~ 9 P 8 D 7 I 6 IG T ~ AL ~5 (P 4 W 3 M ~ ~ 2 IS O N ) TX 1 RX 0 Page 73 Page 74 A5 13 TX RX A4 A3 POWER A2 A1 A0 VIN GND GND 5V 3.3V RESET IOREF 7-15V Circuit 14: Shift Register SCL SDA AREF GND 13 12 ~11 ~10 ~9 8 RESET 7 ~6 ~5 4 ~3 2 TX 1 RX 0 DIGITAL (PWM~) ON LEARN. SHARE. HACK. ISP ANALOG IN 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 a b c d e a b c d e f g h i f g h i 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 Page 75 - Jumper Wire Jumper Wire Jumper Wire Jumper Wire c24 a3 c24 a3 c24 a3 c24 a3 + a3 GND j15 GND j18 GND j21 GND j24 + GND 330Ω Resistor 330Ω Resistor 330Ω Resistor 330Ω Resistor Jumper Wire Jumper Wire a24 a3 GND c23 330Ω Resistor Jumper Wire Jumper Wire - Jumper Wire Jumper Wire Jumper Wire a21 a3 + h23 h
LAB-13109 价格&库存

很抱歉,暂时无法提供与“LAB-13109”相匹配的价格&库存,您可以联系我们找货

免费人工找货