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
 
Otomatik sigorta bulunduğu devreyi yüksek akım ve kısa devre akımlarından koruyan bir anahtarlama elamanıdır.
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.
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
128,843
Mesajlar
920,921
Kullanıcılar
450,940
Son üye
ranakaraca05

Yeni konular

Geri
Üst