Sciemniacz na 89C2051 do lamp żarnikowych - potrzebuję pomocy z programem w Bascomie

Sciemniacz na 89c2051





Poprzedni Następny
Wiadomość
Spis treści
From: "Lisu" <skrzynka_at_nospam_tvsat364.lodz.pl>
Subject: Sciemniacz na 89c2051
Date: Fri, 19 Dec 2003 13:53:38 +0100


Czy zbudował ktoś z was sciemniacz na tym procku? Mam zamiar zrobić coś
takiego ale mam sporo problemów z napisaniem programu w bascomie do tego.
Jeśli chodzi o szczegóły to ma to byś sciamniacz na 220 do żarnika, a czas
ściemniania ma być ok 1h.

Znalazłem już pare schematów do tego ale nie moge nigdzie dostać programu.
Było parte takich projektów ale na PWM co nie zdaje egzaminu przy moim
projekcie. Czy może mi ktoś pomóc???



========
Path: news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!lublin.pl!uw.edu.pl!news.pw.edu.pl!not-for-mai

Poprzedni Następny
Wiadomość
Spis treści
From: "Markowy" <markowy_at_nospam_poczta.onet.pl>
Subject: Re: Sciemniacz na 89c2051
Date: Fri, 19 Dec 2003 16:24:10 +0100


Robiłem nawet dwa jeden w chacie działa bez zarzutu 3 lata!
Program pisałem w Bascomie, a schemat - przerobiłem jeden z elektroniki
praktycznej!

Co chcesz dokładnie wiedziec?
Wyślij na priva!

Marcin



========
Path: news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!not-for-mai

Poprzedni Następny
Wiadomość
Spis treści
From: "AW" <pipek_dreczyciel_at_nospam_hotmail-kropka-com.cos.tam>
Subject: Re: Sciemniacz na 89c2051
Date: Fri, 19 Dec 2003 18:39:02 +0100



"Lisu" <skrzynka_at_nospam_tvsat364.lodz.pl> wrote in message
news:brusch$si1$1_at_nospam_kujawiak.man.lodz.pl...
Czy zbudował ktoś z was sciemniacz na tym procku? Mam zamiar zrobić coś
takiego ale mam sporo problemów z napisaniem programu w bascomie do tego.
Jeśli chodzi o szczegóły to ma to byś sciamniacz na 220 do żarnika, a czas
ściemniania ma być ok 1h.

Znalazłem już pare schematów do tego ale nie moge nigdzie dostać programu.
Było parte takich projektów ale na PWM co nie zdaje egzaminu przy moim
projekcie. Czy może mi ktoś pomóc???


Po pierwsze musisz złapać moment przejścia napięcia sieciowego przez zero.
Można np. użyć transformatora i mostka Graetza z którego bierzesz napięcie 5
V - oczywiście żadnych kondensatorów wygładzających. Napięcie z mostka
dołączasz do jednego z pinów procesora i badasz stan tego portu. Jeśli jest
niski to oznacza że właśnie napięcie sieciowe przechodzi przez zero
(dokładniej rzecz biorąc jest stosunkowo niskie). Kiedy wykryjesz ten fakt,
zaczynasz zmniejszanie zmiennej X od pewnej wartości do zera - to daje ci
opóźnienie. Kiedy dojdziesz do zera włączasz triak. Oczywiście im większe X
tym większe opóźnienie a tym samym mniejsza moc doprowadzona do obciążenia.
Dobrze jest na początku zbadać jaka może być maksymalna wartość X - czyli
jaki czas upływa od jednego przejścia napięcia sieci przez zero do
następnego.

AW



========
Path: news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!lublin.pl!news.man.lodz.pl!not-for-mai

Poprzedni Następny
Wiadomość
Spis treści
From: "Lisu" <skrzynka_at_nospam_tvsat364.lodz.pl>
Subject: Re: Sciemniacz na 89c2051
Date: Sat, 20 Dec 2003 12:00:03 +0100


Dzieki za odpowiedzi ale ja wiem jak to ma wyglądać tylko nie umiem sobie z
tym poradzić w bascomie. Jeśli ktoś bedzie taki uprzejmy i zamieści tu
prosty program który dostarczy do żarówki określoną moc (narazie bez żadnych
rozjaśnień). Sam wiem że pewnie to trzeba zrobić na timerach, ale tego nie
umiem.

