Witam. Chcę liczyć obroty z impulsatora (sinus) porównać je z jakąś wartością i gdy zrównają się z nią i ją przekroczą zapali się dioda LED. Cienko u mnie z bascomem. Kiedyś pisałem proste miganie diodami na mega8. Tutaj mam problemy ;/ Poniżej kod. Wywala mi błędy :/ $regfile = "attiny13.dat" $crystal = 10000000 Config Portb = &B000000 'Dioda Led Portb = &B111111 Dim Obr As Long ' Deklaracja Zmiennej Config Timer1 = Counter , Edge = Rising Enable Interrupts Enable Timer0 On Timer0 Licz Timer0 = 0 Do Loop End Licz: Start Timer0 Wait 1 Stop Timer0 Obr = Timer0 If Obr >= 85 Then ' 85 = 5k Obr / Min Portb.4 = 0 Else Portb.4 = 1 End If
|
|||
Już wiem :) Brakowało mi
Już wiem :) Brakowało mi kilku rzeczy:
Teraz nie mam błędów. Ale chętnie posłucham porad jak to lepiej zrobić, żeby szybciej liczył częstotliwość.
dzięki
Re: Obroty
Użyj drugiego timera do odliczania czasu zamiast stosować wait. poza tym procedura Licz powinna się odnosic do drugiego timera ktory odlicza ta sekundę czasu. Po odliczeniu powinien zatrzymac drugi timer
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Nie poradzę sobie ;/ Mógłby
Nie poradzę sobie ;/ Mógłby ktoś pomóc w napisaniu?
Dowiedziałem się, że zapalanie diody led musi być w pętli do..loop i w niej odczytywać wartość zmiennej Obr. Więc kod nie będzie działał.
A co do timerów, muszę zmienić w tryb timer? Nie wiem jak to zrobić, żeby timer zaczął liczyć jak pojawi się zbocze narastające, i skończył liczyć jak pojawi się kolejne zbocze narastające.
Re: Program
Spróbuj w takiej wersji na początek. Jak zadziała i zacznie mierzyć w miarę poprawnie to zrobimy timer
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Jak b4 ma być wyjsciem to
Jak b4 ma być wyjsciem to początkowy stan powinien mieć 0 prawda?
No i wtedy po przekroczeniu obr powinien dostać 1.
Co do testów to mam mały problem. Nie mogę w taką pogodę zrobić nic przy motocyklu. Wpadłem na pomysł, żeby pobierać obroty z wiatraczka komputerowego. Tam idzie prostokąt więc jest ułatwienie, chociaż do testów bym miał. Nie wiem tylko czy się nada :) Wyjście ma typu otwarty kolektor.
Re: Obroty
Stan początkowy B.4 nie ma znaczenia bo i tak wpisujesz albo zero albo 1 do niego. Wiatraczek komputerowy będzie ok
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
W takim razie podepnę ten
W takim razie podepnę ten wiatraczek. Tylko na wejście INT0 czy T0? Bo już się pogubiłem. Z Twojego kodu wynika za na T0. Nie wiem tylko jak oszacować obroty z tego wiatraczka żeby mi się dioda zapaliła. Mam do niego taki regulator obrotów i żebym mógł to zasymulować.
Re: went
Pewnie ze 2000 obrotów będzie miał. Dioda sie powinna palić jak bedzie działał, natomiast jak zatrzymasz palcem lub spowolnisz to powinna zgasnąć.
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
lcd
Podpiąłem sobie LCD do procka. Wyświetla mi tylko w 1 linii same "kwadraciki". W czym problem?
Re: LCD
Podłączyłeś LCD do tiny13? raczej będzie problem coś skompilować pod tego procka bo ma mało pamięci.... LCD się tak zachowuje jak jest nie podłączony (6 pinów jest potrzebne) lub jak nie ma kontrastu dobrze ustawionego
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Czemu? Zobaczymy, jak na
Czemu? Zobaczymy, jak na razie chcę sprawdzić LCD. Podłączyłem od D4 do D7, E,RS, R/W do masy i zasilanie, no i kontrast z V0 do masy przez potencjometr. Kontrast się dobrze reguluje. Nóżki tiny13 wybrałem sobie dowolnie bez jakichś reguł ale tak samo ustawiłem w bascomie.
EDIT:
Sprawdzałem to już 10 razy i dalej kicha :/ Chyba wyświetlacz padł.
Re: LCD
Gdyby lcd padł to nie wyświetlałby kwadracików. Kwadraty wyświetlają się gdy wyświetlacz jest niewłaściwie zainicjowany, czyli jednym słowem mówiąc, niewłaściwie podpięty.
Ja tak miałem na początku jak bujałem lcd z wyprowadzeniami z boku w dwóch rzędach obok siebie.
Moja strona w powijakach
Po całym dniu dochodzenia...
Po całym dniu dochodzenia... nie będzie mi działał LCD bo przecież PB5 nie jest ustawiony jako I/O. Musiałbym zmieniać fuse bity. A na próbę tego nie zrobię bo nie mam potem sprzętu aby powrócić do default.
Re: LCD
Żeby LCD działał potrzebujesz 6 pinów, innego podłączenia nie znam. Zmień kontroler na tiny2313 na czas testów. Potem jak Ci zadziała to wywalisz obsługę LCD i wgrasz program do tiny13
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Zrobiłem to z diodą led i
Zrobiłem to z diodą led i wiatraczkiem od PC. Szczerze to dziwnie się to zachowuje. Kręcił się to świeciło, zatrzymałem palcem przestało, ale już ponownie nic się nie dzieje.
Odpiąłem też sygnał z
Odpiąłem też sygnał z wiatraczka. Dioda świeci a nie powinna i czasem gaśnie potem znów świeci.
Te losowe błyski powodował
Te losowe błyski powodował programator którego nie odpiąłem.
Ale na tą chwilę nie zapala mi się dioda niestety. Co z prescalerem?
paavo
Re: Licznik
Spróbuj zamiast timer napisac counter:
popatrz jeszcze do helpa bascoma
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Nic to nie daje :( Ja nie
Nic to nie daje :(
Ja nie wiem czy to może być wina tego, że zasilam wiatrak 5V? I przez to nie daje on sygnału?
Re: Wiatrak
Podłącz ten wiatrak na 12V tak jak powinien być, nie powinno to jednak mieć znaczenia
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
ciąg dalszy
Witam. Dokonałem kilka przeróbek w kodzie wg. poleceń znajomego.
Kod wygląda tak:
Niestety po podpięciu wiatraczka, czy impulsatora procesor nie reaguje. Sygnał z impulsator na pewno dochodzi. Wie ktoś w czym problem?
Re: Obroty
Po pierwsze to spróbuj zrobić to na tiny2313, który ma więcej ramu i wywal polecenia
prawdopodobnie nie ma miejsca w ramie na stos
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Zmieniłem na tiny2313. Nic to
Zmieniłem na tiny2313. Nic to nie dało. Program nie liczy poprawnie prędkości wg. kodu poniżej:
Fuse bity ustawione wg. poradników na tej stronie. Układ zachowuje się tak, że dioda losowa zapala się i gaśnie w każdym zakresie obrotów. Czasami jakby ustawało gaszenie przy wyższych obrotach.
$regfile =
Kod był sprawdzany na atmega169, i działa, dioda podpięta pod portb0, czas oczekiwania (czyt. reakcja) wynosi 2 s. i można ją zmniejszyć zmniejszając timer i zwiększając mnożnik rpm, ale zmniejsza się wtedy dokładność (narazie wynosi 30 rpm), polecam zostawić tak jak jest. Po prostu podłącz diodę do portb0 i gotowe.
Aha nie dawaj prosto sygnału
Aha nie dawaj prosto sygnału z wiatraka podłączonego na 12 v bo proc się zajara, jeśli wyjście jest OC to trzeba rezystorem podciągnąć, aha no i all wentyle jakie miałem w ręka dawały 2 imp na obrót dlatego jeśli się kręciły np. 5rpm to z kabelka wychodziło jakby 10rpm.
Dzięki za pomoc ale niestety
Dzięki za pomoc ale niestety potrzebuję szybszej reakcji ja zmianę obrotów. Największą dokładność chcę uzyskać w zakresie 8-11 tys. obr/min. Chcę to wykorzystać przy motocyklu. Robiłem już próby i są duże zakłócenia. Chyba będę musiał zastosować jakiś filtr. Ma ktoś na to pomysły?