Combineren van 1 of meer Arduinos met een RaspberryPi (6 / 6 stap)

Stap 6: Arduino Code

Dit is de schets voor het Arduino(s).

 /* * drcAduino: * Arduino code to implement DRC - The Drogon Remote Control. * Allow another device talking to us over the serial port to control the IO pins. * * Copyright (c) 2012 Gordon Henderson * * Full details at: * http://projects.drogon.net/drogon-remote-control/... * * Commands: * 0x40 Ping Send back #: 0x23 * 0: 0x30 0xNN Set Pin NN OFF * 1: 0x31 0xNN Set Pin NN ON * i: 0x69 0xNN Set Pin NN as Input * o: 0x6F 0xNN Set Pin NN as Output * p: 0x6F 0xNN Set Pin NN as PWM * v: 0x6F 0xNN Set PWM value on Pin NN * r: 0x72 0xNN Read back digital Pin NN Send back 0: 0x30 or 1: 0x31 * a: 0x61 0xNN Read back analogue pin NN Send back binary 2 bytes, Hi first. * ********************************************************************************* * This file is part of drcAduino: * Drogon Remote Control for Arduino * http://projects.drogon.net/drogon-remote-control/... * * drcAduino is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * drcAduino is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with drcAduino. If not, see . ********************************************************************************* * 
 / Serial commands 
 #define CMD_PING ' #define CMD_PIN_0 '0' #define CMD_PIN_1 '1' #define CMD_PIN_I 'i' #define CMD_PIN_O 'o' #define CMD_RD_PIN 'r' #define CMD_RA_PIN 'a' #define CMD_PWM_PIN 'p' #define CMD_PWM_VAL_PIN 'v' 
 #define CMD_DEBUG_DIGITAL 'D' #define CMD_DEBUG_ANALOGUE 'A' 
 // Arduino with a 168 or 328 chip // ie. Arduino Classic, Demi, Uno. 
 #define MIN_APIN 0 #define MAX_APIN 5 
 #define MIN_DPIN 2 #define MAX_DPIN 13 
 void setup () { int pin ; Serial.begin (115200) ; Serial.println ("DRC Arduino 1.0") ; pinMode (13, OUTPUT) ; digitalWrite (13, HIGH) ; for (pin = 2 ; pin < 13 ; ++pin) { digitalWrite (pin, LOW) ; pinMode (pin, INPUT) ; } analogReference (DEFAULT) ; } 
 int myGetchar () { int x ; while ((x = Serial.read ()) == -1) ; return x ; } 
 void loop () { unsigned int pin ; unsigned int aVal, dVal ; for (;;) { if (Serial.available () > 0) { switch (myGetchar ()) { case CMD_PING: Serial.write (CMD_PING) ; continue ; 
 case CMD_PIN_O: pin = Serial.read () ; if ((pin >= MIN_DPIN) && (pin <= MAX_DPIN)) pinMode (pin, OUTPUT) ; continue ; 
 case CMD_PIN_I: pin = myGetchar () ; if ((pin >= MIN_DPIN) && (pin <= MAX_DPIN)) pinMode (pin, INPUT) ; continue ; 
 case CMD_PIN_0: pin = myGetchar () ; if ((pin >= MIN_DPIN) && (pin <= MAX_DPIN)) digitalWrite (pin, LOW) ; continue ; 
 case CMD_PIN_1: pin = myGetchar () ; if ((pin >= MIN_DPIN) && (pin <= MAX_DPIN)) digitalWrite (pin, HIGH) ; continue ; 
 case CMD_RD_PIN: pin = myGetchar () ; if ((pin >= MIN_DPIN) && (pin <= MAX_DPIN)) dVal = digitalRead (pin) ; else dVal = LOW ; Serial.write ((dVal == HIGH) ? '1' : '0') ; continue ; 
 case CMD_RA_PIN: pin = myGetchar () ; if ((pin >= MIN_APIN) && (pin <= MAX_APIN)) aVal = analogRead (pin) ; else aVal = 0 ; Serial.write ((aVal & 0xFF00) >> 8) ; // High byte first Serial.write ( aVal & 0x00FF ) ; continue ; 
 case CMD_PWM_PIN: pin = myGetchar () ; if ((pin >= MIN_DPIN) && (pin <= MAX_DPIN)) pinMode (pin, OUTPUT) ; continue ; 
 case CMD_PWM_VAL_PIN: pin = myGetchar () ; dVal = myGetchar () ; if ((pin >= MIN_DPIN) && (pin <= MAX_DPIN)) analogWrite (pin, dVal) ; continue ; } } } } 

Gerelateerde Artikelen

Hoe de controle van de arduino met een mail

Hoe de controle van de arduino met een mail

Er zijn een heleboel oplossingen waarmee een Arduino board: web oplossingen, desktop applicatie oplossingen, hardwareoplossingen. Maar hoe zit het met e-mail? Ja, vind je iets op het web, maar ze nodig hebben voor ethernet schilden en vaak is Arduino
Hoe te uploaden schetsen naar een Arduino met een kapotte Usb Port / Chip

Hoe te uploaden schetsen naar een Arduino met een kapotte Usb Port / Chip

Welkom bij mijn allereerste instructable :)Enige tijd geleden, ik had een sensor aangesloten op mijn Arduino Nano, maar de sensor werkte niet, dus heb ik besloten om mijn multimeter om te controleren de verbindingen. Ik een eind te maken op de 5 v-pi
Programmering Arduino met een Arduino

Programmering Arduino met een Arduino

Dit is mijn eerste Instructable. In dit Instructable ga ik u tonen hoe te programmeren van een Arduino met een Arduino. Er zijn geen stuurprogramma's nodig! Dit Instructable is ook handig voor het uploaden van schetsen aan de Chinese ArduinoStap 1: D
Program je Arduino met een Android toestel!

Program je Arduino met een Android toestel!

Halloin dit Instructable die ik wil je laten zien, kunt hoe u programmeren uw Arduino met uw Androïde apparaat. Het is zeer eenvoudig en goedkoop. Ook het laat ons toe om onze Arduino program waar ooit wij wilt, dit is nuttig voor permanent geïnstall
Hoe digitaliseren van dia's en negatieven met een DSLR film

Hoe digitaliseren van dia's en negatieven met een DSLR film

Een veelzijdig en stabiele setup voor het digitaliseren van dia's en negatieven met een DSLR of een camera met een macro-optie.Dit instructable is een update over het digitaliseren van 35mm negatieven (geupload juli 2011) met een aantal verbeteringen
Een Arduino met een ZIF-Socket bootload

Een Arduino met een ZIF-Socket bootload

Bootloading een Arduino met een ZIF-socket kunt u gemakkelijk programma een heleboel chips tegelijk zonder zorgen te maken over de pinnen mangelen. De reden hiervoor is dat de ZIF voor "zero insertion force staat", en zoals de naam al impliceert
Gebruik van een Arduino met een N64-controller

Gebruik van een Arduino met een N64-controller

er zijn tutorials die er voor het gebruik van een NES-controller met een Arduino, maar met behulp van de meer gecompliceerde N64-controller en de analoge joystick heeft een duidelijke aantrekkingskracht. Als u een Arduino rond hebt en wil niet te kop
Hoe te meten van de temperatuur zeer nauwkeurig met een Arduino en een TSYS01 Temperatuur Sensor Board.

Hoe te meten van de temperatuur zeer nauwkeurig met een Arduino en een TSYS01 Temperatuur Sensor Board.

Tijdens zijn studie in de Universiteit werden we uitgedaagd als onderdeel van een cursus werken in het ontwerpen van een doos met zeer nauwkeurige temperatuurregeling. Mocht het project te doen slagen, moesten meerdere vakken worden gebouwd en gebrui
Meten van Li-ion cel capaciteit met een arduino

Meten van Li-ion cel capaciteit met een arduino

Abstract: Programmeren van een arduino en bouw een circuit voor het meten van de bruikbare capaciteit van lithium-ion cellen.De motivatie voor dit project kwam tot stand omdat ik heb een heleboel 18650 lithium-ion-cellen die ik uit laptopbatterijen g
Controle van een Arduino met een horloge (TI eZ430 Chronos)

Controle van een Arduino met een horloge (TI eZ430 Chronos)

het horlogeDe Texas Instruments eZ430 Chronos is een coole gadget. Het heeft bidirectionele radiocommunicatie, en een gehele bos van sensoren: temperatuur, druk, versnelling.Het is in feite een development kit voor de MSP-430 (een low-power microcont
Beheren van 120-240 v wisselstroom met een relais met behulp van arduino

Beheren van 120-240 v wisselstroom met een relais met behulp van arduino

Ik ben gekomen over een heleboel instructables, tutorials, video's, waarin wordt beschreven hoe deze relais controle en dat is geweldig dat mensen maken deze. Maar elke één van hen vertelt me dat als ik niet hoe om te gaan met hoge spanningen weet, u
Android App MIT met behulp van de HC06 van de Bluetooth verbinding maken met een Arduino Uno

Android App MIT met behulp van de HC06 van de Bluetooth verbinding maken met een Arduino Uno

Speciale dank aan de volgende onlinebronnen voor getting mij begonnen...Willekeurige Nerd TutorialsForceTronics - youtubeStap 1: materialen:HC-06 Bluetooth-apparaatAndroid telefoon---ik heb een HTC 8, emulators voor iPhones zijn beschikbaar, maar ik
Controle van uw Arduino met een afstandsbediening

Controle van uw Arduino met een afstandsbediening

benieuwd over hoe om te controleren alles in uw huis met een eenvoudige afstandsbediening? Het is vrij eenvoudig en goedkoop.Stap 1: Verzamel spullen Hier is wat u nodig heeft:-Arduino (ik gebruik UNO)-Solderless breadboard-Een infrarood ontvanger-So
Macht van de Arduino met een mobiele telefoon

Macht van de Arduino met een mobiele telefoon

oude mobiele telefoons zijn makkelijk te verwerven, en ze hebben gebouwd in lithium opladen circuits. Wat een prachtige uitvalsbasis voor een voeding voor kleine mobiele dingen. Ik aangesloten een cellphone aan de arduino met de mogelijkheid om de mo