preview arduino projects and circuits guide
DESCRIPTION
Look inside Elektor's Arduino Circuits & Projects Guide by Günter SpannerTRANSCRIPT
5
Table of Contents 1 Introduction .................................................................................. 9
1.1 The Arduino Project ................................................................... 10 1.2 Book Structure and Target Audience ............................................ 10
2 Structure and Function of the Hardware ........................................ 11 2.1 Lots to Choose From: Arduino Versions ........................................ 12 2.2 Available for all Purposes: Shields ............................................... 13
2.2.1 Proto Shield ................................................................... 13 2.2.2 Motor Shield .................................................................. 13
............................................................... 14 ....................... 15
..................................... 15 2.5 The PC Connection: USB interface ............................................... 16
3 Development Environment and Programming Basics ..................... 17 ................................. 17 ................................. 23
......................................... 24 3.4 General Structure of an Arduino Sketch ....................................... 24
........... 27 3.6 Program Structures ................................................................... 29
......................................................... 29 ......................................... 30
............................................... 30 3.10 The Art of Math: Operators ........................................................ 31 3.11 To Be Clear: Logical Operators .................................................... 32 3.12 Unchanging Parameters: Constants ............................................. 35 3.13 Dealing with Related Data of the Same Type: Arrays ...................... 36 3.14 Program Control Structures ........................................................ 36 3.15 Controlling Timing ..................................................................... 39 3.16 Mathematical Functions ............................................................. 40 3.17 Random numbers ..................................................................... 40
....................................... 41
4 Electronic Components and Low-Cost ‘Freeduinos’ ........................ 43 ..................... 43
4.2 Prototyping Boards: Durable Construction without Chemicals .......... 44 ................................................................ 45
................... 46 4.4.1 USB Cable ..................................................................... 46 4.4.2 Resistors ....................................................................... 46 4.4.3 Capacitors ..................................................................... 47 4.4.4 Potentiometers ............................................................... 47
............................................................................. 48 ...................................................................... 48
Boek Arduino UK 131010.indd 5 10-12-13 11:33
6
4.4.7 Switches ........................................................................ 49 4.4.8 Silicon Diodes................................................................. 49 4.4.9 Transistors ..................................................................... 49 5 Hello World .................................................................................... 51 5.1 Cut to the Chaser ..................................................................... 51
...................................... 53 5.3 POVino: Persistence-of-Vision Display .......................................... 54 6 Displays and Display Techniques ................................................... 59 6.1 Bar Graph Display: The Classic for Measurement Applications ......... 59 6.2 Simple and Cheap: 7-Segment Displays ....................................... 59
62 ................ 67
6.5 Dot Matrix Display as a Two-Digit Digital Display ........................... 70 ................................ 72
6.7 The LCD .................................................................................. 76
7 Measurement and Sensors ............................................................. 81 ................................ 81
............. 83 ......................................... 87
.. 89 ........................... 91
..................................................... 93 7.7 A Simple NTC Thermometer ....................................................... 95 ...... 98 7.9 Remote Thermometer ................................................................ 99
...... 100 ...................... 105
........ 107 ............ 112
........................................................ 113 7.15 For Professional Photographers: A Digital Light Meter ..................... 115
...... 117 8 Timers, Clocks and Interrupts ........................................................ 123 8.1 Morning and Night Fun: Grand Prix Toothbrush Timer .................... 123
.................... 130 .................................................. 135
.................... 138 ................................................ 141
8.6 Atomic Precision: The DCF77 Radio Clock ..................................... 142 ............................ 145
8.8 Stand-Alone DCF77 Clock with LCD Display .................................. 146
9 Interfaces .................................................................................... 149 ...................................... 149
.................................... 152 . 155
........................................ 158 9.6 This Time, Fully Digital: The LM75 Thermometer ........................... 160 9.7 Power-Saving: Real-Time Clock with Date Display ......................... 163
Boek Arduino UK 131010.indd 6 10-12-13 11:33
7
167 ........................................ 171
............................... 174 ........................... 178 ........................... 178
9.13 A Complete Microcomputer with LCD Monitor and Keyboard ............ 181 10 Sounds and Synthesizer ................................................................. 185 10.1 Simple Tones ............................................................................ 185
......................................................... 187 ........ 188
............................. 195 10.5 Audio Processing....................................................................... 197
.................................... 198 10.5.2 Digital Signal Processing .................................................. 200 10.6 Sound Cloud: A Digital Synthesizer .............................................. 203 11 Digital Control Techniques ............................................................. 207 11.1 Control Types ........................................................................... 208 11.1.1 P Controller .................................................................... 208
.................................................................... 209 .................................................................. 209
11.1.4 PD Controller ................................................................. 209 ................................................................ 210
............. 210 11.3 A Classic of Control Theory: The Gravity Compensator ................... 214 12 Physical Computing ....................................................................... 221
........................................................... 221 ....................................................... 225
.............................................. 13 Processing .................................................................................... 231 13.1 Arduino and Processing: A Formidable Team ................................. 232
........ 233 14 The ‘Living Room Box’: Our Modular Concluding Project ................ 241 14.1 Always Useful: A Clock ............................................................... 242
.............................................. 243 ................. 243
................... 243 .............................................. 244
................................................... 244 ............................................................................ 244
Bibliography ......................................................................................... 249
Listings ................................................................................................ 251
List of Figures ...................................................................................... 253
List of Tables ........................................................................................ 257
Index ................................................................................................... 259
Boek Arduino UK 131010.indd 7 10-12-13 11:33
9
1 Introduction
--
The second success factor is the associated programming interface, which is provided as free-of-charge open source software. The second success factor is the associated pro-
-tion, installation is quick and easy, so the environment is usable immediately. Simple in-troductory examples encourage rapid progress. The selection of complicated parameters
Furthermore, the Arduino is backed up with a wealth of software libraries, and the num-
introduction of simple examples, the way forward is not clear. This is often due to the lack of detailed descriptions and explanations. The number of projects on the internet, which are explained to a greater or lesser extent, is more likely to cause confusion. Be-cause these applications are designed by a number of different people, each with their own goals in mind, there is no common thread connecting them.
-ducing a different theme. A practical hands-on approach is employed alongside the necessary theoretical foundations and, in a similar vein, important concepts such as A/D conversion, timers and interrupts are presented using practical projects. There are run-ning lights, fully-functional voltmeters, precise digital thermometers, clocks of all kinds, reaction timers and a mouse-controlled robot crane. Along the way, the reader will gain an understanding of the associated controller techniques and pick them up fully — in the truest sense of the word.
The practical projects presented herein will not be relegated to the status of mere ‘lab-
will arise, which may be used for home, hobby and work. The projects are always imple-
modularly and may be adapted to individual requirements. The knowledge gleaned throughout the book is used practically to produce a very useful, yet unusual, device.
Boek Arduino UK 131010.indd 9 10-12-13 11:33
1 INTRODUCTION
10
1.1 The Arduino Project
The Arduino
handy printed circuit board that contained all of the necessary electronic building blocks. The main objective was the development of an inexpensive microcontroller board that could be utilized quickly and simply by art and design students who had no previous knowledge of programming or electronics.
-gether easily, and it sold out quickly. Newer versions followed in rapid succession. De-signers and artists from other regions took up the idea and the Arduino principle spread,
The concept of a simple and low-cost hardware platform with a freely available, easy-to-learn programming language was quickly embraced by hobbyists. Finally, schools and
most successful of all time.
1.2 Book Structure and Target Audience
-
-
and teachers who come with some pre-existing technical knowledge will encounter new challenges.
less technically challenging material at the beginning of the book. For this reason, be-
single project is constructed.
Boek Arduino UK 131010.indd 10 10-12-13 11:33
44
4.2 Prototyping Boards: Durable Construction without Chemicals
be built on prototyping board . There are different versions available. The most common types are stripboard and perfboard . The former usually results in a circuit with fewer solder connections, although many circuit traces are likely to require severing. On the other hand, boards with individual solder pads require all electrical connections have to be individually created, so no manual severing is required on the board itself, but many more solder connections are required.
Figure 4.1: Breadboard
Figure 4.2: Stripboard
Figure 4.3: A Perfboard has Individual Pads
Boek Arduino UK 131010.indd 44 10-12-13 11:33
60
scribed any further here. Another option for displaying alphabetical characters, the dot matrix display, is covered in a later section.
Figure 6.1: Typical Pin Layout on a Single 7-Segment Display
The wiring of a common-cathode 7-segment display is shown in Figure 6.2. Since a numeric digit requires several segments to be lit simultaneously, one might expect an in-
Figure 6.2: Control of a Single 7-Segment Display.
Boek Arduino UK 131010.indd 60 10-12-13 11:33
161
The problems associated with NTCs, such as the nonlinear relationship between tem-perature and resistance, as well as the requirement of a second resistor to make up a voltage divider, which introduces additional inaccuracy, etc., all fall away.
alog transmission of temperature data takes place over a long cable, errors are eas-
electromagnetic radiation, such as from mobile phones and electric motors, may cause unacceptable interference. Lastly, contact stresses at plugs and connections may lead to
for lines in excess of 1 m, problems start occurring in practice. Digital transmission via
and its corresponding pin. For larger applications, this can quickly lead to a pin short-3
setup(), Wire and Lcd are initialized. Then follows the printing of a template for the output of temperature values to the LCD. The main loop begins by setting the most
then read, one after the other. Conversion of the byte values takes place as per the
Figure 9.11: LM75 for Local Measurements
Boek Arduino UK 131010.indd 161 10-12-13 11:33
181
use re d() c r click = Mouse.read(); mouseX = Mouse.read(); mouseY = Mouse.read();
// send data Serial.print(“X=”); Serial.print(mouseX, DEC); Serial.print(“\tY=”); Serial.print(mouseY, DEC); switch (click) { case Serial.print(“\t left click”); break; case 10: Serial.print(“\t right click”); break; case 11: Serial.print(“\t both click”); break; } Serial.println(); delay(20);}
void mouseInit() { Mouse.write(0xff); // reset Mouse.read(); // con rm byte times Mouse.read(); Mouse.read(); Mouse.write(0xf0); // remote mode Mouse.read(); // con rm delayMicroseconds(100);}
-vices are controlled using the mouse.
9.13 A Complete Microcomputer with LCD Monitor and Keyboard
Connect a keyboard and a mouse to the Arduino, and you have yourself a complete microcomputer. Together with an LCD display, it forms a system with performance com-
Boek Arduino UK 131010.indd 181 10-12-13 11:33
188
stripboard may be used.
10.3 Fast PWM Makes It Happen: Not Just Tones, But Sound Waves
waves. A tone is able to be described fully by a single physical parameter: its frequency.
The tone()
Figure 10.3: Construction Example for the Audio Ampli er
Figure 10.4: A Suitable DIY Speaker Enclosure
Boek Arduino UK 131010.indd 188 10-12-13 11:33
205
The sounds generated by this synthesizer are based on a broadband noise spectrum, which is repeated in rapid succession. Analog synthesizers produce similar sounds using
ed with its own additional decay rate.
Five potentiometers enable the adjustment of the following parameters:
Analog A0: Noise spectrum 1 Analog A1: Decay rate 1 Analog A2: Noise spectrum 2 Analog A3: Decay rate 2 Analog A4: Noise spectrum repeat frequency
reverb discussed above, as well as vibrato or various envelopes, may be created.
easily adjusted simultaneously. A construction example is shown in Figure 10.11.
Using Audacity, the raw sounds produced by the Arduino may be further processed, creating very interesting sound sequences for use as background ambience in videos.
Tube video!
Figure 10.11: Synthesizer Construction Example
Boek Arduino UK 131010.indd 205 10-12-13 11:33
212
Figure 11.3: Brightness Control Circuit
-nates the photodiode.
the voltage at the analog input increases with increased light intensity. Thus, the control system is directly proportionally polarized. By calculating the error signal as
Boek Arduino UK 131010.indd 212 10-12-13 11:33
259
Index2-D camera swivel ...........................2257-segment displays ........................... 62
A ........................................185
Analog channels ..............................233Arduino ............................................. 9Arithmetic operators ......................... 31Arrays ............................................. 36ATMega168 ...................................... 16ATMega328 ...................................... 16Audio processing .............................197
B ................................200
Bar graph display ............................. 59Bar graph voltmeter .......................... 81Bar graph .......................................233Batteries ........................................107Blink ............................................... 24Breadboards .................................... 43
CCalibration ....................................... 86Circular memory buffer ....................200Constants ........................................ 35Control loop ....................................207Control...........................................215Cranino ..........................................228Crystal ...........................................123
DData loggers ...................................237DCF77 module ................................145DCF77 radio module ........................123Digital clock ....................................130Diodes ............................................ 49Displays .......................................... 59Dot matrix displays ........................... 67
E .........................141
....................................... 94 ....................... 89
.................................228 ............................... 15
FFuse bits ........................................... 9
GGeocaching .....................................113Gravitation compensator ..................214
H .....................155
.............................105
I ..........................................149
................................................. 17 ..........................210
..............149 .....................................171
............................174
LLC displays ...................................... 76Levitation .......................................217Libraries .......................................... 41Light barriers ..................................112Light meter .....................................115Living room box ..............................241Living room hygrometer ...................105Logical operations ............................. 32
MMagnet ..........................................216Microcontroller ................................. 15Minimal Arduino ............................... 45Mood lights ...................................... 11
................................ 48
N ................................107
NTC ................................................ 95
OOptical sensors ...............................112
PPC keyboards ..................................178PCF8583 ........................................164PD controller ...................................218Photodiodes ....................................112Phototransistors ..............................112Physical Computing ..........................221Potentiometers ................................. 47POV ................................................ 54
............................... 53, 212
Boek Arduino UK 131010.indd 259 10-12-13 11:33
260
Power relay ....................................141Power supply ................................... 15Printed circuit boards ........................ 43Processing ......................................231Program icons .................................231Prototyping boards ........................... 44PS/2 mice .......................................178Pulse-width modulation ....................188Pushbuttons..................................... 49
RRandom numbers ............................. 40RC5 code ........................................167Reaction timer ................................135Relative humidity.............................105Resistors ......................................... 46Reverberation springs, plates ............200Reverberation .................................200
........................................171RTC ...............................................163Running light effects ......................... 51
SSensors ........................................... 81Seven segment displays .................... 62Shields ............................................ 13Shift operators ................................. 33Structures ....................................... 36Switches ......................................... 49Synthesizer ....................................185
TTemperature sensor .......................... 98Theremin .......................................195Thermometer ............................ 95, 100Timer .............................................138Toothbrush timer .............................123Transistor parameters ....................... 93Twilight switch ................................112
UUbuntu............................................ 23Ultrasonic transducers ......................117Upload ............................................ 21USB cable ........................................ 20
VVariables30Variable types .................................. 31VCO ...............................................198Verify .............................................. 21
Boek Arduino UK 131010.indd 260 10-12-13 11:33