Arduino Arduino ile Metal Ayıklama Otomasyonu By Konuk Yazar Posted on 21 Aralık 2015 4 min read 13 0 8,863 Paylaş ! Facebook Paylaş ! Twitter Paylaş ! Google+ Paylaş ! Reddit Paylaş ! Pinterest Paylaş ! Linkedin Paylaş ! Tumblr Merhaba arkadaşlar, Ben Fırat Üniversitesi Teknoloji Fakültesi Mekatronik Mühendisliği öğrencisi Hakan ÇOBAN. Bu yazıda sizlere geçenlerde yaptığım bir çalışmayla ilgili bilgi vereceğim. Tasarladığım sistem bir metal ayıklama sistemidir. Bu sistem aslında birçok farklı yolla ( örneğin; pnomatik sistem,doğrusal itme gibi yöntemlerle) yapılabilirdi.Ancak ben bu projeyi yaparken elimdeki malzemeleri kullanarak en az masraflı bir iş çıkarmak istedim ve öyle de oldu. Kullanılan Malzemeler Arduino Mega Motor shield(L293D), Servo Motor I2C lcd Konveyör Band(12v dc motorlu) Pot(10 k) Endüktif sensör(12v) Röle(12 v uyartımlı) Güç kaynağı(12v,5A) Devre Şeması Konveyör üzerinden geçen malzemeler metal ise sensör sinyal üreterek röleye gönderiyor.Sensör endüstriyel olduğu için direkt Arduıno’ya bağlayamıyoruz,röleyi anahtarlayarak arduınoya bilgi gönderiyoruz.Oradan da Arduino bilgiyi okuyup,potansiyometre ile ayarlanan gecikme sayesinde servo üzerindeki kolu konveyörün üzerine sürerek metal malzemeyi yan tarafa fırlatıyor. Potansiyometre kullanmamın sebebi; sensörle servo kolun arasındaki mesafeye göre kalibrasyonu kolaylaştırmasıdır. LCD panelde ise potansiyometre ile ayarlanan gecikme ve ayıklanan malzeme sayısı yazmaktadır. Projenin Arduino Kodu; #include <Servo.h> #include <AFMotor.h>\\motor.shield kütüphanesi #include <Wire.h> #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27, 16, 2); AF_DCMotor motor(2); Servo servo1; int sensorPin = A8; int sensorValue = 0; void setup() { pinMode(15,INPUT); Serial.begin(9600); lcd.begin(); servo1.attach(9); motor.setSpeed(255); motor.run(RELEASE); lcd.setCursor(0,0); lcd.print("HAKAN COBAN"); lcd.setCursor(0,1); lcd.print("MEKATRONIK MUH."); delay(1000); lcd.clear(); } int i; int b; void loop()//sonsuz döngü { sensorValue = analogRead(sensorPin); sensorValue = map(sensorValue, 0, 1023, 0, 9999); motor.run(FORWARD); lcd.setCursor(0,0); lcd.print("METAL GRB :"); lcd.setCursor(12,0); lcd.print(b); lcd.setCursor(0,1); lcd.print("GECIKME :"); lcd.setCursor(12,1); lcd.print(sensorValue); if(digitalRead(15) ==LOW) { Serial.println(sensorValue); delay(sensorValue*2); // endüktif algıladıktan sonra servonun devreye girmesi için gecikmesi for (i=0; i<255; i++) { servo1.write(i); delay(1000); //servonun konveyorun üzerinde bekleme süresi for (i=255; i!=0; i--) { servo1.write(i-255); } b = b+1; delay(2000); } else Serial.println(sensorValue); } Projenin Çalışması Gösterdiğiniz ilgiye ve bana bu fırsatı veren roboturka ekibine sonsuz teşekkürler…