Sciemniacz na 89C2051 do lamp żarnikowych - potrzebuję pomocy z programem w Bascomie
Sciemniacz na 89c2051
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
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
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
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
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