4 röleli DTMF röle devresi yazılım hk

Başlatan sadece_erhan, 05 Mart 2016, 18:27:16

sadece_erhan

Merhabalar,

4 röleli dtmf devrem var,
#1 tuşlayınca 1.röle çekiyor *1 tuşlayana kadar röle çekili kalıyor
#2 tuşlayınca 2. röleyi çekiyor ve 1sn sonra bırakıyor
#3 tuşlayınca 3. röleyi çekiyor ve 1sn sonra bırakıyor
#4 tuşlayınca 4. röleyi çekiyor ve 1sn sonra bırakıyor

elektrik kesinti hafızası yok. elektrik kesilince röleler çekili kalmıyor. ben bu sistemi aracıma bağladım.

#1 tuşlaınca 1. röle kontak açıyor,
#2 tuşlayınca 2.röle 1sn boyunca marş basıyor.
#3 tuşlayınca korna 1 sn çalıyor
#4 tuşlayınca kapılar açılıyor, kapanıyor .

bir süredir devreyle ilgili problem yaşıyorum.

#1 ile kontak açıyorum ama sonra kontak için #2 yapıyorum ve devre röle çekmiyor, dahası elektiği kesene kadar devre bastığım tuşlara tepki vermiyor. arabaya inip devrenin elektriğini kesmem gerekiyor tekrar çalışması için.

sanırım 16f628 pic de problem var,

internetten yazılımı buldum ve yukarıda yazdığım gibi çalışacak şekilde uyarladım, ama sonradan dank etti, bendeki devrede ayrıyetten buzzer var.
internetten bulduğum yazılımdan 16f628 in çıkış portlarından birini buzzer a yönlendirmeyi düşündüm ama buzzer sesini nasıl ayarlayacağımı bilemedim.
bende ki buzzer 1. röle için 1 kere, 2. röle için 2 kere, 3. röle için 3 kere, 4. röle için 4 kere bipliyor, bunu yapmayı beceremedim.

uyarladğım kod aşağıda


@ DEVICE pic16F628A                                                   
@ DEVICE pic16F628A, WDT_OFF              
@ DEVICE pic16F628A, PWRT_ON 
@ DEVICE pic16F628A, INTRC_OSC_NOCLKOUT              
@ DEVICE pic16F628A, PROTECT_OFF         
  
  TRISB=%11111111
  TRISA=%11100000
  PORTA=0
  PORTB=0            
  CMCON=7                                   '
  OPTION_REG.7=0
  STD var  PORTB.0    '1 STD  8870)TONE enable
  E1  var  PORTB.4    'Q1 du 8870
  E2  var  PORTB.3    'Q2 du 8870
  E3  var  PORTB.2    'Q3 du 8870
  E4  var  PORTB.1   'Q4 du 8870
 
  SIFRE_1 var  PORTA.0    ' 
  SIFRE_2 var  PORTA.1
  SIFRE_3 var  PORTA.2
  SIFRE_4 var  PORTA.3
  BUZZER var  PORTA.4
  
  b1 VAR BYTE
  b2 VAR BYTE
  b3 VAR BYTE
  b1=0
  b2=0
  b3=0
      
  c1  var BYTE   '1° code DTMF
  c2  var BYTE   '2° code DTMF
  c3  var BYTE   '3° code DTMF
  c4  var BYTE   '4° code DTMF
  Q1  var BIT
  Q2  var BIT
  Q3  var BIT
  Q4  var BIT
  
  
 
BASLA:
DTMF1:    
            BUTTON STD,1,255,0,b1,1,DECODER1	
            PAUSE 20
    		BUTTON STD,0,255,0,b2,1,RAZ          
           	GOTO DTMF1
DECODER1:	
            Q1=E1		
    		Q2=E2
    		Q3=E3
    		Q4=E4
     		c1 =  Q1 + 2*Q2 + 4*Q3 +  8*Q4 	
            GOTO DTMF2
           
DTMF2: 	
            b3=0
            WHILE b3<75	
    		BUTTON STD,1,255,0,b1,1,DECODER2	
       	    PAUSE 20
        	b3=b3+1
            WEND
            GOTO DTMF1
DECODER2:	
            Q1=E1		
    		Q2=E2
    		Q3=E3
    		Q4=E4
     		c2 =  Q1 + 2*Q2 + 4*Q3 +  8*Q4 	
            GOTO SIFRE
              
RAZ:  
	  
        	Q1=0
        	Q2=0
		    Q3=0
		    Q4=0
       	    GOTO DTMF1
            END
SIFRE:	
           PAUSE 10	
  	       IF c1=12 AND c2=1 THEN   
           SIFRE_1=1
           pause 10    
           ENDIF
           IF c1=11 AND c2=1 THEN   
           SIFRE_1=0
           pause 10
           ENDIF		   
	       IF c1=12 AND c2=2 THEN   
           SIFRE_2=1
           pause 1000
           SIFRE_2=0    
           ENDIF
           IF c1=11 AND c2=2 THEN   
           SIFRE_2=0
           pause 10
           ENDIF		   
           IF c1=12 AND c2=3 THEN   
           SIFRE_4=1
           pause 1000
           SIFRE_4=0    
           ENDIF
           IF c1=11 AND c2=3 THEN   
           SIFRE_4=0
           pause 10
           ENDIF		   
           IF c1=12 AND c2=4 THEN   
           SIFRE_3=1
           pause 1000
           SIFRE_3=0    
           ENDIF
           IF c1=11 AND c2=3 THEN   
           SIFRE_3=0
           pause 10
           ENDIF		   
           IF c1=1 AND c2=1 THEN   
           SIFRE_1=1
           SIFRE_2=1
           SIFRE_3=1
           SIFRE_4=1
           pause 10    
           ENDIF
           IF c1=3 AND c2=3 THEN   
           SIFRE_1=0
           SIFRE_2=0
           SIFRE_3=0
           SIFRE_4=0
           pause 10
           ENDIF
           IF c1=0 AND c2=9 THEN   
           SIFRE_1=1
           pause 5000
           SIFRE_2=1
           pause 10
           ENDIF		   		     
		  c1=0	
          c2=0
          c3=0
   	      c4=0
          GOTO DTMF1     
   

