Arduino Circuits and Projects Guide - Elektor

15

Transcript of Arduino Circuits and Projects Guide - Elektor

Page 1: Arduino Circuits and Projects Guide - Elektor
Page 2: Arduino Circuits and Projects Guide - Elektor

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

Page 3: Arduino Circuits and Projects Guide - Elektor

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

Page 4: Arduino Circuits and Projects Guide - Elektor

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

Page 5: Arduino Circuits and Projects Guide - Elektor

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

Page 6: Arduino Circuits and Projects Guide - Elektor

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

Page 7: Arduino Circuits and Projects Guide - Elektor

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

Page 8: Arduino Circuits and Projects Guide - Elektor

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

Page 9: Arduino Circuits and Projects Guide - Elektor

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

Page 10: Arduino Circuits and Projects Guide - Elektor

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

Page 11: Arduino Circuits and Projects Guide - Elektor

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

Page 12: Arduino Circuits and Projects Guide - Elektor

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

Page 13: Arduino Circuits and Projects Guide - Elektor

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

Page 14: Arduino Circuits and Projects Guide - Elektor

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

Page 15: Arduino Circuits and Projects Guide - Elektor

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