Skocz do zawartości
Gunslinger

[Bascom] Jeden impuls przy każdej zmianie stanu.

Pomocna odpowiedź

Co prawda to forum o robotyce, a urządzenie chce zainstalować w samochodzie, ale znacie się na mikrokontrolerach. Więc do rzeczy. Układ ma być spięty z krańcówką. Przy każdej zmianie jej stanu ma podać 0.5s impuls na siłownik. Uc to Mega8. Tylko przy jednym stanie o jednej, a przy drugim o odwróconej polaryzacji (0 +- , 1 -+). Najlepiej chyba użyć dwóch przekaźników. Jednak nie wiem jak w bascomie rozwiązać to programowo?

Udostępnij ten post


Link to post
Share on other sites

Napisz jaśniej bo to co napisałeś jasne nie jest.

Jeśli wygenerujesz 0.5s impuls to jak zaraz chcesz zrobić o odwróconej polaryzacji?

Po co tam przekaźniki? to ma silnikiem w dwie strony sterować czy co?

Narysuj jakiś schemat to program pomożemy napisać.

Udostępnij ten post


Link to post
Share on other sites

No więc w drzwiach przycisk/krańcówka przy zamku. I jak zamykam drzwi, to zamykam obwód. Wtedy układ ma zasilić siłownik elektromagnetyczny +-. Gdy otworzę drzwi, to otwieram obwód, i znowu ma zasilić impulsem, ale odwrócona polaryzacja -+, bo teraz siłownik ma otwierać.

Chyba dość jasno opisałem, więc nie będzie trzeba schematu. Praktycznie też to mają być 2 siłowniki, więc będzie sporo A, dlatego przekaźniki.

Udostępnij ten post


Link to post
Share on other sites

No to muszą być 2 przekaźniki podłączone do 2 wyjść aby zrealizować 2-kierunkowe załączanie (albo mostek h).

Nie napisałeś ani nie narysowałeś do jakiego wejścia podłączasz sygnał wiec ciężko powiedzieć czy można użyć przerwań zewnętrznych czy nie.

Zakładając że wejście podłączone zostanie do zwykłej nóżki to najważniejsza część programu może wyglądać np tak

wejscie alias pin....
wyjscie1 alias port....
wyjście2 alias port...
reset wyjscie1
reset wyjscie2

dim stan_poprzedni as bit

do
if wejscie<>stan poprzedni then
stan_poprzedni = wejscie

if wejscie=1 then
set wyjscie1
waitms 500
reset wyjscie1
end if

if wejscie=0 then
set wyjscie2
waitms 500
reset wyjscie2
end if

end if

loop

Udostępnij ten post


Link to post
Share on other sites

Dzięki za pomoc. Dopiero teraz wykrzesałem chwilę czasu, ale Bascom wywala błąd w lini:

 if wejscie<>stan poprzedni then  

3 parameters expected

Udostępnij ten post


Link to post
Share on other sites

Brakuje "_" pomiędzy "stan", a "poprzedni", czyli powinno być "stan_poprzedni".

Udostępnij ten post


Link to post
Share on other sites

Rzeczywiście. Nie spostrzegawczy ja. Dziękuje za szybką pomoc. Wrzucam na procka i robię test na już gotowej stykówce.

[ Dodano: 04-06-2015, 17:47 ]

$regfile = "m8def.dat"                                      '
$crystal = 1000000


Config Portb = Output
Config Portd = Input
Config Portc = Output



   Wejscie Alias Pind.7
   Wyjscie1 Alias Portb.0
   Wyjscie2 Alias Portb.1
   Reset Wyjscie1
   Reset Wyjscie2

   Dim Stan_poprzedni As Bit

   Do
   If Wejscie <> Stan_poprzedni Then
   Stan_poprzedni = Wejscie
   End If

   If Wejscie = 1 Then
   Set Wyjscie1
   Waitms 500
   Reset Wyjscie1
   End If

   If Wejscie = 0 Then
   Set Wyjscie2
   Waitms 500
   Reset Wyjscie2
   End If


   Loop

Na tym kodzie gdy nózka PD7 wisi w powietrzu, to przekaźnik 1 załącza się na ok. 4 s, po czym wyłącza się, załącza się 2 na 0.5s. I tak w koło. Ale jak podepnę tą nóżkę do zasilania lub masy nie dzieje się nic.

If Wejscie <> Stan_poprzedni Then
   Stan_poprzedni = Wejscie

Nie rozumiem jak działa ten zapis.

Udostępnij ten post


Link to post
Share on other sites

Zastanawiam się jaki sens ma stosowanie tam mikrokontrolera, Można rozwiązać takie zagadnienie przy użyciu układu czasowego '121, lub '123 i kondensatora, który wytworzy nam impuls. A później takim układem sterować mostek-h. Moim zdaniem takie rozwiązanie będzie nawet pewniejsze, bo jest to wykonywane sprzętowo, a z mikrokontrolerem mogą się pojawić problemy. Im prostsze rozwiązanie tym leprze.

Udostępnij ten post


Link to post
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Gość
Napisz odpowiedź...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.


×
×
  • Utwórz nowe...