piotreks-89 Styczeń 27, 2012 Udostępnij Styczeń 27, 2012 W Bascomie przy odczycie stanu pinu daje się PinX.n (gdzie X to port, a n to pin). Ty powinieneś dawać polecenie PortX.n
klonyyy Styczeń 27, 2012 Autor tematu Udostępnij Styczeń 27, 2012 Nie jestem pewien czy o to chodziło ale przy takim ustawieniu działa tylko dioda zielona : $regfile "M8def.dat" $regfile = 8000000 Config Portd.2 = Output ' konfiguracja portów Config Portd.3 = Output Config Adc = Single , Prescaler = Auto , Reference = Aref 'konfiguracja ADC Start Adc Dim W As Word Const Granica = 300 Portd.2 = 0 Portd.3 = 0 Do W = Getadc(5) 'odczytywanie ADC If W < Granica Then 'jeśli 'w' jest mniejsze od granicy dioda zielona zapalona Gosub Led1 'idż do led1 (dioda zielona zapalona Elseif W > Granica Then 'jeśli 'w' jest większe od granicy dioda czerwona zapalona Gosub Led2 'idż do led2 (dioda czerwona zapalona) End If Loop End Led1: Portd.2 = 1 ' zapal diodę zieloną Portd.3 = 0 'a zgaś czerwoną Return 'powróć do pętli Led2: Portd.3 = 1 'Zapal Diodę Czerwoną Portd.2 = 0 'a zgaś zieloną Return 'powróć do pętli
piotreks-89 Styczeń 27, 2012 Udostępnij Styczeń 27, 2012 Za $Regfile nie masz znaku "=" Miałeś $Regfile tam gdzie miało być $crystal. Program zapisz sobie tak: $regfile = "M8def.dat" $crystal = 8000000 '/'/'/'/'/'/'/'Konfiguracja portow'/'/'/'/'/'/'/' Config Portd.2 = Output Config Portd.3 = Output Portd.2 = 0 Portd.3 = 0 '/'/'/'/'/'/'/'Konfiguracja ADC'/'/'/'/'/'/'/' Config Adc = Single , Prescaler = Auto , Reference = Aref 'konfiguracja ADC '/'/'/'/'/'/'/'Deklaracje zmiennych'/'/'/'/'/'/'/' Dim W As Word '/'/'/'/'/'/'/'Granica reagowania na biala linie'/'/'/'/'/'/'/' Const Granica = 300 Start Adc '/'/'/'/'/'/'/'Petla nieskonczona'/'/'/'/'/'/'/' Do 'poczatek programu W = Getadc(5) 'odczytywanie ADC If W < Granica Then 'jeśli 'w' jest mniejsze od granicy dioda zielona zapalona Gosub Led1 'idż do led1 (dioda zielona zapalona Elseif W > Granica Then 'jeśli 'w' jest większe od granicy dioda czerwona zapalona Gosub Led2 'idż do led2 (dioda czerwona zapalona) End If Loop End '/'/'/'/'/'/'/'Koniec petli nieskoczonej'/'/'/'/'/'/'/' Led1: Portd.2 = 1 ' zapal diodę zieloną Portd.3 = 0 'a zgaś czerwoną Return 'powróć do pętli Led2: Portd.3 = 1 'Zapal Diodę Czerwoną Portd.2 = 0 'a zgaś zieloną Return 'powróć do pętli
klonyyy Styczeń 27, 2012 Autor tematu Udostępnij Styczeń 27, 2012 Dalej nic sama dioda zielona zapalona czerwona świeci się tylko na początku programu
piotreks-89 Styczeń 27, 2012 Udostępnij Styczeń 27, 2012 To spróbuj zamiast Elseif dać zwykłe If. Nieraz takie błahe błędy potrafią przysporzyć człowiekowi wielu godzin stresu i wyrywania włosów z głowy
klonyyy Styczeń 27, 2012 Autor tematu Udostępnij Styczeń 27, 2012 Dobra, działa prawie tak jak powinien - na początku świecą się dwie diody po przyłożeniu czujnika do białej powierzchni i naciśnięciu przycisku resetu zielona dioda gaśnie gdy drugi raz przycisnę przycisk resetu gdy czujnik jest na białej powierzchni świecą się dwie diody i tak w kółko ( co zrobić żebym nie musiał ciskać resetu ? Dodałem tylko stop ADC $regfile = "M8def.dat" $crystal = 8000000 '/'/'/'/'/'/'/'Konfiguracja portow'/'/'/'/'/'/'/' Config Portd.2 = Output Config Portd.3 = Output Portd.2 = 0 Portd.3 = 0 '/'/'/'/'/'/'/'Konfiguracja ADC'/'/'/'/'/'/'/' Config Adc = Single , Prescaler = Auto , Reference = Aref 'konfiguracja ADC '/'/'/'/'/'/'/'Deklaracje zmiennych'/'/'/'/'/'/'/' Dim W As Word '/'/'/'/'/'/'/'Granica reagowania na biala linie'/'/'/'/'/'/'/' Const Granica = 500 Start Adc '/'/'/'/'/'/'/'Petla nieskonczona'/'/'/'/'/'/'/' Do 'poczatek programu W = Getadc(5) Stop Adc 'odczytywanie ADC If W < Granica Then 'jeśli 'w' jest mniejsze od granicy dioda zielona zapalona Gosub Led1 'idż do led1 (dioda zielona zapalona If W > Granica Then 'jeśli 'w' jest większe od granicy dioda czerwona zapalona Gosub Led2 'idż do led2 (dioda czerwona zapalona) End If End If Loop '/'/'/'/'/'/'/'Koniec petli nieskoczonej'/'/'/'/'/'/'/' Led1: Portd.2 = 1 ' zapal diodę zieloną Portd.3 = 0 'a zgaś czerwoną Return 'powróć do pętli Led2: Portd.3 = 1 'Zapal Diodę Czerwoną Portd.2 = 0 'a zgaś zieloną Return 'powróć do pętli
piotreks-89 Styczeń 27, 2012 Udostępnij Styczeń 27, 2012 End If powinien być po każdym warunku, a nie skumulowane kilka pod koniec programu $regfile = "M8def.dat" $crystal = 8000000 '/'/'/'/'/'/'/'Konfiguracja portow'/'/'/'/'/'/'/' Config Portd.2 = Output Config Portd.3 = Output Portd.2 = 0 Portd.3 = 0 '/'/'/'/'/'/'/'Konfiguracja ADC'/'/'/'/'/'/'/' Config Adc = Single , Prescaler = Auto , Reference = Aref 'konfiguracja ADC '/'/'/'/'/'/'/'Deklaracje zmiennych'/'/'/'/'/'/'/' Dim W As Word '/'/'/'/'/'/'/'Granica reagowania na biala linie'/'/'/'/'/'/'/' Const Granica = 500 Start Adc '/'/'/'/'/'/'/'Petla nieskonczona'/'/'/'/'/'/'/' Do 'poczatek programu W = Getadc(5) Stop Adc 'odczytywanie ADC If W < Granica Then 'jeśli 'w' jest mniejsze od granicy dioda zielona zapalona Gosub Led1 'idż do led1 (dioda zielona zapalona End If If W > Granica Then 'jeśli 'w' jest większe od granicy dioda czerwona zapalona Gosub Led2 'idż do led2 (dioda czerwona zapalona) End If Loop '/'/'/'/'/'/'/'Koniec petli nieskoczonej'/'/'/'/'/'/'/' Led1: Portd.2 = 1 ' zapal diodę zieloną Portd.3 = 0 'a zgaś czerwoną Return 'powróć do pętli Led2: Portd.3 = 1 'Zapal Diodę Czerwoną Portd.2 = 0 'a zgaś zieloną Return 'powróć do pętli Staraj się zawsze usuwać niepotrzebne wcięcia, bo wprowadzają nieraz w błąd. Poza tym to lepiej się czyta jak wszystkie wcięcia są tam gdzie być powinny 1
klonyyy Styczeń 27, 2012 Autor tematu Udostępnij Styczeń 27, 2012 Dalej niestety to samo tak jak pisałem w poprzednim poście
KD93 Styczeń 27, 2012 Udostępnij Styczeń 27, 2012 [quote="piotreks-89"]Do 'poczatek programu W = Getadc(5) Stop Adc 'odczytywanie ADC If W < Granica Then 'jeśli 'w' jest mniejsze od granicy dioda zielona zapalona Gosub Led1 'idż do led1 (dioda zielona zapalona End If If W > Granica Then 'jeśli 'w' jest większe od granicy dioda czerwona zapalona Gosub Led2 'idż do led2 (dioda czerwona zapalona) End If Loop [/quote] A gdzie włączasz ADC? Nie wiem po co je wyłączasz po pomiarze, ale później go nie wyłączasz, wiec ADC wykonuje tylko pierwszy pomiar. [ Dodano: 27-01-2012, 19:16 ] W Bascomie przy odczycie stanu pinu daje się PinX.n (gdzie X to port, a n to pin). Ty powinieneś dawać polecenie PortX.n Hah, kurde, ale gafa że tego nie zauważyłem. 1
klonyyy Styczeń 28, 2012 Autor tematu Udostępnij Styczeń 28, 2012 Dzięki za wszystko program działa jak należy : $regfile = "M8def.dat" $crystal = 8000000 '/'/'/'/'/'/'/'Konfiguracja portow'/'/'/'/'/'/'/' Config Portd.2 = Output Config Portd.3 = Output Portd.2 = 0 Portd.3 = 0 '/'/'/'/'/'/'/'Konfiguracja ADC'/'/'/'/'/'/'/' Config Adc = Single , Prescaler = Auto , Reference = Avcc 'konfiguracja ADC '/'/'/'/'/'/'/'Deklaracje zmiennych'/'/'/'/'/'/'/' Dim W As Word '/'/'/'/'/'/'/'Granica reagowania na biala linie'/'/'/'/'/'/'/' Const Granica = 300 Start Adc '/'/'/'/'/'/'/'Petla nieskonczona'/'/'/'/'/'/'/' Do 'poczatek programu W = Getadc(5) 'odczytywanie ADC If W < Granica Then 'jeśli 'w' jest mniejsze od granicy dioda zielona zapalona Gosub Led1 'idż do led1 (dioda zielona zapalona End If If W > Granica Then 'jeśli 'w' jest większe od granicy dioda czerwona zapalona Gosub Led2 End If 'idż do led2 (dioda czerwona zapalona) Loop End '/'/'/'/'/'/'/'Koniec petli nieskoczonej'/'/'/'/'/'/'/' Led1: Portd.3 = 0 ' zapal diodę zieloną Portd.2 = 1 'a zgaś czerwoną Return 'powróć do pętli Led2: Portd.2 = 0 Portd.3 = 1 'Zapal Diodę Czerwoną Return 'a zgaś zieloną 'powróć do pętli
klonyyy Luty 5, 2012 Autor tematu Udostępnij Luty 5, 2012 Mam zaszczyt ogłosić że Haker działa jak należy i niedługo pojawi się filmik z jego udziałem ( po tym jak doczepię mu jeszcze dwa czujniki linii i zrobię porządne dohyo a nie takie z dwóch, czarnych kartek a4 ) mam zamiar pojawić się z nim na Robomaticon
klonyyy Luty 11, 2012 Autor tematu Udostępnij Luty 11, 2012 Filmik z walk Hakera z nieruchomym przeciwnikiem: (z ok 0,7 kilogramową paczką blaszek) Dohyo zrobione z brystolu (niestety) ale o dziwo sprawuje się bardzo dobrze Czujniki może pochylę bardziej do dołu by widziały niższych przeciwników. Robot będzie miał prawdopodobnie osłonę na te okropne kable i będze pomalowany na czarno Zamiast baterii będzie również pakiet lipo 1
small-man Luty 13, 2012 Udostępnij Luty 13, 2012 Robot wyszedł ci jak na razie bardzo fajny jednak mógłbyś zmienić ogumienie na jakieś z większym współczynnikiem tarcia ponieważ po filmiku można zobaczyć że aktualne jest za słabe aby w 100% spożytkować posiadany przez niego moment obrotowy. P.S. Szkoda że nie uchwyciłeś na filmie momentu w którym opadają klapki.
klonyyy Luty 13, 2012 Autor tematu Udostępnij Luty 13, 2012 Oczywiście uszczelki będą zmienione Haker ma je od ok 2-3 miesięcy więc już się zużyły ale cały czas szukam czegoś lepszego Klapki nie opadają podczas jazdy ponieważ Haker jeździ jeszcze na bateriach które nie mieszczą się w robocie a lipol wraz zładpwarką już jedzie do mnie ( chyba z hong Kongu ) i nie jestem pewien czy dojdzie przed zawodami bo kupiłem to na hobby Kingu a tam dochodzi po 10-30 dniach.
klonyyy Luty 18, 2012 Autor tematu Udostępnij Luty 18, 2012 Filmiki z opuszczaniem klinów: Niestety Haker nie doczeka się li pola - będzie jeżdził na bateriach ponieważ hobby king nie ma chyba zamiaru przysłać mojej paczki czekam już na potwierdzenie zapłaty od 7 dni i nikt się nie odezwał. Mógłby mi ktoś powiedzieć czy słyszał o podobnych przypadkach lub sam ich doświadczył? Wczoraj Haker zyskał włochate koła by był trudniej wykrywalny (wiem że mało to pomoże ale zawsze to coś ), oraz 'flagi' które mają mylić przeciwnika ale nie jestem pewien czy jest to zgodne z regulaminem więc da się je łatwo zdemontować Oponki są tymczasowe przed zawodami przykleję nowe i prześlę zdjęcia.
Pomocna odpowiedź
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ę »