elek
Profesyonel Üye
- Katılım
- 24 May 2006
- Mesajlar
- 2,911
- Puanları
- 318
Arkadaşlar aşağıda iki kod(Arduino UNO) ekledim..iki kodda da ışığı kaç kere kestiğimi sayıyorum..
birinci kodda her değişiklikte displayde 2 şer atlama oluyor ve sağlıklı çalışmıyordu..delay gecikmesi ekleyerek çözdüm..sensörün ışığını her kestiğimde sayı bir artıyor ve istediğim oluyor.
ama dış kesme ile yaptığım ikinci kodda sensörün ışığını kestiğimde ve açtığımda 2 şer sefer artma oluyor..
bunu bir türlü çözemedim..delay gecikmeside işe yaramadı..bunu halledebilirsem dış kesme ile yaptığıma millis fonksiyonu ekleyerek iki kesme süresini ekrana yazdıracağım..
birinci kodda her değişiklikte displayde 2 şer atlama oluyor ve sağlıklı çalışmıyordu..delay gecikmesi ekleyerek çözdüm..sensörün ışığını her kestiğimde sayı bir artıyor ve istediğim oluyor.
ama dış kesme ile yaptığım ikinci kodda sensörün ışığını kestiğimde ve açtığımda 2 şer sefer artma oluyor..
bunu bir türlü çözemedim..delay gecikmeside işe yaramadı..bunu halledebilirsem dış kesme ile yaptığıma millis fonksiyonu ekleyerek iki kesme süresini ekrana yazdıracağım..
Kod:
#include <TM1637.h>
#define clk 6
#define dio 7
int inputpin= 2;
TM1637 tm(clk,dio);
int x=0;
int a;
int b;
int c;
int d;
void setup(){
pinMode(2,INPUT);
tm.init();
tm.set();
}
void loop(){
basla:
delay(50);
if (digitalRead(inputpin)==0)
goto basla;
x++;
a=x/1000;
b=(x/100)%10;
c=(x/10)%10;
d=x%10;
tm.display(0,a);
tm.display(1,b);
tm.display(2,c);
tm.display(3,d);
delay(50);
//...........
kontrol:
if (digitalRead(inputpin)==0)
goto basla;
goto kontrol;
}
Kod:
// dış kesme ile yapılmış
#include <TM1637.h>
#define clk 6
#define dio 7
int inputpin= 2;
TM1637 tm(clk,dio);
int x=0;
int a;
int b;
int c;
int d;
void setup(){
pinMode(2,INPUT);
tm.init();
tm.set();
attachInterrupt(0, sayma, RISING);
}
void loop(){
}
// kesme gelince sayma döngüsü
void sayma(){
delay(1000);
x++;
a=x/1000;
b=(x/100)%10;
c=(x/10)%10;
d=x%10;
tm.display(0,a);
tm.display(1,b);
tm.display(2,c);
tm.display(3,d);
}
Son düzenleme: