Robotik Kodlama

Robotik Kodlama
Ana Sayfa

İLGİNİZİ ÇEKEBİLECEK LİNKLER :

2 Mayıs 2021 Pazar

Kuvvet Algılama Direnci (FSR) Arduino

 

Kuvvet Algılama Direnci (FSR) Arduino

Kuvvet Algılama Dirençleri, Kuvvet Duyarlı Dirençler veya Kuvvet Sensörleri veya yalnızca FSR'ler olarak da bilinir . FSR - Force Sensing Resistor Fiziksel basıncı, sıkışmayı ve ağırlığı algılamak için özel olarak tasarlanmış düşük maliyetli ve kullanımı kolay sensörlerdir.

Bunları elektronik davullarda, cep telefonlarında, avuç içi oyun cihazlarında ve daha birçok taşınabilir elektronik cihazlarda bulacaksınız.

Bu sensörler basıncı ölçmek için harika olsa da, üzerlerinde kaç kilo ağırlık olduğunu bulmakta harika değiller. Ancak, "sensörün sıkıştırılıp sıkıştırılmadığını ve ne kadar olduğunu" öğrenmek istiyorsanız, bir sonraki dokunma algılama projeniz için bunlar iyi bir seçenektir.

FSR'ye Genel Bakış

FSR'lerde kullanılan teknoloji, 1985'ten beri kullanımda olan Interlink Electronics tarafından patentlenmiştir . Kolayca bulabileceğiniz en yaygın FSR türleri Interlink FSR-402 ve FSR-406'dır.

FSR, algılama alanına basınç uygulandıkça direnç açısından değişen değişken bir dirençten başka bir şey değildir.

Birkaç ince esnek katmandan oluşur. Ne kadar çok bastırılırsa, dirençli karbon elementleri iletken izlere o kadar çok dokunur ve bu da direnci azaltır.

fsrs nasıl yaptı

Şekil ve boyut

Dışarıda çeşitli FSR seçenekleri ve onları ayıran boyut, şekil ve algılama aralığı gibi birkaç temel özellik var.

Çoğu FSR'nin dairesel veya dikdörtgen bir algılama alanı vardır. Kare FSR'ler geniş alan algılama için iyidir, küçük dairesel sensörler ise algılama alanına daha fazla doğruluk sağlayabilir.

fsr sensör türleri

Algılama Aralığı

FSR'nin bir diğer önemli özelliği, sensörün birbirinden ayırt edebileceği minimum ve maksimum basınçları tanımlayan nominal algılama aralığıdır.

Kuvvet oranı ne kadar düşükse, FSR o kadar hassastır. Sensörün maksimum aralığının dışındaki herhangi bir basınç ölçülemez (bu, sensöre de zarar verebilir). Örneğin, 1kg değerindeki daha küçük bir FSR, 0 ile 1kg arasında daha hassas okumalar sağlayabilir, ancak 2kg ile 5kg ağırlık arasındaki farkı söyleyemez.

FSR Nasıl Çalışır?

Söylediğimiz gibi, FSR temelde ne kadar basıldığına bağlı olarak direnç değerini değiştiren bir dirençtir.

fsr çalışma animasyonu

Basınç olmadığında, sensör sonsuz bir direnç (açık devre) gibi görünür. Sensörün başına ne kadar sert bastırırsanız, iki terminal arasındaki direnç o kadar düşük olacaktır, ancak basıncı kaldırdıkça orijinal değerine geri dönecektir.

Aşağıdaki grafik, FSR 402 sensörü için farklı kuvvet ölçümlerinde sensörün direncini yaklaşık olarak göstermektedir. Verilerin logaritmik ölçeklerde çizildiğine dikkat edin.

fsr 402 direnci vs kuvvet eğrisi

Grafiğin genellikle 50 g ve yukarısından doğrusal olduğuna, ancak 50 g'nin altında olmadığına dikkat edin. Bu, üzerine ne zaman baskı yapsak direncinin hızla sonsuzdan 100K'ya düşeceği ve sonra daha doğrusal hale geldiği anlamına gelir.

FSR okumak

FSR'yi okumanın en kolay yolu, bir voltaj bölücü oluşturmak için FSR'yi sabit değerli bir dirençle (genellikle 10kΩ) bağlamaktır. Bunu yapmak için FSR'nin bir ucunu Güce, diğer ucunu aşağı çekme direncine bağlarsınız. Ardından sabit değerli aşağı çekme direnci ile değişken FSR direnci arasındaki nokta bir Arduino'nun ADC girişine bağlanır.

Bu şekilde, bir mikrodenetleyicinin ADC girişi tarafından okunabilen değişken bir voltaj çıkışı oluşturabilirsiniz.

fsr voltaj bölücü