PS. Od strony sprzętowej to zbudowałem układ z EP 6/2000 (bez wyświetlacza i
klawiaturki)
Użytkownik "AW" <pipek_dreczyciel_at_nospam_hotmail-kropka-com.cos.tam> napisał w
wiadomości news:brvd45$5nd$1_at_nospam_news.onet.pl...

"Lisu" <skrzynka_at_nospam_tvsat364.lodz.pl> wrote in message
news:brusch$si1$1_at_nospam_kujawiak.man.lodz.pl...
Czy zbudował ktoś z was sciemniacz na tym procku? Mam zamiar zrobić coś
takiego ale mam sporo problemów z napisaniem programu w bascomie do
tego.
Jeśli chodzi o szczegóły to ma to byś sciamniacz na 220 do żarnika, a
czas
ściemniania ma być ok 1h.

Znalazłem już pare schematów do tego ale nie moge nigdzie dostać
programu.
Było parte takich projektów ale na PWM co nie zdaje egzaminu przy moim
projekcie. Czy może mi ktoś pomóc???


Po pierwsze musisz złapać moment przejścia napięcia sieciowego przez zero.
Można np. użyć transformatora i mostka Graetza z którego bierzesz napięcie
5
V - oczywiście żadnych kondensatorów wygładzających. Napięcie z mostka
dołączasz do jednego z pinów procesora i badasz stan tego portu. Jeśli
jest
niski to oznacza że właśnie napięcie sieciowe przechodzi przez zero
(dokładniej rzecz biorąc jest stosunkowo niskie). Kiedy wykryjesz ten
fakt,
zaczynasz zmniejszanie zmiennej X od pewnej wartości do zera - to daje ci
opóźnienie. Kiedy dojdziesz do zera włączasz triak. Oczywiście im większe
X
tym większe opóźnienie a tym samym mniejsza moc doprowadzona do
obciążenia.
Dobrze jest na początku zbadać jaka może być maksymalna wartość X - czyli
jaki czas upływa od jednego przejścia napięcia sieci przez zero do
następnego.

AW





========
Path: news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!not-for-mai

Poprzedni Następny
Wiadomość
Spis treści
From: "art3" <artkoz_at_nospam__poczta.gazeta.pl>
Subject: Re: Sciemniacz na 89c2051
Date: Sat, 20 Dec 2003 14:35:06 +0100


Użytkownik "Lisu" <skrzynka_at_nospam_tvsat364.lodz.pl> napisał w wiadomości
news:bs1a3t$6jr$1_at_nospam_kujawiak.man.lodz.pl...
Dzieki za odpowiedzi ale ja wiem jak to ma wyglądać tylko nie umiem sobie
z
tym poradzić w bascomie. Jeśli ktoś bedzie taki uprzejmy i zamieści tu
prosty program który dostarczy do żarówki określoną moc (narazie bez
żadnych
rozjaśnień). Sam wiem że pewnie to trzeba zrobić na timerach, ale tego nie
umiem.

To mój program do układu regulatora oświetlenia z EP8/2001 :

---------------------------------------------------------------------------
' Zdalnie sterowany regulator oświetlenia
'
' 28-04-2002
'---------------------------------------------------------------------------

$regfile = 89c2051.dat
$crystal = 11059200

Dim New As Bit
Dim Enable_rc5 As Bit
Dim Toggle As Bit
Dim Command As Byte , Subaddress As Byte
Dim On_time As Byte
Dim On_time_1 As Byte
Dim On_time_save As Byte
Dim Command_old As Byte
Dim Command_count As Byte
Dim Tmp As Byte
Dim I As Byte
Dim J As Byte
Dim K As Byte
Dim On_time_timer As Word
Dim On_time_timer_tmp As Word


Const On_btn = 38
Const Off_btn = 12
Const Inc_btn_1 = 20
Const Dec_btn_1 = 21
Const Inc_btn_2 = 18
Const Dec_btn_2 = 19

Const Btn_repeat_time_1 = 14
Const Btn_repeat_time_2 = 14
'Int(btn_repeat_time_1 / 2)

Const Ms10 = &HDBFF
Const Btn_beep = 2
Const Tempo = 2

Const Max_steps = 40
Const Time_min = 1656
Const Time = Int((9216 - Time_min) / Max_steps)
Const Btn_mul = Max_steps / 10


Const Command_count_max = 4


