Skip to content

Instantly share code, notes, and snippets.

@erdemarslan
Last active January 29, 2019 23:14
Show Gist options
  • Save erdemarslan/52a86a66bc563b053d584534979e4b54 to your computer and use it in GitHub Desktop.
Save erdemarslan/52a86a66bc563b053d584534979e4b54 to your computer and use it in GitHub Desktop.
/*
* 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