Arduino für Fortgeschrittene A B r e h d a u n i d noelt 1 . 0 Arduino Kochbuch Michael Magolis O’REILLY Übersetzung von Peter Klicman Arduino Kochbuch Michael Margolis DeutscheÜbersetzungvonPeterKlicman Beijing(cid:2)Cambridge(cid:2)Farnham(cid:2)Ko¨ln(cid:2)Sebastopol(cid:2)Tokyo DieInformationenindiesemBuchwurdenmitgrößterSorgfalterarbeitet.Dennochkönnen Fehlernichtvollständigausgeschlossenwerden.Verlag,AutorenundÜbersetzerübernehmen keinejuristischeVerantwortungoderirgendeineHaftungfüreventuellverbliebeneFehlerund derenFolgen. AlleWarennamenwerdenohneGewährleistungderfreienVerwendbarkeitbenutztundsind möglicherweiseeingetrageneWarenzeichen.DerVerlagrichtetsichimWesentlichennachden SchreibweisenderHersteller.DasWerkeinschließlichallerseinerTeileisturheberrechtlich geschützt.AlleRechtevorbehalteneinschließlichderVervielfältigung,Übersetzung, MikroverfilmungsowieEinspeicherungundVerarbeitunginelektronischenSystemen. KommentareundFragenkönnenSiegerneanunsrichten: O’ReillyVerlag Balthasarstr.81 50670Köln Tel.:0221/9731600 Fax:0221/9731608 E-Mail:[email protected] Copyright: (cid:2)2012byO’ReillyVerlagGmbH&Co.KG 1.Auflage2012 DieOriginalausgabeerschien2011unterdemTitel ArduinoCookbook,SecondEdition,imVerlagO’ReillyMedia,Inc. DieDarstellungeinesmechanischensHasensimZusammenhangmitdem ThemaArduinoisteinWarenzeichenvonO’ReillyMedia,Inc. BibliografischeInformationDerDeutschenBibliothek DieDeutscheBibliothekverzeichnetdiesePublikationinder DeutschenNationalbibliografie;detailliertebibliografischeDaten sindimInternetüberhttp://dnb.ddb.deabrufbar. Lektorat:VolkerBombien FachlicheUnterstützung:MarkusUlsaß,Hamburg Korrektorat:Dr.DorothéeLeidig Satz:ReemersPublishingServicesGmbH,Krefeld,www.reemers.de Umschlaggestaltung:MichaelOreal,Köln Produktion:KarinDriesen,Köln Belichtung,DruckundbuchbinderischeVerarbeitung: DruckereiKösel,Krugzell;www.koeselbuch.de ISBN-13978-3-86899-353-0 DiesesBuchistauf100%chlorfreigebleichtemPapiergedruckt. Inhalt Vorwort XI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 Erste Schritte 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.0 Einführung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.1 InstallationderintegriertenEntwicklungsumgebung(IDE) . . . . . . . . . . 4 1.2 DasArduino-Boardeinrichten. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 1.3 EinenArduino-SketchmitderintegriertenEntwicklungsumgebung(IDE) bearbeiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.4 DenBlink-Sketchhochladenundausführen. . . . . . . . . . . . . . . . . . . . . 13 1.5 EinenSketcherstellenundspeichern . . . . . . . . . . . . . . . . . . . . . . . . . . 15 1.6 Arduinoverwenden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2 Den Sketch machen lassen, was Sie wollen 23 . . . . . . . . . . . . . . . . . . . . . . . . . 2.0 Einführung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 2.1 StrukturierungeinesArduino-Programms. . . . . . . . . . . . . . . . . . . . . . . 24 2.2 EinfacheprimitiveTypen(Variablen)nutzen . . . . . . . . . . . . . . . . . . . . 25 2.3 Fließkommazahlenverwenden. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 2.4 MitGruppenvonWertenarbeiten. . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 2.5 Arduino-Stringfunktionennutzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 2.6 C-Zeichenkettennutzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 2.7 DurchKommagetrenntenTextinGruppenaufteilen . . . . . . . . . . . . . . 38 2.8 EineZahlineinenStringumwandeln. . . . . . . . . . . . . . . . . . . . . . . . . . 41 2.9 EinenStringineineZahlumwandeln. . . . . . . . . . . . . . . . . . . . . . . . . . 43 2.10 IhrenCodeinFunktionsblöckenstrukturieren . . . . . . . . . . . . . . . . . . . 45 2.11 MehralseinenWertineinerFunktionzurückliefern. . . . . . . . . . . . . . . 49 2.12 AktionenbasierendaufBedingungenausführen . . . . . . . . . . . . . . . . . . 52 2.13 EineFolgevonAnweisungenwiederholtausführen. . . . . . . . . . . . . . . . 54 | III 2.14 AnweisungenübereinenZählerwiederholen . . . . . . . . . . . . . . . . . . . . 56 2.15 AusSchleifenausbrechen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 2.16 BasierendaufeinemVariablenwertverschiedeneAktionendurchführen. 59 2.17 ZeichenundZahlenvergleichen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 2.18 Stringsvergleichen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 2.19 LogischeVergleichedurchführen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 2.20 BitweiseOperationendurchführen. . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 2.21 OperationenundZuweisungenkombinieren . . . . . . . . . . . . . . . . . . . . 68 3 Mathematische Operatoren nutzen 69 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.0 Einführung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 3.1 Addieren,subtrahieren,multiplizierenunddividieren. . . . . . . . . . . . . . 69 3.2 Werteinkrementierenunddekrementieren. . . . . . . . . . . . . . . . . . . . . . 70 3.3 DenResteinerDivisionbestimmen . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 3.4 DenAbsolutwertermitteln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 3.5 ZahlenaufeinenWertebereichbeschränken. . . . . . . . . . . . . . . . . . . . . 73 3.6 DasMinimumoderMaximumbestimmen. . . . . . . . . . . . . . . . . . . . . . 74 3.7 EineZahlpotenzieren. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 3.8 DieQuadratwurzelberechnen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 3.9 Fließkommazahlenauf-undabrunden. . . . . . . . . . . . . . . . . . . . . . . . . 76 3.10 TrigonometrischeFunktionennutzen. . . . . . . . . . . . . . . . . . . . . . . . . . 77 3.11 Zufallszahlenerzeugen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 3.12 Bitssetzenundlesen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 3.13 Bitsverschieben(Shifting). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 3.14 Höher-undniederwertigeBytesausintoderlongextrahieren . . . . . . . . 85 3.15 int-oderlong-Werteaushöher-undniederwertigenBytesbilden. . . . . . 87 4 Serielle Kommunikation 89 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.0 Einführung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 4.1 Debugging-InformationenvomArduinoanIhrenComputersenden. . . . 94 4.2 FormatiertenTextundnumerischeDatenvomArduinosenden. . . . . . . 98 4.3 SerielleDatenmitArduinoempfangen. . . . . . . . . . . . . . . . . . . . . . . . . 101 4.4 MehrereTextfeldervomArduinoineinereinzelnenNachrichtsenden . . 106 4.5 MitdemArduinomehrereTextfelderineinerNachrichtempfangen. . . . 111 4.6 BinäreDatenvomArduinosenden. . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 4.7 BinärdatenvomArduinoaufeinemComputerempfangen. . . . . . . . . . . 119 4.8 BinäreWerteausProcessingandenArduinosenden. . . . . . . . . . . . . . . 121 4.9 DenWertmehrererArduino-Pinssenden. . . . . . . . . . . . . . . . . . . . . . . 123 4.10 DenMauszeigereinesPCsoderMacsbewegen. . . . . . . . . . . . . . . . . . . 127 IV | Inhalt 4.11 GoogleEarthperArduinosteuern . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 4.12 Arduino-DatenineinerDateiaufdemComputerfesthalten. . . . . . . . . . 136 4.13 DatenanzweiserielleGerätegleichzeitigsenden. . . . . . . . . . . . . . . . . . 139 4.14 SerielleDatenvonzweiGerätengleichzeitigempfangen. . . . . . . . . . . . . 143 4.15 SerielleDatenmitProcessingSendenundEmpfangen. . . . . . . . . . . . . . 147 5 Einfacher digitaler und analoger Input 149 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.0 Einführung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 5.1 EinenSchalterverwenden. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 5.2 TasterohneexternenWiderstandverwenden. . . . . . . . . . . . . . . . . . . . 156 5.3 DasSchließeneinesSchalterszuverlässigerkennen . . . . . . . . . . . . . . . . 158 5.4 Ermitteln,wielangeeineTastegedrücktwird. . . . . . . . . . . . . . . . . . . . 160 5.5 VoneinerTastaturlesen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 5.6 Analogwerteeinlesen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 5.7 Wertebereicheändern. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170 5.8 MehralssechsanalogeEingängeeinlesen. . . . . . . . . . . . . . . . . . . . . . . 172 5.9 Spannungenvonbiszu5Vmessen. . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 5.10 AufSpannungsänderungenreagieren. . . . . . . . . . . . . . . . . . . . . . . . . . 177 5.11 Spannungenüber5Vmessen(Spannungsteiler) . . . . . . . . . . . . . . . . . . 179 6 Werte von Sensoren einlesen 183 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.0 Einführung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 6.1 Movementerkennen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 6.2 Lichtmessen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 6.3 Motionerkennen(PassiveInfrarot-Detektorenintegrieren) . . . . . . . . . . 190 6.4 Abständemessen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192 6.5 Abständegenauermessen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 6.6 Vibrationmessen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 6.7 Geräuscheerkennen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200 6.8 Temperaturmessen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 6.9 RFID-Tagslesen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 6.10 Drehbewegungenmessen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210 6.11 MehrereDrehbewegungenmessen. . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 6.12 DrehbewegungenineinemvielbeschäftigtenSketchmessen . . . . . . . . . 215 6.13 EineMausnutzen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 6.14 DiePositionperGPSbestimmen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221 6.15 BewegungenmiteinemGyroskoperkennen . . . . . . . . . . . . . . . . . . . . . 226 6.16 Richtungbestimmen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 Inhalt | V 6.17 DatenvoneinemSpiele-Controller(PlayStation)einlesen . . . . . . . . . . . 236 6.18 Beschleunigungmessen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 7 Visuelle Ausgabe 241 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.0 Einführung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241 7.1 LEDsanschließenundnutzen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245 7.2 HelligkeiteinerLEDregeln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248 7.3 Hochleistungs-LEDsansteuern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249 7.4 DieFarbeeinerLEDsteuern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252 7.5 MehrereLEDsaneinanderreihen:LED-Balkenanzeige. . . . . . . . . . . . . . 255 7.6 MehrereLEDsaneinanderreihen:KnightRider-Lauflicht. . . . . . . . . . . . 258 7.7 EineLED-MatrixperMultiplexingsteuern. . . . . . . . . . . . . . . . . . . . . . 259 7.8 Bilder(Images)aufeinerLED-Matrixdarstellen . . . . . . . . . . . . . . . . . . 262 7.9 EineLED-Matrixansteuern:Charlieplexing . . . . . . . . . . . . . . . . . . . . . 265 7.10 Eine7-Segment-LED-Anzeigeansteuern. . . . . . . . . . . . . . . . . . . . . . . . 271 7.11 Mehrstellige7-Segment-LED-Anzeigenansteuern:Multiplexing. . . . . . . 274 7.12 Mehrstellige7-Segment-LED-AnzeigenmitMAX7221-Schieberegistern ansteuern. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276 7.13 EineLED-MatrixmitMAX72xx-Schieberegisternansteuern . . . . . . . . . 279 7.14 DieAnzahlanalogerAusgängemitPWM-Extender-Chips(TLC5940) erhöhen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281 7.15 EinanalogesAnzeigeinstrumentnutzen . . . . . . . . . . . . . . . . . . . . . . . . 285 8 Physische Ausgabe 289 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.0 Einführung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289 8.1 DiePositioneinesServoskontrollieren. . . . . . . . . . . . . . . . . . . . . . . . . 292 8.2 EinoderzweiServosmiteinemPotentiometeroderSensorsteuern. . . . . 294 8.3 DieGeschwindigkeitdauerrotierenderServossteuern . . . . . . . . . . . . . . 296 8.4 ServosüberComputerbefehlesteuern . . . . . . . . . . . . . . . . . . . . . . . . . 298 8.5 EinenbürstenlosenMotor(perFahrtregler)steuern. . . . . . . . . . . . . . . . 299 8.6 HubmagneteundRelaissteuern. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301 8.7 EinObjektvibrierenlassen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302 8.8 EinenBürstenmotorübereinenTransistoransteuern. . . . . . . . . . . . . . . 305 8.9 DieDrehrichtungeinesBürstenmotorsübereineH-Brückesteuern . . . . 306 8.10 DrehrichtungundGeschwindigkeiteinesBürstenmotorsmiteiner H-Brückesteuern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309 8.11 RichtungundGeschwindigkeitvonBürstenmotorenüberSensoren steuern(L293H-Brücke). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311 8.12 EinenbipolarenSchrittmotoransteuern. . . . . . . . . . . . . . . . . . . . . . . . 317 VI | Inhalt 8.13 EinenbipolarenSchrittmotoransteuern(mitEasyDriver-Board). . . . . . . 320 8.14 EinenunipolarenSchrittmotoransteuern(ULN2003A). . . . . . . . . . . . . 323 9 Audio-Ausgabe 327 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.0 Einführung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327 9.1 Töneausgeben. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329 9.2 EineeinfacheMelodiespielen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331 9.3 MehralseinenTongleichzeitigerzeugen . . . . . . . . . . . . . . . . . . . . . . . 333 9.4 EinenTonerzeugenundeineLEDansteuern . . . . . . . . . . . . . . . . . . . . 335 9.5 EineWAV-Dateiabspielen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338 9.6 MIDIsteuern. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341 9.7 Audio-Synthesizer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344 10 Externe Gera¨te fernsteuern 347 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.0 Einführung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347 10.1 AufeineInfrarot-Fernbedienungreagieren . . . . . . . . . . . . . . . . . . . . . . 348 10.2 IR-SignaleeinerFernbedienungdekodieren . . . . . . . . . . . . . . . . . . . . . 350 10.3 IR-Signaleimitieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354 10.4 EineDigitalkamerasteuern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356 10.5 WechselstromgeräteübereinegehackteFernbedienungsteuern. . . . . . . 359 11 Displays nutzen 363 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.0 Einführung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363 11.1 EinText-LCDanschließenundnutzen. . . . . . . . . . . . . . . . . . . . . . . . . 364 11.2 Textformatieren. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367 11.3 CursorundDisplayein-undausschalten . . . . . . . . . . . . . . . . . . . . . . . 370 11.4 Textscrollen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371 11.5 Sonderzeichendarstellen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375 11.6 EigeneZeichendefinieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377 11.7 GroßeSymboledarstellen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379 11.8 KleinePixeldarstellen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382 11.9 EingraphischesLC-Displayanschließenundnutzen. . . . . . . . . . . . . . . 385 11.10 BitmapsfürgraphischeDisplays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389 11.11 TextaufdemFernseherausgeben . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390 12 Datum und Uhrzeit 397 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12.0 Einführung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397 12.1 Zeitverzögerungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397 12.2 Laufzeitenmessenmitmillis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398 Inhalt | VII 12.3 DieDauereinesImpulsespräzisermessen . . . . . . . . . . . . . . . . . . . . . . 402 12.4 ArduinoalsUhrverwenden. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404 12.5 EinenAlarmeinrichten,umregelmäßigeineFunktionaufzurufen . . . . . 412 12.6 EineEchtzeituhrnutzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415 13 Kommunikation per I2C und SPI 421 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13.0 Einführung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421 13.1 SteuerungeinerRGB-LEDmitdemBlinkM-Modul. . . . . . . . . . . . . . . . 425 13.2 DenWiiNunchuck-Beschleunigungsmessernutzen . . . . . . . . . . . . . . . 429 13.3 AnbindungeinerexternenEchtzeituhr. . . . . . . . . . . . . . . . . . . . . . . . . 435 13.4 ExternenEEPROM-Speicheranbinden. . . . . . . . . . . . . . . . . . . . . . . . . 436 13.5 TemperaturperDigital-Thermometermessen. . . . . . . . . . . . . . . . . . . . 440 13.6 Vier7-Segment-LEDsmitnurzweiLeitungensteuern. . . . . . . . . . . . . . 445 13.7 EinenI2C-Port-Expanderintegrieren . . . . . . . . . . . . . . . . . . . . . . . . . . 448 13.8 Mehrstellige7-Segment-AnzeigenüberSPIansteuern . . . . . . . . . . . . . . 451 13.9 KommunikationzwischenzweiodermehrArduino-Boards. . . . . . . . . . 454 14 Drahtlose Kommunikation 457 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14.0 Einführung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457 14.1 NachrichtenüberLow-Cost-Drahtlos-Modulesenden. . . . . . . . . . . . . . 457 14.2 DenArduinomiteinemZigBee-oder802.15.4-Netzwerkverbinden. . . . 463 14.3 EineNachrichtaneinenbestimmtenXBeesenden. . . . . . . . . . . . . . . . . 470 14.4 SensordatenzwischenXBeessenden . . . . . . . . . . . . . . . . . . . . . . . . . . 473 14.5 EinenmitdemXBeeverbundenenAktuatoraktivieren . . . . . . . . . . . . . 478 14.6 NachrichtenüberLow-Cost-Transceiversenden. . . . . . . . . . . . . . . . . . 483 14.7 MitBluetooth-Gerätenkommunizieren . . . . . . . . . . . . . . . . . . . . . . . . 489 15 Ethernet und Netzwerke 493 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.0 Einführung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493 15.1 EinEthernet-Shieldeinrichten. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 496 15.2 DieIP-Adresseautomatischbeziehen. . . . . . . . . . . . . . . . . . . . . . . . . . 498 15.3 HostnameninIP-Adressenumwandeln(DNS) . . . . . . . . . . . . . . . . . . . 500 15.4 DatenvoneinemWebserverabrufen . . . . . . . . . . . . . . . . . . . . . . . . . . 502 15.5 XML-DatenvoneinemWebserverabrufen. . . . . . . . . . . . . . . . . . . . . . 506 15.6 DenArduinoalsWebservereinrichten. . . . . . . . . . . . . . . . . . . . . . . . . 509 15.7 EingehendeWeb-Requestsverarbeiten. . . . . . . . . . . . . . . . . . . . . . . . . 512 15.8 DasAnfordernbestimmterSeitenverarbeiten. . . . . . . . . . . . . . . . . . . . 515 15.9 AntwortendesWebserversmitHTMLaufbereiten . . . . . . . . . . . . . . . . 519 15.10 Formulare(POST)verarbeiten. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523 VIII | Inhalt
Description: