Zaloguje się
or
Tel +48 698 615 740

Czujnik siły FSR 402

23 marca, 2022

W tym artykule przeprowadzę testy na dwóch czujnikach nacisku FSR 402. Testy te wykażą zależność siły nacisku oraz miejsca uciskania na odbierane przez port analogowy napięcie. Do przeprowadzenia testów wykorzystam również moduł przetwornika czujników tensometrycznych MCP 60021 oraz wyświetlacz oled 128×64.

Spis treści

  • Krótki opis
  • Specyfikacja
  • Przebieg testów
  • Pliki do pobrania

Krótki opis

Czujniki jakie będę wykorzystywał podczas wykonywania testów pomiarowych to : FSR 402 110 mm 20 g – 10 kg oraz FSR 402 18 mm 20 g – 6kg. Siłę nacisku na czujnik odczytujemy z napięcia na pinie analogowym podłączonym do niego.

Specyfikacja

  1. FSR 402
  • Długość: 110 mm
  • Zakres: od 20g do 10kg
  • Model: FSR-402

2.FSR 402

  • Długość : 18mm
  • Model: FSR-402
  • Zakres: od 0.2 N do 20 N
  • Masa: 0,25 g

Testy

Elementy:

  • Arduino Uno lub Mega
  • FSR 402 110 mm
  • FSR 402 18mm
  • Oled 128×64
  • 2x moduł przetwornika czujników tensometrycznych MCP 60021

Połączenie

  • FSR 402 – MCP 60021
  • wtyk 1 – D0
  • wtyk 2 – A0
  • MCP60021Arduino
  • GND – GND
  • VCC – 5V
  • A0 – A0 (MCP 60021 dla FSR 18mm)/ A0 – A1 (MCP 60021 dla FSR 110mm)
  • D0 – 2 (FSR 18mm)/ D0 – 3(FSR 110mm)
  • Oled – Arduino
  • GND – GND
  • VCC – 5V
  • SCL – SCL / A5 (Uno)
  • SDA – SDA / A4 (Uno)

Program

Na początku definiujemy bibliotekę i zmienne dla naszego oled-u. Jak działa oled i odpowiedzi na możliwe problemy dotyczące wyświetlacza znajdziesz w tym artykule ->

#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels

// Declaration for an SSD1306 display connected to I2C (SDA, SCL pins)
// The pins for I2C are defined by the Wire-library. 
// On an arduino UNO:       A4(SDA), A5(SCL)
// On an arduino MEGA 2560: 20(SDA), 21(SCL)
// On an arduino LEONARDO:   2(SDA),  3(SCL), ...
#define OLED_RESET     4 // Reset pin # (or -1 if sharing Arduino reset pin)
#define SCREEN_ADDRESS 0x3C ///< See datasheet for Address; 0x3D for 128x64, 0x3C for 128x32
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);

Potem w funkcji void setup ustawiamy dla dwóch pinów analogowych tryb wejściowy. Znajduję się w niej również if sprawdzający poprawność działania wyświetlacza.

void setup() {
  // put your setup code here, to run once:
  pinMode(A0, INPUT);
  pinMode(A1, INPUT);
  if(!display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS)) {
    Serial.println(F("SSD1306 allocation failed"));
    for(;;); // Don't proceed, loop forever
  }
}

Ostatnie w funkcji void loop() ustawiamy najpierw warunki dla wyświetlacza: Rozmiar czcionki, punkt startowy dla kursora oraz kolor napisu. Po tym znajdują się 3 if-y które w zależności od tego jak wysoki będzie poziom napięcia wyświetlą nam komunikaty dotyczące tego jak mocno ścisnęliśmy czujnik. Po tym aktywujemy funkcję wyświetlającą obraz na oledz-ie. Informacje będą wyświetlane jednocześnie dla obu czujników

void loop() {
  // put your main code here, to run repeatedly:
  display.clearDisplay();
  display.setTextColor(SSD1306_WHITE);
  display.setTextSize(1);
  display.setCursor(0,0);
  display.print(analogRead(A0));
  display.setCursor(0,10);
  if(analogRead(A0) < 20) {
    display.print("A0: Brak nacisku");
    }
  if(analogRead(A0) < 50 ) {
      display.print("A0: Slaby nacisk");
    }
  if(analogRead(A0) > 50 && analogRead(A0) < 100) {
      display.print("A0: Sredni nacisk");
    }
  if(analogRead(A0) > 100) {
      display.print("A0: Mocny nacisk");
    }
  display.setCursor(0, 30);
  display.print(analogRead(A1));
  display.setCursor(15,30);
  if(analogRead(A0) < 20 ) {
      display.print("A1: Brak nacisku");
    }
  if(analogRead(A1) < 30 && analogRead(A0) > 20 ) {
      display.print("A1: Lekki nacisk");
    }
  if(analogRead(A0) > 30 && analogRead(A0) < 40) {
      display.print("A1: Sredni nacisk");
    }
  if(analogRead(A0) > 40) {
      display.print("A1: Mocny nacisk");
    }
  display.display();
  delay(20);
}

Ja dla bardziej przejrzystego wykonania testów wykonałem pomiary oddzielnie a nie jednocześnie. (Nadal używałem tego programu)

Czujnik siły FSR402 110 m

Czujnik siły FSR402 18 mm

Pliki do pobrania

Sticky
Możliwość komentowania Czujnik siły FSR 402 została wyłączona
Dadas Bartosz

Dadas Bartosz

Jest Uczniem Technikum Budowlano-Elektronicznego w Świdnicy na kierunku Technik Informatyk. Na co dzień oprócz projektów z ardunio uczy się programować aplikacje mobile. W przyszłości chcę zostać programistą.

Comments are closed.

Strona korzysta z plików cookies w celu realizacji usługi i zgodnie z Polityką Plików Cookies. Możesz określić warunki przechowywania lub dostępu do plików cookies w Twojej przeglądarce.