Er zijn twee verschillende oplossingen:
1. Door PID in de regelaar en het kunnen beinvloeden van het schakelmoment. Hiervoor moet je regelaar hardware ter beschikking hebben en dit kunnen programmeren. Is heel veel werk en dat zie ik niet zitten.
2. Door een "black box" tussen Rx en ESC, met BEC de voeding uit de ESC, met opto uit de Rx. Meer is niet nodig. Voordeel is dat je met de remfunctie van de regelaar tussen soft en hard de warmte ontwikkeling kunt beinvloeden.
Meet Rx
Meet Hall passage 1/14 omwenteling
Bepaal welk signaal je naar de ESC wenst te sturen, deze logica kun je vrij kiezen. met PID of alleen een grenswaarde.
Stuur dit signaal uit
Interrupts vinden plaats op het moment van optreden en kosten vrijwel geen processor capaciteit, sampling op basis van polling kost veel resources.
Het Rx samplen heb ik hier beschreven, werkt op alle Atmel, dus ook Arduino dit zorgt er voor dat de Rx waarde altijd beschikbaar is. http://forum.pololu.com/viewtopic.php?f=2&t=2457
Je kunt dan in de main loop wachten tot de Hall voorbij komt en dan de PID berekening uitvoeren. Dit mag ook in een Hall interrupt, kwestie van smaak.
Hier moet je dan wel een beveiliging voor minimum en maximum waarde aan toevoegen, die PID kan namelijk uit je bereik lopen.
Om die pwm aan je ESC aan te bieden kun je het beste native pwm (timer1 OCR1A) toepassen, deze is dubbel gebufferd zodat je geen last kunt krijgen met de interrupts.
1. Door PID in de regelaar en het kunnen beinvloeden van het schakelmoment. Hiervoor moet je regelaar hardware ter beschikking hebben en dit kunnen programmeren. Is heel veel werk en dat zie ik niet zitten.
2. Door een "black box" tussen Rx en ESC, met BEC de voeding uit de ESC, met opto uit de Rx. Meer is niet nodig. Voordeel is dat je met de remfunctie van de regelaar tussen soft en hard de warmte ontwikkeling kunt beinvloeden.
Meet Rx
Meet Hall passage 1/14 omwenteling
Bepaal welk signaal je naar de ESC wenst te sturen, deze logica kun je vrij kiezen. met PID of alleen een grenswaarde.
Stuur dit signaal uit
Interrupts vinden plaats op het moment van optreden en kosten vrijwel geen processor capaciteit, sampling op basis van polling kost veel resources.
Het Rx samplen heb ik hier beschreven, werkt op alle Atmel, dus ook Arduino dit zorgt er voor dat de Rx waarde altijd beschikbaar is. http://forum.pololu.com/viewtopic.php?f=2&t=2457
Je kunt dan in de main loop wachten tot de Hall voorbij komt en dan de PID berekening uitvoeren. Dit mag ook in een Hall interrupt, kwestie van smaak.
Hier moet je dan wel een beveiliging voor minimum en maximum waarde aan toevoegen, die PID kan namelijk uit je bereik lopen.
Om die pwm aan je ESC aan te bieden kun je het beste native pwm (timer1 OCR1A) toepassen, deze is dubbel gebufferd zodat je geen last kunt krijgen met de interrupts.
Laatst bewerkt: