| Author |
Message
|
Belialek Poziom 19

Joined: 01 Dec 2004 Posts: 612 Location: Wrocław
|
#1
27 Feb 2010 21:26 [Atmega8][Bascom] Problem ze sterowaniem fazowm |
|
|
|
Witam,
Mam problem ze sterowaniem fazowym - konkretnie to winnym jest najprawdopodobniej układ detekcji zera (programowy bądź sprzętowy).
Poniżej fragment schematu:
Testuję na żarówce 25W - jedyne co udało mi się uzyskać to proste włączenie/wyłączenie żarówki, tak więc układ załączający (oparty na MOC 3021) jest sprawny.
Oprócz własnych bojów z Bascomem, próbowałem również korzystać z programów innych forumowiczów (oczywiście numery portów itd pozmieniałem aby pasowały do mojego układu), i tak:
Post 1
Po wrzuceniu powyższego programu układ nie działał...
Post 2
A tutaj żarówka cały czas świeciła się z maksymalną jasnością.
Ponieważ nie mam dostępu do oscyloskopu, nie mam możliwości sprawdzenia czy na wyjściu układu detekcji zera mam odpowiednie sygnały... Jednak bardzo "łopatologicznymi" metodami (próba zliczania + dioda LED) doszedłem do wniosku iż na tym wyjściu cały czas jest stan wysoki...
Po próbie zliczania stanów niskich:
| Code: |
$regfile = "m8def.DAT"
$crystal = 8000000
Config Pind.2 = Input 'Port INT0
Config Pind.0 = Output 'Port diody LED
Dim Licznik As Byte
Do
If Pind.2 = 0 Then
Incr Licznik
If Licznik = 200 Then
Licznik = 0
Toggle Portd.0
End If
End If
Loop
|
Diody są ciągle zapalone, co świadczyć może albo o braku impulsów z układy detekcji, albo o mojej marnej znajomości elektroniki :) Zdaję sobie sprawę, że int0 można ustawić w tryb detekcji zbocza opadającego bądź rosnącego - ale pomysłu jak zliczyć te skoki nie mam (jak pisałem wyżej programy które wykorzystywały własności int0 które działały u autorów, u mnie nie działają).
Nie mam pojęcia co jeszcze mogę zrobić i sprawdzić - schemat układu wydaje się być poprawny, przebić nigdzie nie ma. Będę wdzięczny za każdą pomoc.
Z góry dziękuję i pozdrawiam!
|
|
| Back to top |
|
 |
Google

|
#
27 Feb 2010 21:26 |
|
|
|
|
|
| Back to top |
|
 |
atom1477 Poziom 25

Joined: 14 Jul 2005 Posts: 6360
|
#2
27 Feb 2010 21:38 Re: [Atmega8][Bascom] Problem ze sterowaniem fazowm |
|
|
|
R4 może mieć za dużą wartość.
A R3 to po co?
|
|
| Back to top |
|
 |
alien_audio Poziom 14

Joined: 11 Jun 2007 Posts: 172 Location: Lublin
|
#3
27 Feb 2010 21:54 Re: [Atmega8][Bascom] Problem ze sterowaniem fazowm |
|
|
|
Witam.
Przede wszystkim należy ustalić czy następuje prawidłowo detekcja
zbocza. Więc w pierwszym warunku po detekcji zera wstaw waitms 5.
W przeciwnym wypadku przy tej częstotliwości kwarcu nie zauważysz działa programu czyli migania led.
|
|
| Back to top |
|
 |
janbernat Poziom 23

Joined: 21 Oct 2008 Posts: 3680 Location: Warszawa
|
#4
27 Feb 2010 21:57 Re: [Atmega8][Bascom] Problem ze sterowaniem fazowm |
|
|
|
Pind.2=0 to chyba masz prawie cały czas- przy przejściu przez 0 diody w transoptorach przestają świecić, tranzystory się zatykaja i przez chwilę na kolektorach- czyli na wejściu procesora masz 1.
Może licz jedynki.
|
|
| Back to top |
|
 |
Google

|
#
27 Feb 2010 21:57 |
|
|
|
|
|
| Back to top |
|
 |
gromleon Poziom 21

Joined: 30 Nov 2006 Posts: 1351
|
#5
27 Feb 2010 21:57 Re: [Atmega8][Bascom] Problem ze sterowaniem fazowm |
|
|
|
Wywal R3 , używam tego samego sposobu detekcji i oprócz tego r3 cała reszta jest tak samo jak u mnie i działa to dobrze. A r2 daj 100 K
|
|
| Back to top |
|
 |
