Kombinera 1 eller fler Arduinos med en RaspberryPi (6 / 6 steg)

Steg 6: Arduino kod

Det här är skissen för Arduino(s).

/*
* drcAduino:
* Arduino kod att genomföra demokratiska republiken Kongo - The Drogon fjärrkontrollen.
* Tillåt en annan enhet talar till oss över den seriella porten att styra IO pinnar.
*
* Copyright (c) 2012 Gordon Henderson
*
* Fullständiga uppgifter på:
http://projects.Drogon.net/Drogon-Remote-Control/...
*
* Kommandon:
* 0x40 Ping Send tillbaka #: 0x23
* 0: 0x30 0xNN iväg Pin NN
* 1: 0x31 0xNN ange Pin NN på
* i: 0x69 0xNN ange Pin NN som indata
* o: 0x6F 0xNN ange Pin NN som utgång
* p: 0x6F 0xNN ange Pin NN som PWM
* v: 0x6F 0xNN ange PWM värde på Pin NN
* r: 0x72 0xNN läsa tillbaka digital Pin NN skicka tillbaka 0: 0x30 eller 1: 0x31
* s: 0x61 0xNN Läs tillbaka analoga pin NN skicka tillbaka binära 2 byte, Hi först.
*
*********************************************************************************
* Denna fil är en del av drcAduino:
* Drogon fjärrkontroll för Arduino
http://projects.Drogon.net/Drogon-Remote-Control/...
*
* drcAduino är fri programvara: du kan vidaredistribuera det och/eller ändra
* det enligt villkoren i GNU General Public License som offentliggjorts av
* Free Software Foundation, antingen version 3 av licensen, eller
* (på ditt alternativ) någon senare version.
*
* drcAduino distribueras i hopp om att det kommer att vara användbar,
* men utan garantier; utan att ens underförstådd garanti om
* SÄLJBARHET eller lämplighet för ett visst ändamål. Se den
* GNU General Public License för mer detaljer.
*
* Du bör ha fått en kopia av GNU General Public License
* tillsammans med drcAduino. Om inte, se.
*********************************************************************************
*

/ Seriell kommandon

#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 skulle "
#define CMD_DEBUG_ANALOGUE "A"

Arduino med en 168 eller 328 chip
dvs. Arduino Classic, Demi, Uno.

#define MIN_APIN 0
#define MAX_APIN 5

#define MIN_DPIN 2
#define MAX_DPIN 13

Ogiltiga inställningar)
{
int pin;

Serial.BEGIN (115200);
Serial.println ("demokratiska republiken Kongo Arduino 1.0");
pinMode (13, OUTPUT);
digitalWrite 13, hög.
för (pin = 2; pin < 13. ++ pin)
{
digitalWrite (pin, låg);
pinMode (pin, mata);
}
analogReference (standard).
}

int myGetchar)
{
int x;
medan ((x = Serial.read ()) == -1)
;
återvändande x;
}

Ogiltig loop)
{
unsigned int pin;
unsigned int aVal, Mårtens;

för (;)
{
om (Serial.available () > 0)
{
Växla (myGetchar ())
{
fall CMD_PING:
Serial.write (CMD_PING);
fortsätta;

fall CMD_PIN_O:
PIN-kod = Serial.read ();
om ((pin > = MIN_DPIN) & & (pin < = MAX_DPIN))
pinMode (pin, utgång);
fortsätta;

fall CMD_PIN_I:
PIN-kod = myGetchar ();
om ((pin > = MIN_DPIN) & & (pin < = MAX_DPIN))
pinMode (pin, mata);
fortsätta;

fall CMD_PIN_0:
PIN-kod = myGetchar ();
om ((pin > = MIN_DPIN) & & (pin < = MAX_DPIN))
digitalWrite (pin, låg);
fortsätta;

fall CMD_PIN_1:
PIN-kod = myGetchar ();
om ((pin > = MIN_DPIN) & & (pin < = MAX_DPIN))
digitalWrite (pin, hög);
fortsätta;

fall CMD_RD_PIN:
PIN-kod = myGetchar ();
om ((pin > = MIN_DPIN) & & (pin < = MAX_DPIN))
Mårtens = digitalRead (pin);
annat
Mårtens = låg;
Serial.write ((dVal == HIGH)? '1' : '0') ;
fortsätta;

fall CMD_RA_PIN:
PIN-kod = myGetchar ();
om ((pin > = MIN_APIN) & & (pin < = MAX_APIN))
aVal = analogRead (pin);
annat
aVal = 0;
Serial.write ((aVal & 0xFF00) >> 8); Övre byte första
Serial.write (aVal & 0x00FF);
fortsätta;

fall CMD_PWM_PIN:
PIN-kod = myGetchar ();
om ((pin > = MIN_DPIN) & & (pin < = MAX_DPIN))
pinMode (pin, utgång);
fortsätta;

fall CMD_PWM_VAL_PIN:
PIN-kod = myGetchar ();
Mårtens = myGetchar ();
om ((pin > = MIN_DPIN) & & (pin < = MAX_DPIN))
analogWrite (pin, Mårtens);
fortsätta;
}
}
}
}

Se Steg
Relaterade Ämnen

Hur man styr arduino med ett mail

Det finns många lösningar för att styra en Arduino ombord: web lösningar, desktopen applicering lösningar, lösningar. Men hur mail? Ja, du kan hitta något på nätet men de behöver ethernet sköldar och ofta är Arduino som skickar e-post. Jag kontroll A...

Kontrollera en Arduino med kakao (Mac OS X) eller C# (Windows)

nej jag pratar inte om att kontrollera en Arduino med en chokladkaka eller kakaopulver. Jag talar om programmeringsspråket Objective-C. Så vad är kakao? Kakao är ett ramverk skrivet i programmeringsspråket Objective-C för Mac OS X. Nej det är inte et...

Hack-A-lampan eller hur man kontrollerar Arduino med din smartphone

Jag fick en ikea-lampa i min lägenhet, det fungerar bra, vänd om, vänd bort... som allt det gör. Det är kindy tråkig, inte sant? Jag tänkte, Tänk om jag hacka den? Sedan kommer RGB-lysdioder till mitt huvud och idéer började flöda.På jobbet visste ja...

Programmera din Arduino med en Android-enhet via Bluetooth

Hej världen, i detta Instructable jag vill visa dig, hur du programmerar din Arduino Uno med din Android-enhet via Bluetooth. Det är mycket enkelt och så billig. Det ger oss också möjlighet att programmera vårt Arduino där allt vi vill över trådlöst...

Kontrollera alla ljus eller elektrisk apparat med du Tablet PC eller smartphone (wifi)

Kontrollera alla ljus eller elektrisk apparat med du Tablet PC eller smartphone (wifi) med hjälp av arduino, blynk och en wemos / ESP8266 styrelsenI den här guiden kommer vi att göra något jag kallar en wifi kontrollerad ac switch. (Men den fungerar...

Hur man driva Dynamixel AX-12A servon (med en RaspberryPi)

Jag bestämde mig för att använda vissa Dynamixel AX-12A motorer för ett projekt, och slutade med att koden ett bibliotek för dem, så jag tänkte jag skulle dela vad jag lärt mig.Trots att lite dyrare, har denna motor ett par fördelar jämfört med mer v...

SÄKER laddning av exotiska batterier, NiMH, LiPO och komplexa batteripaket eller flera celler.

Vill inte använda vanliga NiCd eller Nickle metallhydrid batteri laddareVissa exotiska celler i storlekar av 14500 (AA), D och specialiserade 3,7 till 12v LiPO förpackningar är billigt och lätt att få men batteri laddare är ofta svåra att hitta eller...

Pyduino, gränssnitt Arduino med Python via seriell kommunikation

Lär dig hur gränssnittet arduino via seriell kommunikation med python med hjälp av pyduino biblioteket. Det finns några andra tutorials ute på instructables om hur gränssnittet arduino med python men de Visa inte dig hur man gör allt, där förhoppning...

Styra servon över Internet via Arduino med Teleduino

servon har många användningsområden och kan vara mycket roligt att leka med. Något som kan vara massor av kul tar kontroll av upp till sex servon över internet! Tänk er möjligheterna.Denna process görs enkelt med Teleduino skissen för din ethernet ak...

Styra Arduino med python based web API (ingen php)

I denna guide kommer jag visa dig hur att kontrollera din arduino enhet från en webbsida! Efteråt, jag ska visa dig hur man styr din arduino från din mobila enhet och även skapa en webb-baserad API för att styra din arduino från din webbsida med andr...

Styra en Arduino med ett armbandsur (TI eZ430 Chronos)

klockanTexas Instruments eZ430 Chronos är en cool gadget. Det har dubbelriktad radiokommunikation och en hel massa sensorer: temperatur, tryck, acceleration.I själva verket är det ett development kit för MSP 430 (en lågenergi-mikrokontroller), som TI...

Styra Arduino med Gamepad

Nyligen har jag varit nyfiken på bli vän Arduino eller några andra microcontroller med en gamepad för att få fysisk interaktion med sakerna jag gör, men det verkade vara någon snabbt eller billigt sätt att göra så.De flesta lösningar deltar:Helt demo...

Arduino med GSM och PIR-Sensor (engelska/arabiska)

درس التحكم بالاردوينو عن طريق شبكة الجوالالمقدمة:يتيح لك هذا الدرس استخدام شبكة الجوال للتحكم بضوء الليد بالمنزل عن طريق ارسال رسالة نصية وايضا استخدام الاردوينو للاتصال الاتوماتيكي من المنزل لجوالك عند استشعار اي حركة في الغرفة لسماع نوع الاصوات في...

Hur man kontrollerar Arduino med RC mottagare på 10 minuter

I denna tutorial kommer jag att visa dig hur du styr din Arduino med RC mottagare och sändare. Detta är ett mycket lätt upp och bara ta ca 10 minuter beroende på hur många saker du styr. I denna tutorial när rodret pinnen är vänster eller höger det g...

Hur ladda upp skisser till en Arduino med en trasig USB-Port / Chip

Välkommen till min allra första instructable :)För en tid sedan hade jag en sensor kopplad till min Arduino Nano men sensorn fungerade inte, så jag bestämde mig att få min multimeter kontrollera anslutningarna. Jag satte ena änden på 5V stiftet på se...

Lägg till en Video bugg eller vattenstämpel med hjälp av endast Windows Movie Maker!

Detta Instructable kommer att förklara steg för steg hur du lägger till en bugg eller vattenstämpel med hjälp av endast Windows Movie Maker! Ingen programvara att köpa! Den kabel kanaler använder en bugg eller vattenstämpel till ID deras kanal, men n...

Montering av flera solpaneler med gamla fönster blind rails och hårdvara

bor i Sydafrika har vi 320 + soliga dagar per år men mycket lite upptaget av solvärmeteknik. Detta var främst på grund av att vi hade billig (men inte pålitlig) el från vår enda nationell makt leverantör. Denna situation förändrats drastiskt de senas...

Programmera din Arduino med en Android-enhet!

Heji detta Instructable jag vill visa dig kan hur du programmera din Arduino med din Android-enhet. Det är mycket enkelt och billigt. Det ger oss också möjlighet att programmera vårt Arduino där allt vi vill, detta är nyttigt för permanent installera...

Styra Arduino med Android-telefon via Bluetooth

Hej gott folk, här kan du lära dig hur man styr Arduino med Android-telefon via Bluetooth. Du kan använda din smartphone som en fjärrkontroll för dig hem belysningssystem eller du kan använda som en drone remote etc.För att göra anslutningen mellan A...