Skocz do zawartości

[Kurs] BASCOM - lekcja3 - zaczynamy programować


Pomocna odpowiedź

Dziękuje za chęci ale nie.

Chodzi mi o to czy jak będe pisał program do robota i będę chciał żeby ciągle jeździł tylko jak na wyjście np PD0 i PD1 będzie napięcie to mam to napisać to w takiej formie że jak będzie napięcie to się wyłączają czy muszę coś jeszcze wspomnieć w kodzie jeśli tak to co?

Proszę o rade?

Dziękuje.

Chodzi mi o to czy jak będę pisał program w Bascomie to chcąc żeby robot się zatrzymał (wyłączył ja jedno koło napęd a na drugie włączył) jak uderzy w ścianę czy coś jak to napisać?

Jeśli rozumiesz zasadę działania programu przykłdowego, tego z diodą i mostku H, to nie powinienś mieć problemu z napisaniem tego programu.

Algorytm jest taki:

jeśli robot uderza w ścianę(nie wiem jak to chcesz wykryć), to:

{

zatrzymaj silnik 1;

włącz silnik 2;

}

koniec

wykrycie uderzenia (jeśli to będzie jakiś przycisk) polega na sczytaniu stanu pinu, a zatrzymanie/włączenie silnika z ustawieniem stanów 2 pinów na silnik

Czy mam to tak napisać że jak stan na pd0 jest równy 1 to zatrzymaj a na Pd1 jest równy 0 to jedź i żeby zadziałało w odwrotną strone to podspodem mam tak samo czy inaczej jeśli inaczej to proszę mnie poprawidz.

To tak napisz. Człoiek najlepiej uczy się na błędach, i jeśli sam szuka odpowiedzi na pytania niekoniecznie od innych.

Jeśli szukasz gotowca - może go dostaniesz, ale i tak to rozwiązanie na krótką metę.

Napisz i sam siebie poprawisz jeżeli coś będzie nie tak.

Czy taki program jest poprawny i czy wszystko w nim gra.

Robot ma robić tak jeśli uderzy o w ściane to wtedy będzie impuls na jednej z dwóch przełączników i się wykręci w podobny sposób jak światłolub

oto kod proszę sprawdzić mnie

 $regfile = "atmega8.dat"                 'najpierw określamy typ proca
$crystal = 1000000                          'definiujemy z jakim taktowaniem będzie pracował


config portb=input             'port b  jako wejścia
      portb=&B00000000                     'wszędzie stan spoczynkowy-0
config portd=output                         'pprt d jako wyjścia
      Portd = &B0000000                                    'wszędzie stan spoczynkowy-1


       Do                                                  'pętla nieskończona
     if pinb.0=1 then                         'jeżeli przycisk 1 wciśnięty
  toggle portd.0                           'zmień stan wyprowadzenia
  End If                                                   'koniec bloku warunkowego
  loop                                       'koniec pętli

End                                                         'koniec programu
Czy taki program jest poprawny i czy wszystko w nim gra.

Robot ma robić tak jeśli uderzy o w ściane to wtedy będzie impuls na jednej z dwóch przełączników i się wykręci w podobny sposób jak światłolub

oto kod proszę sprawdzić mnie

Ludzie trochę samodzielności! Czy masz już wykonanego robota? Jeśli tak to dlaczego nie przetestujesz swojego programu na robocie? Ścieżka postępowania jest trochę inna, najpierw robi się sprzęt potem soft. Po co mamy ci pomagać pisać soft skoro jeszcze nie masz sprzętu a gdy go zrobisz to np podłączysz czujniki pod inne wyprowadzenia procka i ten soft nie będzie się do niczego nadawał.

Za chwilę zacznę wyrzucać do kosza tego typu pytania, ponieważ do niczego one nie prowadzą a robią tylko bałagan na forum.

profesorek_96, Najlepiej zrób tak: Zbuduj prostego robota

-1 mikroswitch

-2silniczki i 2 kółka

-1 dioda

-Atmega8

Później napisz migająca diodę po wciśnięciu switcha, a następnie po 2 szybkich kliknięciach włączenie kółek. Najlepiej też podłącz H-bridge żeby nie spalić UC. Zrobiłem identycznego robota i był to mój pierwszy projekt z UC. 😎

Później napisz migająca diodę po wciśnięciu switcha, a następnie po 2 szybkich kliknięciach włączenie kółek.

Szczerze, łatwiej jest użyć dwóch switch'y tak, żeby każdy miał jedno zadanie niż jednego tak, żeby miał dwa zadania. Jak to opisałeś "2 szybkie kliknięcia" mogą się nie sprawdzić bez wyeliminowania drgań styków co dla początkującego też nie jest proste nie mówiąc już o samym rozwiązaniu dwukrotnego kliknięcia w jakimś odstępie czasu.

Jasne, że tak, nie widzieliście listingu żadnego programu w bascomie?

To co napiszecie będzie się wykonywało po kolei, tak jak to jest napisane w programie.

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...