Skocz do zawartości

[Bascom AVR] Program do obsługi turbiny LF


Pomocna odpowiedź

Tak, bo regulatory silników sterowane są z drążka gazu a ten nie ma sprężynki ustawiającej go w stan neutralny (50%). Tutaj, jak zrozumiałem ten "trzeci" stan używany jest tylko podczas procedury programowania - i to też jest rzadkość w programowaniu regulatorów.

Normalnie każdy regulator ma zabezpieczenie przez niekontrolowanym startem śmigła polegające właśnie na warunku, by po włączeniu zasilania było 0% PWM. Wiele nadajników RC ma dodatkowe ograniczenie, że w ogóle nie startuje gdy drążek gazu po włączeniu zasilania jest powyżej np. 10%. Regulator, w odróżnieniu od serwa, nie ma stanu neutralnego. Zakres PWM 0-100% zmienia obroty silnika 0-100%.

Soban, czy do procesora wgrany jest program, który robi 0% przez 5 sekund a potem daje ognia? Żadnych pętli itp?

Wciąż nie dostaliśmy odpowiedzi na pytanie o zegar procesora i fusebity. Skup się, tu WSZYSTKO musi być dobrze, inaczej nie zadziała. Jeżeli nie rozumiesz o co pytamy, napisz to.

rezolut: rzeczywiście instrukcja jest w tym fragmencie niejasna:

"When you connect the motor battery to the H.King

ESC, you will hear an initialization tone from the

motor and a series of beeps telling you how many

Lithium Polymer cells in series are in your battery

pack, and the servos will be active"

Pomijając bezsensowną, ostatnią część o serwach - reszta wydaje się jasna. Ale dalej mamy:

"The H . K i n g ESC will not arm unless you

move your throttle stick to the lowest position. When

the H.King ESC receives the low throttle command, it

will arm and play a double tone through the motor ,
indicating it is armed and now ready to run."

Czyli jak rozumiem, ma być 0% od początku, włączamy zasilanie, wysłuchujemy informacji i liczbie celi LiPol, potem podwójny bip jako uzbrojenie i.. gotowe? Z resztą to samo kiedyś zeznawał Treker: włączamy 0%, czekamy i start.

A może spróbuj wydłużyć opóźnienie? Czuję, ze problem jest w zegarze procesora...

To tak :

- To jest wgrany program :

#include<avr/io.h>
#include <util/delay.h>

int main(void)
{
//Ustawienie wyjsc
DDRD = 0x20;

TCCR1B = 0;
TCNT1 = 0;
ICR1 = 20000;
OCR1A = 1000;
TCCR1A = 0x82;
TCCR1B = 0x1A;

OCR1A=1000; // PPM 0%
_delay_ms(5000); // Czekaj 5sec
OCR1A=2000; // PPM 100% i jazda..

while(1)
{
	// Program robota
	}
}

- To ustawienie zegara :

- A tak odczytuje Fuse bity mój program (nie wiem jak inaczej sprawdzić)

Zaraz, a napisałes kiedyś (było późno, wiem), że masz kwarc 16MHz. To ustawienie które nam pokazałeś na pierwszym ekranie to tylko informacja dla kompilatora, by przy obliczaniu opóźnień zakładał, że zegar ma 8MHz. System nie ma szans sprawdzić ani zweryfikować jaki masz kwarc naprawdę. Więc jeśli podłączyłeś 16MHz a "oszukałeś" kompilator, że masz 8 to wszystko jest źle.

EDIT: A to jeszcze tu dopiszę, skoro soban już śpi.. :->

Jeśli rzeczywiście z tym kwarcem to prawda, zrób tak:

- zmień oczywiście w swoim IDE ustawienie z 8 na 16MHz co sprawi, że będą się dobrze liczyły opóźnienia funkcji _delay_ms() i podobnych,
- pomnóż wszystkie liczby w moim kodzie razy 2 bo timer chodzi dwa razy szybciej niż zakładaliśmy, więc musi zliczać dwa razy więcej wszystkiego, by czas był taki jak chcemy:

TCCR1B = 0;

TCNT1 = 0;

ICR1 = 40000;

OCR1A = 2000;

TCCR1A = 0x82;

TCCR1B = 0x1A;

OCR1A=2000; // PPM 0% <-- to można wyrzucić, jest wcześniej choć w pętli while przydawało się

_delay_ms(5000); // Czekaj 5sec

OCR1A=4000; // PPM 100% i jazda..

while(1)

{

// Program robota

}

No i napisz, czy jeszcze się nie zniechęciłeś do tej piekielnej robotyki.. przepraszam, turbinki.

  • Lubię! 1

Do robotyki nigdy <3 Do turbinki no i owszem : )

SZOK! Zapierdziela jak dzika : D Nie wiem jak bardzo Ci dziękować (może na zawodach kiedyś się jakoś odwdzięczę?): ( Przepraszam za kłopot i za brak wiedzy.

Jeszcze raz MEGA dziękuję!!!

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...