RC kontroll och Arduino: A färdiga arbeten (3 / 10 steg)
Steg 3: Snabb Arduino Tuitorial
Här kommer jag endast att täcka de funktioner som jag kommer att använda senare och kommer att göra mitt bästa för att lägga till bästa praxis på vägen.
; -förklarar slutet av linjen, använda i slutet av varje rad med kod med undantag för efter klammerparenteser och villkorliga satser,
ex: om (x == 5)
{
y = 5;
}
/ / -line kommentar, används början av raden för att kommentera
/ * kommentar * / -block kommentar, Använd för flera ledningar kommentarer som hjälp-filen i början av din kod. Hjälp-filen förklarar vad filen i koden är för och av vem.
int - deklarera heltal typ variabel, ex: int variabel; eller int variabel-5.
const - före variabeldeklaration att säkerställa variabel inte ändra i programmet. Användbart att lagra information för villkorliga satser. ex: const int variabel = 5;
#include <? > - ingår externa filer som bibliotek, ex: #include < Servo.h > ** ingen; behövs
Servo - deklarera variabeln kopplade till servo control, används endast med Servo.h bibliotek. ex: Servo steer;
bifoga (pin-) - fästa servo till en pin plats, används inuti setup loop, ex: Servo.attach(5)
ogiltiga inställningar () - där alla dina inställningsdata är att deklarera indata- och stift samt seriell hastighet.
Serial.begin (kurs) - initilizes seriell anslutning finns på tanke överföringshastigheter, förväntade baud klassar 300, 600, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600 eller 115200. ex: Serial.begin(115200)
pinMode (stift, läge) - anger om en PIN-kod är en ingång eller utgång, används inuti setup loop, ex: pinMode(5,INPUT); eller pinMode(chA,OUTPUT); här är chA en konstant lagrar värdet för den refererade stiftet.
void loop() - huvudprogrammet ska loopas.
för (initiering, tillstånd, öka) - upprepar ett satsblock, ex: för (int jag = 0; jag < = 8; i ++); Det första variabeln "i" kommer endast att användas inom den för loop och "i" kan användas för flera för loopar. För det andra är villkorlig uttalande och om du vill använda lika med måste du använda två! För det tredje är om du är att dra ifrån eller lägga till ett värde i början eller slutet av slingan. --Jag subtrahera en på början, ++ jag till en början, jag--subtrahera en i slutet, i ++ Lägg en på avsluta.
om (villkorar) - kommer att köra som innehåller kod om villkoret är uppfyllt, ex: om (x == 5) eller om (x < = 5) om du har flera eller komplexa tillstånd kan du använda logiska AND(&&), OR(||), NOT(!) med enda slutade villkorssatser.
OCH ex: om (x > 0 & & x < 5) sant endast om båda uttrycken är sanna
ELLER ex: om (x > 0 || y > 0) sant är antingen uttryck är sant
INTE ex: om (! x > 0) sant endast om uttrycket är false
elseif (villkorar) - följer en if uttalande för separat logik med separata villkor. Detta fungerar bra när man läser en sensor och för olika sensormätningar du ska göra olika saker.
ex:
IF(sensor<10) {gör detta}
ElseIf(sensor>10) {göra det}
annat - ger antingen / eller funktion till if eller elseif uttalanden. Kan en operation utföras oavsett om någon föregående om eller elesif uttalanden inte är uppfyllda.
ex:
IF(sensor<10) {gör sak 1}
ElseIf(sensor>10) {gör sak 2}
annat {gör sak 3}
skriva (var) - används med Servo.h bibliotek för att en ny position eller ett värde till en servo. ex: steer.write(position);
Serial.print (data) - används med seriell ingång och kommer ut en variabels värde eller en teckensträng på samma rad i terminal-fönstret.
var ex: Serial.print(x);
sträng ex: Serial.print("x=");
Serial.println (data) - används med seriell ingång och kommer att skriva ut data på samma rad följt av en automatisk återgång att skapa en ny rad. Följer samma syntax som Serial.print().
karta (var, fromLow, fromHigh, toLow, laboratoriumtohighkobolt) - användningsområden heltal matematik att re skala en variabel eller ett värde från ett område till ett annat. Mycket användbart för att läsa en sensor och sedan produktionen till en servo. ex: x=map(x,0,1027,0,255); Jag rekommenderar starkt att i stället för manuellt genom att ange värden som du anger konstant variabler att diktera spänner, ex: x=map(x,analogLo,analogHi,servoLo,servoHi);
Side Observera:
När du kommer till punkten att göra ett projekt finns det några saker att tänka på. När du ansluter en kabel från din sensor utdata direkt till Arduino styrelsen har du en "flytande" signal, som fungerar bra för att testa men inte för själva genomförandet. Om du lägger till ett motstånd från signalen till marken hjälper det att du har en ren signal. Ju högre frekvens desto större orsak du måste använda en dra ner motstånd. Jag vanligtvis använder minst en 1 k Ohm motstånd men beroende på hur lång wire, närhet till andra signal ledningar, och om kabeln loopas. Ett bra sätt att se på effekterna av detta med ett oscilloskop och variera motståndet används eller använda en potentiometer. För att rätt storlek motståndet för ditt individuella fall är en instructable eller engineering lektion på egen hand. Den korta versionen är att räkna ut vad produktionen av sensorn är beräknat för och en serie motstånd och potten för att uppnå den bästa signalen varierande RC (motstånd kondensatorn transienta analys) egenskaper.
Fullständig länksökvägar:
http://Arduino.cc/en/guide/homepage
www.makershed.com/Getting_Started_with_Arduino_2nd_Edition_p/mbk1.htm
http://Arduino.cc/en/tutorial/homepage
http://Arduino.cc/en/reference/homepage