arduino yükselen ve düşen kenar kullanma

Başlatan sayangku, 23 Mayıs 2018, 17:15:52

sayangku

merhaba arkadaşlar plc deki yükselen ve düşen kenar mantıgını plc yapabiliyorum ama kod olarak arduino gelince yapamıyorum bu konuda bana
mantıgını anlatarak yardımcı olabilirmisiniz?
örnegin plc yükselen kenarın yanına bir_arttır sayac komutu koyarak butona
her basıldıgında sayac bir artıyo bunu arduino kodunda nasıl yapabilirim
ve diğer kullanma yöntemlerinde nasıl yapabilirim ? yardımlarınız için teşekkürler şimdiden

mehmet

Yükselen olması High/1 olması durumu.

Pini direnç ile Low/0 da tutarız, butona
basılınca yükselen durumu oluşur.

if(Button == 1)
{
   ...
}
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
---------------------------------------------
http://www.mehmetbilgi.net.tr

yilmaz_kk

Kesme kullanılabilir. İlgili giriş her tetiklendiğinde sayac artırılır. Tabi bu yükselen kenar için.

cak28

yılmaz hocamın dediği gibi kesmeler kullanılabilir.
https://www.arduino.cc/reference/en/language/functions/external-interrupts/attachinterrupt/ bu adreste kesmeler anlatılmış, attachInterrupt fonksiyonuna yükselen veya düşen kenar parametrelerinden hangisi girilirse tanımlı kesme fonksiyonu devreye giriyor. 

sayangku

hocam verdiğiniz bilgilerle mantığı anladım teşekkürederim

şimdi merak ettim  plc gelcek olursak plc lerin input girişleri sizce dış kesmemi kullanmışlardır yoksa timer kesmesimi  yada başka bir kesme çeşitimi kullanmışlardır bunu merak ettim

erolca

IEC 61131 standardına uygun yazılmış yükselen düşen kenar örneği..

FUNCTION_BLOCK B_TRIG
VAR_INPUT
CLK : BOOL;
END_VAR
VAR_OUTPUT
Q : BOOL;
END_VAR
VAR
edge : BOOL;
END_VAR


(*Program orneği*)
Q := clk XOR edge;
edge := CLK;


eroool