Ölçtüğünüz çıkış voltajının FSR boyunca değil, aşağı çekme direnci üzerindeki voltaj düşüşü olduğunu unutmayın.

Gerilim bölücü konfigürasyonunun çıktısı aşağıdaki denklemle açıklanmaktadır:

fsr1

Gösterilen konfigürasyonda, çıkış voltajı artan güçle artar.

Örneğin 5V besleme ve 10K aşağı çekme direnci ile basınç olmadığında FSR direnci çok yüksektir (yaklaşık 10MΩ). Bu, aşağıdaki çıkış voltajıyla sonuçlanır:

fsr2

FSR'ye gerçekten çok bastırırsanız, direnç yaklaşık 250 Ω'a düşecektir. Bu, aşağıdaki çıkış voltajıyla sonuçlanır:

fsr3

Gördüğünüz gibi, sensöre uygulanan kuvvet miktarına bağlı olarak çıkış voltajı 0 ile 5V arasında değişmektedir.

Aşağıdaki tablo, 5V besleme ve 10K çekme direnci ile sensör kuvvetine / direncine dayalı yaklaşık analog voltajı göstermektedir.

Kuvvet (lb)Kuvvet (N)FSR DirenciR boyunca gerilim
YokYokSonsuz0V
0,04 lb0.2N30KΩ1,3V
0,22 lb1N6KΩ3.1V
2,2 lb10N1KΩ4.5V
22 lb100N250Ω4,9V

Arduino UNO'ya FSR Bağlama

FSR'yi bir arduino'ya bağlamak oldukça kolaydır.

Bir voltaj bölücü devre oluşturmak için FSR ile seri olarak 10kΩ aşağı çekme direnci bağlamanız gerekir. Ardından aşağı çekme direnci ile FSR arasındaki nokta bir Arduino'nun A0 ADC girişine bağlanır.

fsr'yi arduino'ya kablolama

FSR'lerin temelde dirençler olduğunu unutmayın. Bu, onları her iki şekilde de bağlayabileceğiniz ve iyi çalışacakları anlamına gelir.

Arduino Kodu - Basit Analog FSR Ölçümleri

İlk deneyimiz için sensör verilerini Arduino'nun ADC pininden okuyacağız ve çıkışı seri monitörde göstereceğiz.

Kod oldukça basittir. Baskı miktarı olarak yorumladığı şeyi nitel bir şekilde basar. Çoğu proje için gerekli olan hemen hemen budur.

int fsrPin = 0;     // the FSR and 10K pulldown are connected to a0
int fsrReading;     // the analog reading from the FSR resistor divider
 
void setup(void) {
  Serial.begin(9600);   
}
 
void loop(void) {
  fsrReading = analogRead(fsrPin);  
 
  Serial.print("Analog reading = ");
  Serial.print(fsrReading);     // print the raw analog reading
 
  if (fsrReading < 10) {
    Serial.println(" - No pressure");
  } else if (fsrReading < 200) {
    Serial.println(" - Light touch");
  } else if (fsrReading < 500) {
    Serial.println(" - Light squeeze");
  } else if (fsrReading < 800) {
    Serial.println(" - Medium squeeze");
  } else {
    Serial.println(" - Big squeeze");
  }
  delay(1000);
}

Her şey yolundaysa, aşağıdaki çıktıyı seri monitörde görmelisiniz.

fsr analog çıkışı

Kod Açıklaması:

Çizim, FSR ve 10K pull-down'ın bağlı olduğu Arduino pininin beyanıyla başlar. Ayrıca FSR'den fsrReadingham analog okumayı tutan değişkeni de tanımlıyoruz .

int fsrPin = 0;
int fsrReading;

Kodun kurulum fonksiyonunda, PC ile seri iletişimi başlatıyoruz.

void setup(void) {
  Serial.begin(9600);   
}

Döngü fonksiyonunda, analog okumayı FSR direnç bölücüsünden alıp seri monitörde görüntülüyoruz.

Daha önce belirtildiği gibi, sensörün çıkış voltajı 0V (basınç uygulanmamış) ile yaklaşık 5V (uygulanan maksimum basınç) arasındadır. Arduino bu analog voltajı dijitale dönüştürdüğünde, aslında onu 10 bitlik bir sayı olan 0 ila 1023 aralığına dönüştürür. Dolayısıyla, sensörü ne kadar sıktığınıza bağlı olarak seri monitörde 0 ile 1023 arasında bir değer göreceksiniz.

fsrReading = analogRead(fsrPin);  
 
Serial.print("Analog reading = ");
Serial.print(fsrReading);

Finally, we print the amount of pressure measured qualitatively.