Belialek Poziom 19

Joined: 01 Dec 2004 Posts: 612 Location: Wrocław
|
#6
27 Feb 2010 22:09 Re: [Atmega8][Bascom] Problem ze sterowaniem fazowm |
|
|
|
| atom1477 wrote: |
R4 może mieć za dużą wartość.
A R3 to po co? |
Przeglądałem kilka tematów na temat detekcji zera i u innych się sprawdzały te wartości :)
| alien_audio wrote: |
Witam.
Przede wszystkim należy ustalić czy następuje prawidłowo detekcja
zbocza. Więc w pierwszym warunku po detekcji zera wstaw waitms 5.
W przeciwnym wypadku przy tej częstotliwości kwarcu nie zauważysz działa programu czyli migania led. |
Tak zrobiłem - nie widać żadnej różnicy
| janbernat wrote: |
Pind.2=0 to chyba masz prawie cały czas- przy przejściu przez 0 diody w transoptorach przestają świecić, tranzystory się zatykaja i przez chwilę na kolektorach- czyli na wejściu procesora masz 1.
Może licz jedynki. |
Przy liczeniu jedynek momentalnie się licznik przekręcał - przy liczeniu do 10000 dioda mrugała częściej niż raz na sekundę... Z moich obliczeń wynika, że w ciągu sekundy, licznik powinien dojść zaledwie do 100. Tak więc wynika z tego, iż na Pind.2 mam ciągle stan wysoki.
| gromleon wrote: |
| Wywal R3 , używam tego samego sposobu detekcji i oprócz tego r3 cała reszta jest tak samo jak u mnie i działa to dobrze. A r2 daj 100 K |
Spróbuję.
EDIT: Żeby nie było niedomówień - u mnie VCC = 5V.
|
|
| Back to top |
|
 |
janbernat Poziom 23

Joined: 21 Oct 2008 Posts: 3680 Location: Warszawa
|
#7
27 Feb 2010 22:33 Re: [Atmega8][Bascom] Problem ze sterowaniem fazowm |
|
|
|
W zasadzie co ten program robi?
Bascom jest wolny- ale procesor wykonuje instrukcje co 0.125us przy tym zegarze.
Załóżmy 1000 cykli w pętli- zajmie mu 125us policzenie stanów 0 na wejściu i co dalej?
Od wykrycia 0 powinien zblokować na jakiś czas zmianę stanu, odliczyć czas w ms a nie w us i zmienić stan wyjścia.
Timer i ewentualnie przerwanie.
|
|
| Back to top |
|
 |
danthe Poziom 20

Joined: 28 Nov 2003 Posts: 902 Location: niewielka wieś k. Augustowa
|
#8
27 Feb 2010 22:37 Re: [Atmega8][Bascom] Problem ze sterowaniem fazowm |
|
|
|
Witam.
Ja detekcję robiłem prościej - sieć przez rezystor 47k / 3W podaję na mostek prostowniczy a wyjście mostka na diodę CNY17. Tranzystor transoptora podłączałem kolektorem do wejścia INT1 atmegi, a emiter do masy. Rezystor podciągający kolektor do +5V miał wartość 4,7k lecz uważam że równie dobrze można było go nie stosować. W programie korzystałem z przerwania INT1 - przejście przez zero gasiło diodę optotriaka i ładowało wartość do timera T1, a przepełnienie timera T1 powodowało włączenie optotriaka.
|
|
| Back to top |
|
 |
atom1477 Poziom 25

Joined: 14 Jul 2005 Posts: 6360
|
#9
27 Feb 2010 22:58 Re: [Atmega8][Bascom] Problem ze sterowaniem fazowm |
|
|
|
| danthe wrote: |
| Pamiętać należy że w ATMEGA8 przerwania wywoływane są stanem logicznym a nie zboczem, więc jeśli na wejściu przerwania jest stan aktywny to po wykonaniu podprogramu przerwania od razu zostanie on ponownie wywołany. |
To się da ustawić. Nie musi tak być.
|
|
| Back to top |
|
 |
Google

|
#
27 Feb 2010 22:58 |
|
|
|
|
|
| Back to top |
|
 |
danthe Poziom 20

Joined: 28 Nov 2003 Posts: 902 Location: niewielka wieś k. Augustowa
|
#10
28 Feb 2010 00:07 Re: [Atmega8][Bascom] Problem ze sterowaniem fazowm |
|
|
|
Rzeczywiście zbuka walnąłem, już usunięto.
|
|
| Back to top |
|
 |