Tek butonla 2 ayrı işlem yaptırmak

Başlatan protezdiyot, 31 Aralık 2014, 16:15:04

protezdiyot

Teşekkürler. Bakalım ne kadar kendimi ilerletebileceğim.Sabrım(-ız) ne zamana kadar devam edecek. :) Tekrar görüşmek üzere...

aliveli

ne istediğiniz belli olmuyor. adım adım yazarsanız kodlaması yapılır

protezdiyot

Sn. Aliveli şuan genel olarak denemeler yapıyorum. Ama plc gibi  5-10 butona basar basmaz tepki almak istiyorum.Programın bitmesini beklemek istemiyorum.

aliveli

işlem basamaklarını net yazarmısınız

protezdiyot

A butonuna bastım 1. motor çalışsın.
B butonuna bastım 1. motor dursun 2. motor çalışsın.

B butonuna ilk basılmışsa  2. motor çalışsın,
a butonuna bastım 2. motor dursun 1. motor çalışsın.
c butonuna bastığımda o anda çalışan motor dursun.

aliveli

tek buton diyordun üç buton oldu
bu haliyle daha kolay
#define Abutonu Pin_A0
#define Bbutonu Pin_A1
#define Cbutonu Pin_A2

#define motor1 Pin_B0
#define motor1 Pin_B1
main(){
output_low(motor1);
output_low(motor2);
while(1)
{
if(!input(Abutonu)){
	output_high(motor1);
	output_low(motor2);
				   }
if(!input(Bbutonu)){
	output_low(motor1);
	output_high(motor2);
				   }
if(!input(Cbutonu)){
	output_low(motor1);
	output_low(motor2);
				   }

}
	}

mufitsozen

Alıntı yapılan: protezdiyot - 01 Ocak 2015, 23:42:37
A butonuna bastım 1. motor çalışsın.
B butonuna bastım 1. motor dursun 2. motor çalışsın.

B butonuna ilk basılmışsa  2. motor çalışsın,
a butonuna bastım 2. motor dursun 1. motor çalışsın.
c butonuna bastığımda o anda çalışan motor dursun.

bu istediginiz iki "state"li (durumlu) cok basit bir program ile yapilabilir.

Dolayisi ile EVET, yazdiginiz islemleri yapmak icin bir PIC programi yazilabilir.

Aptalca bir soru yoktur ve hiç kimse soru sormayı bırakana kadar aptal olmaz.

protezdiyot

#22
Css c  pic ile ileri geri hareket eden kilitlemeli asenkron motor sürme programı

#include <picleilerigerimotor.h>
#define ileributonu Pin_A0
#define geributonubutonu Pin_A1
#define stopbutonu Pin_A2

#define motorileri Pin_B0
#define motorgeri Pin_B1


void main()
{
output_low(motorileri);
output_low(motorgeri);

   while(TRUE)
   {
if(input(ileributonu)& !input(geributonubutonu)& !input(stopbutonu)){
    ileri:
    if (input(stopbutonu))
    {goto stop;}
   
    output_high(motorileri);
    output_low(motorgeri);
    goto ileri;      }
    
if(input(geributonubutonu)& !input(ileributonu)& !input(stopbutonu))
{
   geri:
   if (input(stopbutonu))
    {goto stop;}
    
    output_low(motorileri);
    output_high(motorgeri);
     goto geri;           }
 stop:
 {
    output_low(motorileri);
    output_low(motorgeri);
                   }

}
    }



mesaj birleştirme:: 03 Ocak 2015, 04:06:22

. Devre şeması. Seri kontaklar sensor olarak adlandırıldı

Salih

Şu şekilde yapmak daha güzeldir

Css c  pic ile ileri geri hareket eden kilitlemeli asenkron motor sürme programı

#include <16f877.h> // Kullanılacak denetleyicinin başlık dosyası tanıtılıyor.
#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD // Denetleyici konfigürasyon ayarları
#use delay(clock=4000000) // Gecikme fonksiyonu için kullanılan osilatör frekansı belirtiliyor

#define ileribut        Pin_A0
#define geribut         Pin_A1
#define stopbut         Pin_A2

#define motorileri      Pin_B0
#define motorgeri       Pin_B1