if (fsrReading < 10) {
	Serial.println(" - No pressure");
} else if (fsrReading < 200) {
	Serial.println(" - Light touch");
} else if (fsrReading < 500) {
	Serial.println(" - Light squeeze");
} else if (fsrReading < 800) {
	Serial.println(" - Medium squeeze");
} else {
	Serial.println(" - Big squeeze");
}

Arduino Kodu - Gelişmiş Analog FSR Ölçümleri

Bir sonraki arduino taslağımız oldukça gelişmiş. FSR tarafından ölçülen yaklaşık Newton kuvvetini ölçer. Bu, FSR'nin yaşayacağını düşündüğünüz güçleri kalibre etmek için oldukça yararlı olabilir.

int fsrPin = 0;     // the FSR and 10K pulldown are connected to a0
int fsrReading;     // the analog reading from the FSR resistor divider
int fsrVoltage;     // the analog reading converted to voltage
unsigned long fsrResistance;  // The voltage converted to resistance
unsigned long fsrConductance; 
long fsrForce;       // Finally, the resistance converted to force
 
void setup(void) {
  Serial.begin(9600);   // We'll send debugging information via the Serial monitor
}
 
void loop(void) {
  fsrReading = analogRead(fsrPin);  
  Serial.print("Analog reading = ");
  Serial.println(fsrReading);
 
  // analog voltage reading ranges from about 0 to 1023 which maps to 0V to 5V (= 5000mV)
  fsrVoltage = map(fsrReading, 0, 1023, 0, 5000);
  Serial.print("Voltage reading in mV = ");
  Serial.println(fsrVoltage);  
 
  if (fsrVoltage == 0) {
    Serial.println("No pressure");  
  } else {
    // The voltage = Vcc * R / (R + FSR) where R = 10K and Vcc = 5V
    // so FSR = ((Vcc - V) * R) / V        yay math!
    fsrResistance = 5000 - fsrVoltage;     // fsrVoltage is in millivolts so 5V = 5000mV
    fsrResistance *= 10000;                // 10K resistor
    fsrResistance /= fsrVoltage;
    Serial.print("FSR resistance in ohms = ");
    Serial.println(fsrResistance);
 
    fsrConductance = 1000000;           // we measure in micromhos so 
    fsrConductance /= fsrResistance;
    Serial.print("Conductance in microMhos: ");
    Serial.println(fsrConductance);
 
    // Use the two FSR guide graphs to approximate the force
    if (fsrConductance <= 1000) {
      fsrForce = fsrConductance / 80;
      Serial.print("Force in Newtons: ");
      Serial.println(fsrForce);      
    } else {
      fsrForce = fsrConductance - 1000;
      fsrForce /= 30;
      Serial.print("Force in Newtons: ");
      Serial.println(fsrForce);            
    }
  }
  Serial.println("--------------------");
  delay(1000);
}

Seri monitörde çıkışın nasıl göründüğü aşağıda açıklanmıştır.

fsr analog çıkış2

ANA SAYFAYA DÖN

Bahadır ÖZGEN
Electronic Robotic Coding Research and Development 1975 - ∞
Learn Forever
If you want, let's learn together...
https://roboticcode2020.blogspot.com/
bahadirozgen1975@gmail.com
facebook    robotic.code
instagram    @roboticcode


Sayfalarımı ziyaret ettiğiniz için teşekkür ederim.Bu sitede mevcut olan içerikler kendi oluşturduğum projeler yazı,resim ve videolardan oluşmaktadır.İçerik oluşturmak çok uzun sürdüğü için bazı projelerde yurtdışı kaynaklardan faydalandım.Buradaki amacım ticari değildir.Kaynağı belli olan ve bizim kaynağına ulaşabildiğimiz materyal (yazı, fotoğraf, resim, video v.b.) için ilgili konularda fotoğraflarda logo varsa v.b. not olarak gösterilecektir.Sitemizde yayınlanan tüm içerik, bizim tarafımızdan ve internet üzerinden youtube, facebook ve blog gibi paylaşıma sunulmuş kaynak sitelerden alındığı için, sitemiz yasal yükümlülüğe tabi tutulamaz. Sitemizde telif haklarının size ait olduğu bir içerik varsa ve bunu kaldırmamızı isterseniz, iletişim sayfamızdan bizimle iletişime geçtiğiniz takdirde içerik yayından kaldırılacaktır.Bu konu ve modüller ile uğraşarak, ileride çok güzel makine ve elektronik aletler yapabilirsiniz.

Hiç yorum yok:

Yorum Gönder

Yorum yazdığınız ve üye olduğunuz için Size teşekkür ederim.Burada olduğunuza göre hepimizin ilgi alanı Elektronik ve Programlama sonsuz bir dünyadayız.Hepimize Başarılar...

Not: Yalnızca bu blogun üyesi yorum gönderebilir.