AC DİMMER

Başlatan harmanx, 13 Kasım 2018, 23:05:19

F.T

Buton takılı kalıyor dikkat ettinmi.
Hakk şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

harmanx

evet haberim var...butonu off yaptınmı sistem sıfıra dönüyor zaten....

harmanx

#47
Ete hocam sizin similasyonu çalıştırınca problemi anladım...

GP1 portuna siz 1-0 veriyorsunuz  oysa ben ac den zeroo cros bilgisi veriyorum....zero cros kesilince  kesme işlemini yapsın diye ...

GP1 Portuna  ac gerilimden  0 -1 bilgisi veremiyorum doğrultmam gerekiyor tam doğrultunca kondastör kullanmam gerekli ozamanda gecikme oluyor başka bir çaresi varmı ac den 1-0 bilgisi nasıl alırım..
ac var yok bilgisi..  oraya role takabilirim fakat role takmak saçmalık olur.. ne yapabilirim...

ete

#48
1 diyot ile DC ye çevirip 1uF kondansatör hatta 10uF kondansatörle filtre ederek kullanabilirsin. Bu kadarı bir sorun yaratmaz. KOndansatör sorun olur ise 100nf bağla yeterli olur.

Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

harmanx

Selam  Ete hocam up tuşu basılı iken ac gerlim  kesime gittiği anda rampa tamamlanmadan kesime gitmiyor rampa tamamlanınca kesime gidiyor  tetikleme ...
vede gp3 girişine bir start butonu eklesek basılı iken program başlasın değilse çalışmasın... mümkünmü

https://yadi.sk/d/NZCOgs-Hi3ZEkA

mustafa_cmbz

Merakımdan soruyorum konuyu açan arkadaşın adı murat tezcan mıdır ?

dagadami

#51
tarafımdan kaldırılmıştır

ete

#52
Bu programı ben yazmadım. Yalnızca çalıştırılmasına yardımcı oldum.
Programda alt ve üst limitler var. Bunlar belirli bir amaca hizmet eden limitler.
Gerçekte böyle bir şey olmaması gerek. Ama gecikme için TMR1 sayacı kullanıdığı için pot bu limitler arasında bir değer vermesi gerekir.
Devreye pot ilave etmek zor bir iş değil. Buton pinlerinden birini Analog girişe çevirmek gerek. Mesela GPIO.4 (yani AN3). Bunun için TRISIO zaten giriş olarak ayarlanmış. ANSEL.4=1 yapınca o giriş analog hale gelir. Yapılacakları sırası ile yazarsam belkide kendin yaparsın.

-Symbol Dim_UP_Button = GPIO.4 satırı silinecek
- Değişken tanımlama kısmına bir değişken eklenecek HAM VAR WORD şeklinde
- programın baş tarafına;
DEFINE ADC_BITS 10    ' ADCIN resolution  (Bits)
DEFINE ADC_CLOCK 1    ' ADC clock source  (Fosc/8)
DEFINE ADC_SAMPLEUS 20 ' ADC sampling time (uSec)
satırları eklenecek.

-Programın baş taraflarına bir yere aşağıdaki komut satırını ekle;
- ADCON0=%00000000:ANSEL=%00011000

- Programa alt program olarak aşağıdaki satırlar eklencek DISABLE satırından öncesine.

ADC_BAK:
ADCIN 3,HAM
Load_Value=(ham*/3129)/100+110
RETURN

- Programdaki buton kontrollerini kaldıracaksın.
Programın MAIN etiketi altına bir yere,
GOSUB ADC_BAK  satırını ekleyeceksin hepsi bu kadar.

Ete

Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

ajanda_

ac dimmer deyince  aklıma  geldi. kullandığımız kalem havyalar için dimmer tarzı bir devre tasarlanabilir mi acaba ? 220 v AC  kablo ucunu kesip dimmere bağlayacaz uzun süreli çalışmalarda ısıyı kısacak  bir sistem olsa nasıl olurdu  ??

dagadami

#54
yazılan iletilerin   mod onayı uzun suruyor konuyu başaka plartforma taşıyorum...

dagadami

#55
Ete hocam değişikleri yaptım ama olmadı...
eksik bişey var...

Device 12F675
Config INTRC_OSC_NOCLKOUT, WDT_OFF, PWRTE_ON, BODEN_ON, CP_OFF, MCLRE_OFF,
Xtal 4

  ADCON0=%00001100  '11 = Channel 03 (AN3)
  ANSEL=%00011000  '= FOSC/8
  Declare Adin_Res 10      ' 10-bit çözünürlük
  Declare Adin_Tad FRC 8    '  osilatörü seçildi    
  Declare Adin_Stime 20    ' Örnekleme zamanı 20us 
  
