Last active
January 29, 2019 23:14
-
-
Save erdemarslan/52a86a66bc563b053d584534979e4b54 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
* Biga İmam Hatip Ortaokulu | |
* YayaUyaran | |
* | |
* Proje Öğrencileri: | |
* Eslem Sare Kısa | |
* Emine Elif Elgin | |
* | |
* | |
* | |
* == BAĞLANTILAR == | |
* | |
* ARDUINO | |
* --------------------------------- | |
* | | | | | | |
* 3 4 5 6 9 | |
* | | | | | | |
* | 330 330 330 | | |
* | | | | | | |
* Sensör kLed sLed yLEd Buzzer | |
* | | | | | |
* GND GND GND GND | |
* | |
* | |
* Kızılötesi Mesafe Sensörü Kablo Bilgileri | |
* | |
* Mavi - GND | |
* Kahverengi - 5V | |
* Siyah - DATA | |
* | |
* | |
*/ | |
#define sensorPin 3 // INPUT | |
#define kLedPin 4 // OUTPUT | |
#define sLedPin 5 // OUTPUT | |
#define yLedPin 6 // OUTPUT | |
#define buzzerPin 9 // OUTPUT | |
int yananisik = 0; // 0 kırmızı - 1- sarı - 2 - yeşil | |
int kirmiziSure = 10; //sn cinsinden | |
int sariSure = 2; //sn cinsinden | |
int yesilSure = 5; //sn cinsinden | |
void setup() { | |
// put your setup code here, to run once: | |
pinMode(sensorPin, INPUT_PULLUP); | |
pinMode(kLedPin, OUTPUT); | |
pinMode(sLedPin, OUTPUT); | |
pinMode(yLedPin, OUTPUT); | |
pinMode(buzzerPin, OUTPUT); | |
// OUTPUT pinleri LOW a çekelim böylelikle yanmasınlar veya ötmesinler | |
digitalWrite(kLedPin, LOW); | |
digitalWrite(sLedPin, LOW); | |
digitalWrite(yLedPin, LOW); | |
digitalWrite(buzzerPin, LOW); | |
// Pin kesmesini ayarlayalım. Bu kesmede sensorPin high veya low olunca buzzerCal fonksiyonu çağrılacak. | |
attachInterrupt(digitalPinToInterrupt(sensorPin), buzzerCal, CHANGE); | |
} | |
// | |
void buzzerCal() { | |
// Kızılötesi sensörümüz önünde engel olduğunda LOW veriyor. Engel olmadığında HIGH veriyor. | |
sensorKontrol(); | |
} | |
void loop() { | |
digitalWrite(sLedPin, LOW); // Sarı ışığı söndür! - loop döngünün düzgün çalışması için bunu buraya koyduk! | |
digitalWrite(kLedPin, HIGH); // Kırmızı ışığı yak! | |
yananisik = 0; // hangi ışığın aktif olduğunu belirt | |
sensorKontrol(); // sensörü kontrol et! | |
delay(kirmiziSure * 1000); // bekleme süresi kadar bekle | |
digitalWrite(kLedPin, LOW); // kırmızıyı söndür | |
digitalWrite(sLedPin, HIGH); // sarıyı yak | |
yananisik = 1; // hangi ışığın aktif olduğunu belirt | |
sensorKontrol(); // sensörü kontrol et! | |
delay(sariSure * 1000); // bekleme süresi kadar bekle | |
digitalWrite(sLedPin, LOW); // sarıyı söndür | |
digitalWrite(yLedPin, HIGH); // yeşili yak | |
yananisik = 2; // hangi ışığın aktif olduğunu belirt | |
sensorKontrol(); // sensörü kontrol et! | |
delay(yesilSure * 1000); // bekleme süresi kadar bekle | |
digitalWrite(yLedPin, LOW); // yeşili söndür | |
digitalWrite(sLedPin, HIGH); // sarıyı yak | |
yananisik = 1; // hangi ışığın aktif olduğunu belirt | |
sensorKontrol(); // sensörü kontrol et! | |
delay(sariSure * 1000); // bekleme süresi kadar bekle | |
} | |
// Bu fonksiyon ışık geçişleri arasında buzzerın çalması gerekiyor mu onu kontrol eder. | |
void sensorKontrol() { | |
if(digitalRead(sensorPin) == LOW) { | |
if(yananisik == 0 || yananisik == 1) { | |
digitalWrite(buzzerPin, HIGH); | |
} else { | |
digitalWrite(buzzerPin, LOW); | |
} | |
} else { | |
digitalWrite(buzzerPin, LOW); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment