Helikopter RC-Quadrotor (17 / 37 stap)

Stap 12: Arduino Demo: PWM Input


Hier is een schets van de Arduino die je laat hoe pin-verandering-interrupts zien en een timer wordt gebruikt om te lezen in de puls breedte van verschillende signaal draden. Wanneer een verandering in de pin staat wordt gedetecteerd, de interruptvector registreert een tijdstempel met behulp van de timer en het verschil tussen tijdstempels is de pulsbreedte.

Ik heb ook een logic analyzer screenshot om u te tonen hoe de signalen van mijn RC radioontvangers eruit toegevoegd. Elke één van deze peulvruchten hebben een pulsbreedte tussen 1000 en 2000 microseconden, de periode is ongeveer 20 milliseconden.

Voor meer informatie, onderzoek:

  • PWM
  • Servo-signalen
  • ISRs in AVR (Interrupt Service Routine)
  • PCINT, verandering van de Pin onderbreken
  • 16-bits timers in AVR

Hier is de code:

VOID Setup
{
DDRC = 0; pinnen als input

inschakelen van PCINT 18 tot en met 23
PCICR | = (1 << PCIE2);
PCMSK2 = 0XFC;

Serial.begin(115200);
}

typedef struct {}
byte rand;
unsigned long riseTime;
unsigned long fallTime;
unsigned int lastGoodWidth;
} tPinTimingData;
vluchtige statische tPinTimingData pinData [6 + 1];
vluchtige statische uint8_t PCintLast;

ISR(PCINT2_vect)
{
uint8_t bit;
uint8_t huidige;
uint8_t mask;
uint32_t currentTime;
uint32_t tijd;

de pin-Staten krijgen voor de aangegeven poort.
huidige = PINC & 0xFC;
masker = huidige ^ PCintLast;
PCintLast = huidige;

currentTime = micros();

masker is pcint pinnen die zijn gewijzigd.
voor (uint8_t ik = 0; ik < 6; i ++) {}
bits = 0x04 << i;
Als (bits & masker) {}
voor elke pin veranderd, de tijd van het wereldverslag van verandering
Als (bits & PCintLast) {}
tijd = currentTime - pinData [i] .fallTime;
pinData [i] .riseTime = currentTime;
Als ((tijd > = 10000) & & (tijd < = 26000))
pinData [i] .edge = 1;
anders
pinData [i] .edge = 0; Ongeldige stijgende rand gedetecteerd
}
else {}
tijd = currentTime - pinData [i] .riseTime;
pinData [i] .fallTime = currentTime;
Als ((tijd > = 800) & & (tijd < = 2200) & & (pinData [i] .edge == 1)) {}
pinData [i] .lastGoodWidth = tijd;
pinData [i] .edge = 0;
}
}
}
}
}

void loop
{
Serial.println();
voor (byte ik = 0; ik < 6; i ++) {}
Serial.Print("C");
Serial.Print ((int) i + 1);
Serial.Print(":");
Serial.Print(pinData[i].lastGoodWidth);
Serial.Print (",");
}

delay(500);
}

Gerelateerde Artikelen

Wat is quad copter een een beetje over het maken van een

Wat is quad copter een een beetje over het maken van een

Wat is een Quad-copter?een onbemande helikopter met vier rotoren. meer gewoonMultiCopters aërodynamisch onstabiel zijn en absoluut vereisen een boordcomputer (aka vlucht controller) voor stabiele vlucht. Dientengevolge, zij zijn "Fly by Wire" sy
PCB Quadrotor (borstelloze)

PCB Quadrotor (borstelloze)

Quadrotors zijn de nieuwe Segways: een fascinerend, enigszins magische, zelf stabiliserende platform dat eenieder tech wil hebben. U kan niet rijden een quadrotor (Nou, misschien kunt u), maar ze vliegen, en kun je er zelf van kras bouwen!Ik hielp me
Een Wide-Body Quadrotor - ontwerpen en ideeën om te bouwen van uw eigen.

Een Wide-Body Quadrotor - ontwerpen en ideeën om te bouwen van uw eigen.

