Skip to content

Instantly share code, notes, and snippets.

@ileri
Created December 10, 2017 17:13
Show Gist options
  • Select an option

  • Save ileri/e4c9f8fc4fc00796c631751b327266f2 to your computer and use it in GitHub Desktop.

Select an option

Save ileri/e4c9f8fc4fc00796c631751b327266f2 to your computer and use it in GitHub Desktop.
/* Burada Step motoru sürmeye yarayan Stepper.h kütüphanesi
koda dahil edilmektedir.
*/
#include <Stepper.h>
/* Burada Arduino nun çalışırken kullandığı değerler tanımlanmıştır.
Bu değerler değiştirildiğinde Arduino nun davranışı da değişecektir.
Programın genel işleyişinde bir değişiklik yapmayacaksanız
aşağıdaki değrleri değiştirerek olayların hızını vs. ayarlayabilirsiniz.
*/
#define ldr_pin A0
#define motor_adim_sayisi 200
#define motor_hizi 48
#define durum_degistirilecek_isik_seviyesi 250
#define aracin_gecip_gecmediginin_kontrol_frekansi_ms 1000
#define arac_gectikten_sonra_ekstra_beklenecek_sure_ms 4000
#define bilgisayara_bilgi_aktarim_portu 9600
Stepper motor(motor_adim_sayisi, 8, 9, 10, 11);
/*
Bu fonksiyon Arduino ya elektrik geldiğinde sadece 1 defalığına
yapılacakların belirlendiği fonksiyondur.
Tanımlamalar genellikle burada yapılır.
*/
void setup() {
motor.setSpeed(motor_hizi);
Serial.begin(bilgisayara_bilgi_aktarim_portu);
}
/*
Bu fonksiyon Arduino çalıştığı süre boyunca sürekli olarak
çalışacak ve döngü halinde içindeki komutlar çalıştırılacak
olan fonksiyondur.
*/
void loop() {
if( arac_gecisi_algilandi_mi )
arac_gecisi();
delay(250);
}
/*
Bu fonksiyon araç geçişi algılandığında yapılacakları
içeren fonksiyondur.
*/
void arac_gecisi(){
/* Bariyer Kaldıran Kod */
bariyer_kalk();
/* Aracın hala geçip geçmediğini kontrol eden kod */
while( arac_gecisi_algilandi_mi )
arac_gecisi_devam_ediyor();
delay(arac_gectikten_sonra_ekstra_beklenecek_sure_ms);
/* Bariyeri İndiren Kod */
bariyer_in();
}
/*
Bu fonksiyon araç geçişi algılanıp algılanılmadığını
belirleyerek sonucu verir
*/
int arac_gecisi_algilandi_mi(){
return (ldr_deger_oku() < durum_degistirilecek_isik_seviyesi);
}
/*
Bu fonksiyon bariyeri indirme ve bu talimat geldiğinde
yapılacak diğer işlemleri belirlemeye yarar
*/
void bariyer_in(){
Serial.println("Bariyer indiriliyor...");
motor.step(motor_adim_sayisi);
}
/*
Bu fonksiyon bariyeri kaldırmaya ve bu talimat geldiğinde
yapılacak diğer işlemleri belirlemeye yarar
*/
void bariyer_kalk(){
Serial.println("Bariyer kaldırılıyor...");
motor.step(-motor_adim_sayisi);
}
/*
Bu fonksiyon araç geçerken yapılacakları içerir
*/
void arac_gecisi_devam_ediyor(){
Serial.println("Araç geçişi devam ediyor...");
delay(aracin_gecip_gecmediginin_kontrol_frekansi_ms);
}
/*
Bu fonksiyon LDR den okunan değeri verir
*/
int ldr_deger_oku(){
return analogRead(ldr_pin);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment