RC kontroll och Arduino: A färdiga arbeten (5 / 10 steg)
Steg 5: Djup vävnad Signal massera...
Innan vi fortsätter har jag en liten annons. Utanför byggnaden din kod i ett svep, jag rekommenderar att du endast ändra/lägga till en sak i taget när man bygger på den ursprungliga koden. Testa dina ändringar, om det lyckas fortsätta och om inte bör du lätt veta var du ska börja felsöka. Kommentera bort sektioner eller rader kod är ett bra sätt att enkelt hitta ditt misstag.
Nu tillbaka till funktionen presentationen. Kan fokusera på inställningsområde får tydliga gränser utan att offra för mycket upplösning. Medan du läser besluta de råa värdena om de värden som du vill använda för din låga och höga värden och ställa in dem som konstant variabler. Tänk på de villkor som du behöver för att starta om du vill begränsa dina data. Följande är mina två metoder att signalera massera och olika variabler.
Variabler:
RX signal massera värden
CONST int RXLo = 920;
CONST int RXHi = 1640;
CONST int RXDeadLo = 1265;
CONST int RXDeadHi = 1295;
CONST int RXMid = 1280;
Metod 1:
Input Signal massera
för (int jag = 0; jag < = 8; i ++) //Signal konditionering loop
{
om (ch [i] < = lo) //Trim buller från nedre änden
{
CH [i] = lo;
}
om (ch [i] < = deadhi & & ch [i] > = deadlo) //Create döda-Band
{
CH [i] = center;
}
om (ch [i] > = Hej) //Trim buller från övre änden
{
CH [i] = Hej;
}
}
Metod 2:
Signal massera
för (int jag = 0; jag < = 8; i ++) //Signal konditionering loop
{
chEng [i] = begränsa (chEng [i], RXLo, RXHi); Trim nedre och övre
om (chEng [i] < = RXDeadHi & & chEng [i] > = RXDeadLo) {//Create döda-Band
chEng [i] = RXMid;}
}
Som ni kan se den andra metoden är lite mindre kod och ger ett perfekt exempel på hur funktionen tvinga används.