Triac Alias P1.2
Btn_inc Alias P1.3
Buzzer Alias P1.5
Test_pin Alias P1.7



'---------------------------------------------------------------------------
----
'
'---------------------------------------------------------------------------
----

Set Triac

Reset Buzzer

Waitms 250



On_time = 0
New = 1
Command = 255
Command_old = 254
On_time_save = 7
Toggle = 0
On_time_1 = 20
Enable_rc5 = 0
I = 200
J = 50
K = 0

Set Buzzer


Config Timer0 = Timer , Gate = Internal , Mode = 1


Reset Tcon.0
Set Tcon.2

Reset Ip.0
Set Ip.1
Set Ip.2

On Int0 Receiverc5
On Timer0 Timer0_int
On Int1 Int1_int


Enable Int0
Enable Timer0
Enable Int1

Enable Interrupts




'---------------------------------------------------------------------------
----
'
'---------------------------------------------------------------------------
----


Do


If New = 1 Then
Disable Int0
New = 0

If Command = On_btn Then
Reset Buzzer
K = Btn_beep
If On_time_1 > 0 Then
On_time_save = On_time
On_time = 0
Else
On_time = On_time_save
End If
End If



If On_time_1 > 0 Then

If Command = Off_btn Then
Reset Buzzer
K = Btn_beep
On_time_save = On_time
On_time = 0
On_time_1 = 0
End If

If Command = Inc_btn_1 Then
Reset Buzzer
K = Btn_beep
If On_time < Max_steps Then
Incr On_time
End If
End If

If Command = Inc_btn_2 Then
Reset Buzzer
K = Btn_beep
If On_time < Max_steps Then
Incr On_time
End If
End If

If Command = Dec_btn_1 Then
Reset Buzzer
K = Btn_beep
If On_time > 1 Then
Decr On_time
End If
End If

If Command = Dec_btn_2 Then
Reset Buzzer
K = Btn_beep
If On_time > 1 Then
Decr On_time
End If
End If

End If

If Command = 0 Then
Reset Buzzer
K = Btn_beep
On_time = Max_steps
End If

If Command > 0 Then
If Command < 10 Then
Reset Buzzer
K = Btn_beep
On_time = Command * Btn_mul
End If
End If


Enable Int0
End If


If On_time_1 > 0 Then
On_time_timer_tmp = Time_min

For Tmp = 1 To On_time_1
On_time_timer_tmp = On_time_timer_tmp + Time
Next
On_time_timer = 56319 + On_time_timer_tmp
End If


Idle
Loop

'---------------------------------------------------------------------------
----
'
'---------------------------------------------------------------------------
----

Receiverc5:

Getrc5(subaddress , Command)

If Command = Command_old And J = 0 Then
Incr Command_count
If Command_count = Command_count_max Then
Command_count = 0
Enable_rc5 = 0
New = 0
J = Btn_repeat_time_1
End If

Else
Command_count = 0
Enable_rc5 = 0
New = 0
End If

If Command = Command_old And Enable_rc5 = 1 Then
Enable_rc5 = 0
New = 1
End If


Command_old = Command


Return

'---------------------------------------------------------------------------
----
'
'---------------------------------------------------------------------------
----

Timer0_int:

Stop Timer0

If On_time_1 > 0 Then
Reset Triac

If Toggle = 0 Then
Counter0 = Ms10
Start Timer0
Toggle = 1
Else
Toggle = 0
End If


Set Triac
End If

Return

'---------------------------------------------------------------------------
----
'
'---------------------------------------------------------------------------
----

Int1_int:

If On_time = Max_steps Then
Reset Triac
Else
Set Triac
Counter0 = On_time_timer
Start Timer0
End If

Toggle = 0

If J > 0 Then
Decr J
If J = 0 Then
Enable_rc5 = 1
End If
End If


If K > 0 Then
Decr K
If K = 0 Then
Set Buzzer
End If
End If

Decr I
If I = 0 Then

If On_time > On_time_1 Then
Incr On_time_1
End If

If On_time < On_time_1 Then
Decr On_time_1
End If

I = Tempo
End If

Return


'---------------------------------------------------------------------------
----
'
'---------------------------------------------------------------------------
----





========
Path: news-archive.icm.edu.pl!news.rmf.pl!news.ipartners.pl!news.task.gda.pl!news2.icm.edu.pl!news.onet.pl!not-for-mai