Projemizi 4 aşamada gerçekleştirdik.
- 2 adet CNY70 ve 74HC14 kullanılarak sensörün yapılması.
- Şasenin yapılması.
- Arduino, dc motorlar ve sensör arasında elektronik bağlantının yapılması.
- Arduinoya kodun yüklenmesi ve test sürüşünün yapılması.
1. 2 ADET CNY70 ve 74HC14 KULLANILARAK SENSÖRÜN YAPILMASI:
- Önce iki tane CNY70 sensörümüzü çapraz bir şekide breadboard üzerine çapraz bir şekilde bağlıyoruz. Çapraz bağlamamızın sebebi karşılıklı iki bacak Vcc hattına gidecek, kolaylık olsun diye çapraz bağladık. Çapraz bacakları Vcc hattına taşıdık.
- Daha sonra CNY70 lerin içindeki Ledlerin katot bacaklarını 330 ohm bir direnç ile GND hattına taşıyoruz.
- Aynı şekilde CNY70 lerin içindeki fototransistörün emiter bacaklarını 47K lık bir dirençler ile GND hattına bağlıyoruz.
- Daha sonra 74HC14 entegresini breadboarda yerleştiriyorum.
- Entegrenin 7.bacağına GND hattını bağlıyorum. Entegrenin 14.bacağına ise Vcc hattını bağlıyorum.
- CNY70 lerin emiter bacaklarından aldığımız kabloları birini entegremizin 1.bacağına diğerini 3.bacağına bağladık. Bunlar bizim entegremizin girdileri oldu.
- Entegremizden 1.girdimizin çıktısını 2 den aldık. 3.bacağa verdiğimiz girdinin çıktısını da 4.bacaktan aldık.
- GND ve Vcc hatlarından birer çıktı aldık ve toplamda 4 tane çıktımız oldu.
- Bu çıktılar ile motor bağlantımızı ve Arduino bağlantımızı yaptık.
- 74HC14 entegremizin yapısını aşağıda görebilirsiniz.
2. ŞASENİN YAPILMASI:
- Öncelikle robotumuzun şasesinin üstüne tekerleğimizi , sensörümüzü ve şarhos tekerleğimizi sabitlemek için kelepçe geçirip kitliceğimiz deliklerimizi matkap ile deldik.
- Sonrasında şasenin önünü yükseltmek için sarhoş tekerleğin altına yerleştiriceğimiz mukavvaları aynı ölçüde kesimini yapıp uygun şekilde yerleştirdik.
- İlk olarak motorlarımızı ve tekerleğimizin yerleşimini yaptık
- Devamında ise sensörümüzü şasemizin ön tarafına montajını gerçekleştirdik.
- Bundan sonra arduino takma işlemini yapıp, pillerimizi motorun üstüne kelepçe yöntemi ile kenetlenmesini ve sabitlenmesini yaptık.
3. DEVREDE Kİ ELEKTRONİK BAĞLANTILARININ YAPILMASI:
Arkadaşlar aslında bağlantıları fritzing programında açık bir şekilde gösterdik ancak ben yine de detaylı bir şekilde anlatacağım.
Enable bacaklar (1,9) ve Vcc (16) ortak 5V’luk hatta bağlandı.
Input 1,2,3,4 bacakları (2,7,10,15) arduinonun digital kısmında ki gerekli pinlere bağlandı.
Output 1,2,3,4 bacaklarına (3,6,11,14) motorlar bağlandı.
GND’ler(4,5,12,13) devrede ki ortak GND hattına bağlandı
Vss (8) ise birbirine seri olarak bağlanmış 4 adet 6V’luk pilin pozitif kısmına bağlandı.
4 adet 6V’luk pilin negatif kısmı ise ortak GND hattın bağlandı.
9V’luk pilin pozitif kısmı arduino da bulunan “POWER” kısmında ki Vin girişine bağlandı. Negatif kısmı ise Vin girişinin yanında bulunan GND kısmına bağlandı.
Son olarak ise arduinonun devreyi beslemesi için gereken bağlantılar yapıldı. “POWER” kısmında ki 5V’luk pin devrenin ortak VCC hattına hemen yanında ki GND ise devrenin ortak GND hattına bağlandı.
4. ARDUİNO’YA KODUN YÜKLENMESİ VE TEST SÜRÜŞÜNÜN YAPILMASI:
Arkadaşlar kodu yazarken video çekmek zor olacağı için kodu direkt aşağıda paylaşıyoruz:
const int left_f = 7; // motor sürücü ve sensörün takıldı olduğu pinleri tanımladık. const int left_r = 6; const int right_f = 4; const int right_r = 5; const int left_sensor = 2; const int right_sensor = 3; int left_case, right_case; // sol ve sağ sensörün durum değişkenleri tanımladık. void setup() { pinMode(right_f, OUTPUT); // motor sürücü pinlerini çıkış olarak ayarladık. pinMode(right_r, OUTPUT); pinMode(left_f, OUTPUT); pinMode(left_r, OUTPUT); pinMode(right_case, INPUT); // sensörün pinlerini giriş pini olarak atadık. pinMode(left_case, INPUT); } void loop() { left_case = digitalRead(left_sensor); // sol ve sağ sensör okunup değişkenlere kaydedildi. right_case = digitalRead(right_sensor); if (left_case == LOW && right_case == LOW) // iki sensör de siyah görmüyor ise motorlar ileri gidecek şekilde çalışıtırıldı. { digitalWrite(right_f, HIGH); digitalWrite(right_r, LOW); digitalWrite(left_f, HIGH); digitalWrite(left_r, LOW); } else if (left_case == LOW && right_case == HIGH) // sağ sensör siyah görüyor ise motorlar sağa dönecek şekilde çalıştırıldı. { digitalWrite(right_f, HIGH); digitalWrite(right_r, HIGH); digitalWrite(left_f, HIGH); digitalWrite(left_r, LOW); } else if (left_case == HİGH && right_case == LOW) // sol sensör siyah görüyor ise motorlar sola dönecek şekilde çalıştırıldı. { digitalWrite(right_f, HIGH); digitalWrite(right_r, LOW); digitalWrite(left_f, HIGH); digitalWrite(left_r, HIGH); } else //eğer yukarıda şartların 3 üde değilse dur. { digitalWrite(right_f, LOW); digitalWrite(right_r, LOW); digitalWrite(left_f, LOW); digitalWrite(left_r, LOW); }