sadece_erhan

sound komutyla birşeyler yaptım ama çalışır mı acaba deneyebilen birileri olabilir mi?

aşağıda yeni kod.


@ DEVICE pic16F628A                                                   
@ DEVICE pic16F628A, WDT_OFF              
@ DEVICE pic16F628A, PWRT_ON 
@ DEVICE pic16F628A, INTRC_OSC_NOCLKOUT              
@ DEVICE pic16F628A, PROTECT_ON         
  
  TRISB=%11111111
  TRISA=%11100000
  PORTA=0
  PORTB=0            
  CMCON=7                                   '
  OPTION_REG.7=0
  STD var  PORTB.0    '1 STD  8870)TONE enable
  E1  var  PORTB.4    'Q1 du 8870
  E2  var  PORTB.3    'Q2 du 8870
  E3  var  PORTB.2    'Q3 du 8870
  E4  var  PORTB.1   'Q4 du 8870
 
  SIFRE_1 var  PORTA.0    ' 
  SIFRE_2 var  PORTA.1
  SIFRE_3 var  PORTA.2
  SIFRE_4 var  PORTA.3
  BUZZER var  PORTA.4
  
  b1 VAR BYTE
  b2 VAR BYTE
  b3 VAR BYTE
  b1=0
  b2=0
  b3=0
      
  c1  var BYTE   '1° code DTMF
  c2  var BYTE   '2° code DTMF
  c3  var BYTE   '3° code DTMF
  c4  var BYTE   '4° code DTMF
  Q1  var BIT
  Q2  var BIT
  Q3  var BIT
  Q4  var BIT
  
  
 
BASLA:
DTMF1:    
            BUTTON STD,1,255,0,b1,1,DECODER1	
            PAUSE 20
    		BUTTON STD,0,255,0,b2,1,RAZ          
           	GOTO DTMF1
DECODER1:	
            Q1=E1		
    		Q2=E2
    		Q3=E3
    		Q4=E4
     		c1 =  Q1 + 2*Q2 + 4*Q3 +  8*Q4 	
            GOTO DTMF2
           
DTMF2: 	
            b3=0
            WHILE b3<75	
    		BUTTON STD,1,255,0,b1,1,DECODER2	
       	    PAUSE 20
        	b3=b3+1
            WEND
            GOTO DTMF1
DECODER2:	
            Q1=E1		
    		Q2=E2
    		Q3=E3
    		Q4=E4
     		c2 =  Q1 + 2*Q2 + 4*Q3 +  8*Q4 	
            GOTO SIFRE
              
RAZ:  
	  
        	Q1=0
        	Q2=0
		    Q3=0
		    Q4=0
       	    GOTO DTMF1
            END
SIFRE:	
           PAUSE 10	
  	       IF c1=12 AND c2=1 THEN   
  	       sound buzzer,[101,50]
  	       SIFRE_1=1
           pause 10    
           ENDIF
           IF c1=11 AND c2=1 THEN   
           sound buzzer,[70,50] 
           SIFRE_1=0
           pause 10
           ENDIF		   
	       IF c1=12 AND c2=2 THEN   
	       sound buzzer,[101,50,101,50]
           SIFRE_2=1
           pause 1000
           SIFRE_2=0    
           ENDIF
           IF c1=11 AND c2=2 THEN 
           sound buzzer,[70,50,70,50]   
           SIFRE_2=0
           pause 10
           ENDIF		   
           IF c1=12 AND c2=3 THEN   
           sound buzzer,[101,50,101,50,101,50]
           SIFRE_4=1
           pause 1000
           SIFRE_4=0    
           ENDIF
           IF c1=11 AND c2=3 THEN  
           sound buzzer,[70,50,70,50,70,50] 
           SIFRE_4=0
           pause 10
           ENDIF		   
           IF c1=12 AND c2=4 THEN  
           sound buzzer,[101,50,101,50,101,50,101,50] 
           SIFRE_3=1
           pause 1000
           SIFRE_3=0    
           ENDIF
           IF c1=11 AND c2=4 THEN 
           sound buzzer,[70,50,70,50,70,50,70,50]  
           SIFRE_3=0
           pause 10
           ENDIF		   
           IF c1=3 AND c2=3 THEN 
           sound buzzer,[70,50,70,50,70,50,70,50]  
           SIFRE_1=0
           SIFRE_2=0
           SIFRE_3=0
           SIFRE_4=0
           pause 10
           ENDIF
           IF c1=0 AND c2=9 THEN 
           sound buzzer,[90,50,100,50,110,50,120,50]  
           SIFRE_1=1
           pause 7000
           SIFRE_2=1
           pause 1000
           SIFRE_2=0
           pause 10
           ENDIF		   		     
		  c1=0	
          c2=0
          c3=0
   	      c4=0
          GOTO DTMF1     

     
     
   

şef112

Kardesim merhaba bende telsizciyim bende geri bildirimli dtmf devresi ariyorum elinde varmı öyle bisey

Not program yazmam zayif
ELEKTRONİK CİDDİ BİR İŞTİR,HOBİ OLAMAZ