;I/O symbols
Symbol Triac_out = GPIO.0 ;triac pin
Symbol Test_giris= GPIO.1 ; Şebeke var yok girişi
Symbol Zero_cross = GPIO.2 ;zero-cross algilama pini                          =
''''''''''''''''  slindi  Symbol Dim_UP_Button = GPIO.4
Symbol Dim_DOWN_Button = GPIO.5

;interrupt symbols
Symbol GIE = INTCON.7 ; Global Interrupt Enable 1 = enable, 0 = disable
Symbol T0IE = INTCON.5 ;TMR0 Overflow Interrupt Enable bit
Symbol INTE = INTCON.4 ;GP2/INT External Interrupt Enable 1 = enable, 0 = disable
Symbol T0IF = INTCON.2 ;TMR0 Overflow Interrupt Flag bit
Symbol INTF = INTCON.1 ;External Interrupt Flage 1 =
  ;external interrupt occurred (must be cleared in software)

'degiskenler
HAM VAR  Word  ' EKLENDİ
Load_Value VAR Word '56
I VAR Word '58
SURE VAR Word '60
tus_basili VAR Byte
Alt_limit var Byte
Ust_Limit var Byte
'***********************************************************************************
DelayMS 500
On Interrupt GoTo Interrupt_Detect
GoTo BEGIN
'************************************************************************************


'************************************************************************************
BEGIN:
  ANSEL.4=1  ''ekkkkk
  ANSEL=0
  SURE=0
  CMCON = 7 ;comparator kapali
  'OPTION_REG.7 = 0 ;pull-ups aktif
  OPTION_REG = %01010101 ;presc 1:64 ,External Interrupt Edge to rising edge
  TRISIO = %111110;1-giris, 0-cikis
  WPU =%110000
  '*********************************************************************************
  '  ANSEL=0
  'CMCON = 7 ;comparator kapali
  'OPTION_REG.7 = 0 ;pull-ups aktif
  'OPTION_REG.7 = 1 ;pull-ups pasif
  'OPTION_REG = %01010101 ;presc 1:64 ,External Interrupt Edge to rising edge  
  
  'TRISIO = %111110;1-giris, 0-cikis
  'WPU =%110000  ' Enable pull-ups On GP4, GP5
  '********************************************************************************
  
  ;interrupt (kesme) tanimlamalari
  T0IF = 0 ;TMR0 overflaw bayragini sil
  INTF = 0 ;External Interrupt bayragini silg
  Alt_limit=101
  Ust_limit=255
  Load_Value = ALt_limit
'  GIE = 0 ' tüm kesmeleri kapat
'  While GIE = 1:GIE = 0:Wend ' kesmelerin kapandigindan emin ol

  INTE = 1 ' Enable External Interrupt
  GIE = 1 ' Enable global interrupts

MAIN:
    If Test_giris=0 Then
      INTE=0:T0IE=0
      DelayMS 100
      While Test_giris=0:Wend
      INTE=1:T0IE=1
      Clear
      @  clrf PCLATH
      @  GoTo 0
    EndIf
  
' If Dim_UP_Button=0 Then
  ' While Dim_UP_Button=0 And LOAD_VALUE<Ust_Limit
    '  LOAD_VALUE= LOAD_VALUE+1
      
    ' GoSub delay 'pause 29
    'Wend  
  'EndIf
  
    'If Dim_DOWN_Button=0 Then
    'While Dim_DOWN_Button=0 And LOAD_VALUE>ALt_Limit
    ' LOAD_VALUE= LOAD_VALUE-1

    ' GoSub delay 'pause 29
  ' Wend  
  'EndIf  
  

GoTo MAIN

ADC_BAK:
ADCIN 3,HAM
Load_Value=(HAM*/3129)/100+110
Return

'delay:
    ' For I=0 To 2000:Next
    ' Return
        
';bu degerler 50Hz gore ayarlidir
''*********************************************************************************************
Disable
Interrupt_Detect:
If INTF = 1 Then
  TMR0 = Load_Value
  T0IE = 1 ' Enable TMR0 overflow interrupt
  INTF = 0 ' Clear INT Flag (be ready for the next)  
EndIf

If T0IF = 1 Then
  High GPIO.0 
DelayUS 100 'triyak tetiklemesi 100 uSn
  Low GPIO.0
  T0IF = 0
EndIf

Resume
Enable

ete

Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

dagadami

#57
Ete hocam
kodları düznledim bir yerde hata var    çalışmıyor
'****************************************************************
'*  Name    : AC_Dimmer_Control.bas                            *
'*  Author  : Your Name Here                                   *
'*  Date    : September 2023                                   *
'*  Version : 1.0                                               *
'*  Notes   : AC Dimmer Control with PIC12F675                  *
'****************************************************************

Device = 12F675
Config INTRC_OSC_NOCLKOUT, WDT_OFF, PWRTE_ON, BODEN_ON, CP_OFF, MCLRE_OFF
Xtal = 4

' ADC Configuration
ADCON0 = %00001100  ' Select Channel 3 (AN3)
ANSEL = %00011000   ' Set AN3 as analog input, Fosc/8
Declare Adin_Res = 10  ' 10-bit resolution
Declare Adin_Tad = FRC  ' Use the internal oscillator
Declare Adin_Stime = 20 ' Sampling time of 20us

' I/O Pin Symbols
Symbol Triac_out = GPIO.0   ' Triac control output
Symbol Test_giris = GPIO.1  ' Mains presence input
Symbol Zero_cross = GPIO.2  ' Zero-crossing detection input

' Interrupt Symbols
Symbol GIE = INTCON.7  ' Global Interrupt Enable
Symbol T0IE = INTCON.5 ' TMR0 Overflow Interrupt Enable
Symbol INTE = INTCON.4 ' External Interrupt Enable
Symbol T0IF = INTCON.2 ' TMR0 Overflow Interrupt Flag
Symbol INTF = INTCON.1 ' External Interrupt Flag

' Variables
Dim HAM As Word       ' ADC result
Dim Load_Value As Word ' Dimming level
Dim I As Word         ' General-purpose variable
Dim SURE As Word      ' General-purpose variable
Dim Alt_limit As Byte ' Lower dimming limit
Dim Ust_Limit As Byte ' Upper dimming limit

'********************************************************************
' Initialization Section
'********************************************************************

DelayMS 500

On Interrupt GoTo Interrupt_Detect

GoTo BEGIN

'********************************************************************
' Main Program Loop
'********************************************************************

BEGIN:

  ' Analog and I/O Setup
  ANSEL.4 = 1 ' Enable AN4 for analog input
  ANSEL = 0    ' Configure other pins as digital
  CMCON = 7    ' Disable the comparator
  OPTION_REG = %01010101 ' Prescaler 1:64, External Interrupt Edge: Rising
  
  ' TRISIO = %111110 ' Set GP1 as input, others as output
  ' WPU = %110000   ' Enable pull-ups on GP4 and GP5 (if needed)

  ' Interrupt Configuration
  T0IF = 0    ' Clear TMR0 overflow flag
  INTF = 0    ' Clear the external interrupt flag
  Alt_limit = 101 ' Set the lower dimming limit
  Ust_Limit = 255 ' Set the upper dimming limit
  Load_Value = Alt_limit ' Initialize the dimming level

  ' Enable Interrupts
  INTE = 1    ' Enable External Interrupt
  GIE = 1     ' Enable global interrupts

' Main Program Loop
MAIN:
  If Test_giris = 0 Then
    INTE = 0
    T0IE = 0
    DelayMS 100
    While Test_giris = 0
    Wend
    INTE = 1
    T0IE = 1
    Clear
    @clrf PCLATH
    @GoTo 0
  End If
  
  ' Add your main program logic here
  
  GoTo MAIN

'********************************************************************
' Subroutines
'********************************************************************

ADC_BAK:
  ADCIN 3, HAM
  Load_Value = ((HAM * 3129) / 100 + 110) / 10 ' Adjust scaling if needed
  Return

'********************************************************************
' Interrupt Service Routine
'********************************************************************

Interrupt_Detect:
  If INTF = 1 Then
    TMR0 = Load_Value
    T0IE = 1 ' Enable TMR0 overflow interrupt
    INTF = 0 ' Clear INT Flag
  End If

  If T0IF = 1 Then
    High Triac_out
    DelayUS 100 ' Triac trigger delay (adjust as needed)
    Low Triac_out
    T0IF = 0
  End If
  Resume
End

ajanda_

Alıntı yapılan: ete - 21 Eylül 2023, 18:58:35Yapılmışı var ve halen kullanmaktayım.

https://etepic.com/index.php/topic,67.0.html

Ete


evet bende  biliyorum birkaç defa yaptım çok hoşuma  gitmedi bu devre çok kararlı çalışan bişey değil..
benim dediğim bu tarz  birşey olacak  :  https://www.pttavm.com/ac-220v-2000w-motor-hiz-kontrol-dimmer-devresi-voltaj-regulatoru-p-258239071?utm_source=akakce.com&utm_medium=fiyat-kiyaslama&utm_campaign=akakce&v=1.18

EGE