Arduino Kuvvet Sensörü & Konveyör #Force Sensing Resistor

Bu yazımda arduino kuvvet  sensörünü inceleyeceğim arkadaşlar.

Kuvvet sensörünü kullanarak iki  cismi ağırlıklarına göre konveyör band ile ayrıştıracağım. Belirlenen refereans değerine göre cisimler farklı yerlerde toplanacak. Kuvvet sensörü yardımı ile cisimlerin ağırlık değerleri anolog pinden okunacak ve referans değerin altında kalan cisim hafif olarak tanımlanacak ve servo motor sayesinde yönlendirme yapılarak konveyör bandın yanına düşecek . Referans değerin üzerinde olan cisim ise konveyör bandın sonundan aşağı düşecek.

20170531_161556

Devrenin çalışması şu şekilde olacak;

 

ilk başta  iki adet ağırlığı bir birinden farklı  cisimler  kuvvet sensöründeki anolog değeri okundu ve değerler ,küçük için 50 büyük için 120 olarak arduinodan okundu . Bu okuma sonrasında referans değeri 90 olarak saptandı. Kuvvet sensörü cisimlerin değerini okuyacak ve 90 ın altındakileri hafif cisim 90 nın üzerindekileri ise ağır cizim olarak tanımlayacak. Okuma işlemi bitip cisimin hafif mi ? yoksa ağır mı ? olduğu tespit edilince kuvvet sensörünün tam üzerinde bulunan servo yavaş hareketlerle cizimi konveyör bandın üzerine itecek. Band üzerinde bulunan servo ise cismin durumuna göre açı değerini değiştirerek cimi ya sol tarafa düşürecek yada bandın sonuna düşürecek.

Kuvvet sensöründen söz etmek gerekirse;

 

1.5

Alıntı linki : http://www.robotistan.com/15-kuvvete-duyarli-kare-sensor-force-sensing-resistor-15-square

Interlink Electronics’in ürettiği pasif bir kompanent olan kuvvete duyarlı dirençler, 38mm*38mm boyutlarındaki aktif kare alana uygulanan kuvvetle orantılı olarak direnç değerlerinde düşüş gösterirler. Bu sayede kuvvet ya da basıncın algılana bilmesi sağlanmaktadır. PFT (Polymer Thick Film) aygıt dokunma kontrollü elektronik cihazlarda birkaç gram ile 10 kilogram aralığındaki kuvvetlerin algılanabilmesi için optimize edilmiştir. Ürün dokunma arayüzlü projelerde ve çeşitli robotik uygulamalarda kolaylıkla kullanılabilmektedir.

Ürün üzerinde yapılan testlerde, ürün üzerine kuvvet uygulanmadığında 1MΩ, 20gramlık bir kuvvet uygulandığında ise 50kΩ değerinde direnç oluşturduğu görülmüştür. Ürüne olabildiğince yüksek kuvvet uygulandığında ise 200Ω değerine ulaşılmıştır. Uygulanan kuvvet karşında oluşan değerler yüksek tutarlılığa sahiptir. Tekrarlanan sabit kuvvet uygulamalarında ürünün sabit değerler ürettiği yapılan testlerde görülmüştür. Ürünün direnç değer aralığı AVR ve PIC gibi birçok mikrodenetleyicide bulunan dahili pull-up’lar ile direkt olarak çalışabilmektedir. Ürün hafif hızlı dokunuşları ve küçük titreşim motorlarının titreşimlerini algılayabilecek hassasiyete sahiptir.

Ürün Boyutları:

  • Pad Boyutları: 4,37cm*4,37cm
  • Algılama Alanı Boyutları: 3,81cm*3,81cm
  • Ağırlık: 1,2 gr
  • Kalınlık: 0,51 mm
  • Pinler ve Algılama Alanı Arası Bölge Uzunluğu: 3,81 cm

Ürünün pin aralığı breadboardlarda kullanım için uygundur.

*Not: Ürün hassasiyet ve dayanım ölçümleri için uygun değildir. Kuvvet doğruluğu aralığı çeşitli koşullar altında %5 ile %25 arasında değişebilir. Çözünürlük ise tüm değer aralığının %0.5’inden daha iyidir.

 

video

devre

agırlık devre şeması

 

agırlık

 

yazilim

 

#include<Servo.h>
Servo bas_servo;
Servo ayar_servo;
#define motor 13
int tartim = 0;
void setup() {
  // put your setup code here, to run once:

  Serial.begin(9600);
  bas_servo.attach(11);
  bas_servo.write(90);
  ayar_servo.attach(10);
  ayar_servo.write(90);
  
  pinMode(motor, OUTPUT);
}

void loop() {
 
  int tartilan_urun = analogRead(A0);
tartim = tartilan_urun;


  Serial.print("Tartilan urun = "); Serial.println(tartim);
delay (250);

if (tartim > 30)

{

if (tartim > 90) //--------------------agır---------------
{
  delay (500);
  for (int a=90; a<135; a=a+5)
  {
  bas_servo.write(a);
  delay (50);
  }
  ayar_servo.write(90);
  digitalWrite(motor, HIGH);
  delay (3000);
  bas_servo.write(90);
  ayar_servo.write(90);
  digitalWrite(motor, LOW);
  
}
if (tartim < 90) //--------------------kücük---------------
{
  delay (500);
  
  for (int a=90; a<135; a=a+5)
  {
  bas_servo.write(a);
  delay (50);
  }
  ayar_servo.write(150);
  digitalWrite(motor, HIGH);
  delay (4000);
  bas_servo.write(90);
  ayar_servo.write(90);
  digitalWrite(motor, LOW);
  
}
  
}
}

 

Sosyal Medyada Paylaş Facebook Twitter Google+

Etiketler: , , , , , ,
Eklenme Tarihi: 12 Temmuz 2017

Konu hakkında yorumunuzu yazın

HOŞ GELDİNİZ

Youtube kanalıma Abone Olabilirsiniz.