Sterownik silownika Atmega 8 - prośba o pomoc

To forum jest dla wszystkich pasjonatów mikrokontrolerów AVR Atmela. Wymiana doświadczeń i pomoc dla początkujących w pisaniu programów zarówno w C, Asemblerze jak i BASCOM. Zapraszam znawców tematu, aby pomogli wszystkim początkującym!
ODPOWIEDZ
Nick_2
Użytkownik
Posty: 105
Rejestracja: 09 maja 2007, 8:11

Sterownik silownika Atmega 8 - prośba o pomoc

Post autor: Nick_2 » 27 lip 2014, 20:00

Witam
Koledzy jestem w trakcie projektowania sterownika silownika z wbudowanym potencjometrem położenia. Sterownik ma zadanie proporcjonalnego wysuwania/wsuwania tłoczyska siłownika w zależnosci od połozenia potencjometru obrotowego. Dodatkowo ma być mozliwosc regulacji wysuwu siłownika za pomocą przycisków.
Całosć zaplanowałem tak że w normalnym trybie pracy siłownik reguluje sie potencjometrem. Położenie potencjometru zadawczego jest zczytywane przez jeden przetwornik A/C i porównywane z położeniem potencjometru w siłowniku. Mostek ktory steruje siłownikiem jest tak długo wysterowany aż oba wskazania potencjometrów się zrównają (oczywiście jest pewien margines błędu). Jak wcisne przycisk recznego wysuwu lub wsuwania siłownika tryb automatyczny jest blokowany. Odblokowanie go nastepuje dopiero po wcisnieciu dodatkowego przycisku. Wówczas układ przechodzi w tryb regulacji automatycznej i wysuwa silownik do zrówanania polozenia z potencjometrem zadawczym.

Regulacja automatyczna działa bez zarzutu, problem jest z regulacja za pomocą przycisków. Układ warjuje, czasami nie pozwala wysunac siłownika, czasami wysów działa. Czasami jest tak że po wcisnieciu przycisku silownik sie wysuwa i po chwili sam chowa tak jakby zadziałała regulacja automatyczna.

Ponizej zamieszczam listing programu gdyby ktos mogl mi pomoc i wskazac co jest nie tak byłbym bardzo wdzieczny.
Pozdrawiam
Załączniki
sterownik.zip
(1.43 KiB) Pobrany 290 razy

celtor
-
Posty: 18
Rejestracja: 27 cze 2013, 20:31
Lokalizacja: Toruń
Kontakt:

Post autor: celtor » 07 sie 2014, 17:25

Witam

Trochę nie potrzebnie wstawiasz opóźnienia w niektóre miejsca i to również może być przyczyną problemów. Bardziej elegancko byłoby napisanie funkcji np: Declare Sub Nazwa_funkcji(jakaś zmienna). Potem w programie dalej po za pętlą główną robić

Do
Call Nazwa_funkcji()

loop


Sub Nazwa_funkcji(jakaś zmienna)
//Operacje do wykonania
End sub

W pętli głównej odwołujesz się poprzez Call Nazwa_funkcji


Dlaczego Dim P3 As Word masz taki typ zmiennej?

Ważna rzecz zabezpiecz się podczas tej operacji: P2 = P2 - 24 Gdy P2<24

Awatar użytkownika
kayron
Użytkownik
Posty: 2088
Rejestracja: 21 wrz 2008, 12:53
Lokalizacja: Poland
Kontakt:

Post autor: kayron » 08 sie 2014, 20:08

Taka prośba jak kolega pisze o siłowniku to niech go prawidłowo nazywa, czyli elektosiłownik, a nie siłownik, bo można pomyśleć że chce sterować siłownikiem hydraulicznym a to inna bajka.
Własna konstrukcja czy fabryczna ?

ODPOWIEDZ