ileri geri dc motor devresi zaman ayarı yardım

onurody

Üye
Katılım
18 Ara 2012
Mesajlar
2
Puanları
1
Yaş
38
mrb
arkadaşlar kurmaya çalıştıgım bir devre var
tek butonla ileri geri çalışan zaman ayarlı motor devresi
sorunum şu potdan ayar yapıyorum butona basılı tutunca ileri dönüyor ayar zamanı sonunda duruyor butonu bırakınca geri dönüyor ayarlı zaman sonunda duruyor
ama geri dönüşte her zaman biraz kısa dönüyör

bunu engelemek için acaba şöyle bir olay yapıla bilirmi butona bastgımızda adc okuyup dönmeye başladıgında dönüş zamanını kayıt ettirip geri dönüşe aktara bilirmiyiz
c kodunda bunu nasıl yapabilirim
 
Zaman rölesi bir diğer ifade ile zaman saati adı verilen sistem süresi belli olan bir aralıkta araya girmesi veya çıkması amaçlanan elektrik sisteminin kontrol edilmesinde kullanılmak için tasarlanmıştır.
Topraklama ölçümü ister endüstriyel bir tesis ister bir ofis binası olsun her işletme için kritik bir öneme sahiptir.
c koduda bu

#include <16F876A.h>
#device adc=10
#FUSES NOWDT //No Watch Dog Timer
#FUSES XT //Crystal osc <= 4mhz for PCM/PCH , 3mhz to 10 mhz for PCD
#FUSES PUT //Power Up Timer
#FUSES NOPROTECT //Code not protected from reading
#FUSES NODEBUG //No Debug mode for ICD
#FUSES NOBROWNOUT //No brownout reset
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NOCPD //No EE protection
#FUSES NOWRT //Program memory not write protected
#use delay(clock=4000000)
unsigned long int adc;
void ileri(void){
output_high(pin_c0);output_low(pin_c1);
output_high(pin_c6);output_low(pin_c7);
output_high(pin_c2);output_high(pin_c5);
delay_ms(adc);
output_low(pin_c2);output_low(pin_c5);
}
void geri(void){
output_high(pin_c1);output_low(pin_c0);
output_high(pin_c7);output_low(pin_c6);
output_high(pin_c2);output_high(pin_c5);
delay_ms(adc);
output_low(pin_c2);output_low(pin_c5);
}
void main()
{
setup_adc_ports(AN0); //ANALOG GİRİŞLER TANIMLANIYOR
setup_adc(ADC_CLOCK_INTERNAL); // SADECE A0 ANALOG GİRİŞİ AÇILMIŞ
setup_spi(SPI_SS_DISABLED);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);

set_adc_channel(0);
output_low(pin_c2);output_low(pin_c5);
delay_ms(500);
while(1){
off:
if(input(pin_a5)==1)goto off;
while(!input(pin_a1)==1){if(input(pin_a5)==1)goto off;}
if(input(pin_a1)==1){
delay_us(50);
adc=read_adc()*5;
delay_us(50);
ileri();}
while(input(pin_a1));
geri();
}}
 
bu sorunun yeri burası deil .. ayrıca pıc şema başka hiç bir şey yok ... cevap bulman biraz zor olur
 

Forum istatistikleri

Konular
127,951
Mesajlar
913,867
Kullanıcılar
449,599
Son üye
Gksn

Yeni konular

Geri
Üst