void main ()
{
setup_psp(PSP_DISABLED); // PSP birimi devre dışı
setup_timer_1(T1_DISABLED); // T1 zamanlayıcısı devre dışı
setup_timer_2(T2_DISABLED,0,1); // T2 zamanlayıcısı devre dışı
setup_adc_ports(NO_ANALOGS); // ANALOG giriş yok
setup_adc(ADC_OFF); // ADC birimi devre dışı
setup_CCP1(CCP_OFF); // CCP1 birimi devre dışı
setup_CCP2(CCP_OFF); // CCP2 birimi devre dışı

while(true)
{ 
     if (input(stopbut))
         {
            output_low(motorileri);
            output_low(motorgeri);
         }
            if (input(ileribut)&&!input_state(motorgeri))  output_high(Motorileri);
            if (input(geribut)&& !input_state(motorileri)) output_high(Motorgeri);
}
}

protezdiyot

Alıntı yapılan: salih - 06 Ocak 2015, 18:49:08
Şu şekilde yapmak daha güzeldir

Css c  pic ile ileri geri hareket eden kilitlemeli asenkron motor sürme programı

#include <16f877.h> // Kullanılacak denetleyicinin başlık dosyası tanıtılıyor.
#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD // Denetleyici konfigürasyon ayarları
#use delay(clock=4000000) // Gecikme fonksiyonu için kullanılan osilatör frekansı belirtiliyor

#define ileribut        Pin_A0
#define geribut         Pin_A1
#define stopbut         Pin_A2

#define motorileri      Pin_B0
#define motorgeri       Pin_B1

void main ()
{
setup_psp(PSP_DISABLED); // PSP birimi devre dışı
setup_timer_1(T1_DISABLED); // T1 zamanlayıcısı devre dışı
setup_timer_2(T2_DISABLED,0,1); // T2 zamanlayıcısı devre dışı
setup_adc_ports(NO_ANALOGS); // ANALOG giriş yok
setup_adc(ADC_OFF); // ADC birimi devre dışı
setup_CCP1(CCP_OFF); // CCP1 birimi devre dışı
setup_CCP2(CCP_OFF); // CCP2 birimi devre dışı

while(true)
{ 
     if (input(stopbut))
         {
            output_low(motorileri);
            output_low(motorgeri);
         }
            if (input(ileribut)&&!input_state(motorgeri))  output_high(Motorileri);
            if (input(geribut)&& !input_state(motorileri)) output_high(Motorgeri);
}
}

Yeni başladım.Zamanla olacak.Desteklerinizle...

zerog26

bu tip elektrik projelerini mikro islemci ile yapmak istiyorsan LDmicro isimli mikroislemciyi plc ladder mantigiyla programlayabilecegin bi programdir kendisi piyasada en cok kullanilan atmel ve pic islemcilerini detekliyor .... ayni zamanda acik kaynak kodlu opensource olmasi ayri bi guzel farkli islemcileri c++ biliyorsan ekelem imkanin var.

http://cq.cx/ladder.pl#dl adres bu tr olani indir ladder kumanda semasi gibi programlama yap derle ve heksi yukle ;)

ayhani

#26
Şimdi bazı ustalar kızacak ama profesyonellik bu mu?
Parsic ve flowcode öğrenin bu devreler 5 dakikanızı almaz.
Bence profesyonellik bir işi en kısa sürede yapmaktır.



NOT: Yerli PLC'miz MİKRODEV programlama dili olarak parsici örnek almış. Aşağıda örnek mikrodev programı resmi

En iyi bildiğim şey hiçbir şey bilmediğimdir.

Salih

@Ayhani,
arkadaşa yardım eden biri olarak üstüme alındım.
arkadaş, CCS C bölümünde başlık açmış,
örnek bir programa başlamış,
yardım istemiş,
biz de yardım etmişiz.
Hatamız nerede anlamadım.
Ayrıca dediğin programları kullanma diye bir şey de
söyleyemeyiz. Arkadaş isterse onları da kullansın.

ayhani

Alıntı yapılan: salih - 07 Ocak 2015, 09:33:12
@Ayhani,
arkadaşa yardım eden biri olarak üstüme alındım.
arkadaş, CCS C bölümünde başlık açmış,
örnek bir programa başlamış,
yardım istemiş,
biz de yardım etmişiz.
Hatamız nerede anlamadım.
Ayrıca dediğin programları kullanma diye bir şey de
söyleyemeyiz. Arkadaş isterse onları da kullansın.


Hocam estağfurulla amacım sizi alındırmak değil. Zaten bende CSS C öğrenmeyin demedim.
Dikkat ederseniz 2 sayfa olana kadar birşey yazmamışım. Ama arkadaşa ldmicro vs farklı önerileri görünce bende önerimi yazmak istedim.
Yoksa çok dil bilmenin bir zararı olmaz.
En iyi bildiğim şey hiçbir şey bilmediğimdir.