Multirotors--hoe cool zijn!Een quadrotor is een soort multirotor vliegtuigen. Deze vliegtuigen zijn gemakkelijker dan ooit om te bouwen. U kunt beginnen met deze machine en verhogen de mogelijkheden (en de complexiteit) als u meer informatie. Uw erva
Quadrotor verlichting kit.

Quadrotor verlichting kit.

Slechts twee weken geleden pakte ik een nieuwe RC speelgoed, de Blade mQX quadchopper, en jongen ben ik onder de indruk! Er is niet een dag sinds dat ik nog niet het gevlogen en kreeg grote betekenis van voltooiing van het leren van een nieuwe truc v
Helikopter Camera Mount

Helikopter Camera Mount

In dit instructable ik zal u tonen hoe maak je een camera mount voor een luchtfoto camera of video geschoten. Dit is specifiek ontworpen voor punt en shoot camera's, zodat u wellicht om het te wijzigen voor GoProsStap 1: Stap 1: verzamelen u toebehor
Bouw van een Lego-helikopter

Bouw van een Lego-helikopter

de volgende is een stapsgewijze proces voor de bouw van een Lego-helikopter.Stap 1: De benen Neemt het platte (2 x 4) gele stuk en twee vlakke (1 x 4) zwarte stukken hechten aan de onderkant. Deze zwarte stukken zijn de benen van de helikopter.Stap 2
Maak een leuk houten Flying helikopter

Maak een leuk houten Flying helikopter

Hallo iedereen!In deze ible ga ik om u te tonen hoe maak je een leuke spinnen helikopter met alleen gemeenschappelijke materialen die gemakkelijk kunnen worden gevonden in bijna elk huis.Het is een project dat ik heb gemaakt toen ik een kind was, dus
Elastieken Band wierp helikopter

Elastieken Band wierp helikopter

dit is een speelgoed die ik gebruikte om mee te spelen als een kind. Het was altijd een goedkope plastic een dat ik kocht, maar dacht dat het zou makkelijk genoeg te maken, zo gaf het een gaan.Uiteraard kun je met het ontwerp afhankelijk van welke ma
Toy houten helikopter

Toy houten helikopter

Dit is een zeer eenvoudige houtbewerkingsproject te maken van een helikopter speelgoed voor uw jong geitje. Het maakt ook een geweldig cadeau. De houtsoorten die ik koos zijn volkomen onschadelijk zijn voor kinderen (geen oliën of splinters), en ik b
Helikopter Model van balpen Cap

Helikopter Model van balpen Cap

een ambacht van overgebleven materiaal dat niet alleen je kinderen zullen love it, maar uw vrienden en collega's misschien hou het ook. Laat een helikopter Model van balpen GLB voor uw handgemaakte gift maken.Stap 1: materialen Alles wat we nodig om
Rubber Band helikopter

Rubber Band helikopter

Dit is een elastiekje helikopter die is minder veeleisend op leveringen. Het vliegt ongeveer 20 voeten omhoog in de lucht!Alles wat u nodig hebt is:-1 Rubber band-Een lange blikje frisdrank of thee-1 BIC pen-Tape-De paperclip* Let op * We zullen word
Hoe maak je een Mini-helikopter die vliegt

Hoe maak je een Mini-helikopter die vliegt

deze video ziet u hoe maak je een mini helikopter die u bedient door het draaien van het in uw handen.Meeste mensen hebben de materialen al thuis dus het moet kosten erg weinig als om het even wat bij allen.Plezier hebben en veilig zijn.Als u wilt zi
Arduino In vlucht, een Arduino waarmee een helikopter kan

Arduino In vlucht, een Arduino waarmee een helikopter kan

ik heb veel metaalzaag voor het besturen van een rc helikopter met een arduino, maar ik heb een helikopter met behulp van radiografische besturing (niet ir led). Met een paar delen zal ik u tonen hoe te bouwen uw eigen! Lees de hele instructable voor
Puzzlebox baan: Een infrarood helikopter besturen met behulp van een Arduino

Puzzlebox baan: Een infrarood helikopter besturen met behulp van een Arduino

In dit Instructable zullen we uitleggen hoe de infrarood signalen worden gebruikt door een afstandsbediening om een speeltje of apparaat, dan laten zien hoe een eenvoudige schakeling kan worden toegevoegd aan een Arduino aan dezelfde bedienen via gra