Table of Contents

Jõuandur

Teooria

Jõust sõltuv takisti
Jõust sõltuva takisti kihid

Takistuslik jõuandur (inglise keeles force-sensing resistor, lühend FSR) on sisuliselt piesoelektriline takisti, mille takistus muutub temale mõjuva rõhumisjõudu toimel. Anduriga saab mõõta pigistamist või kaalu. Odavad takistuslikud jõuandurid on lihtsalt kasutatavad, kuid ei ole väga täpsed. See tähendab, et anduriga ei ole võimalik mõõta absoluutseid väärtuseid vaid pigem suhtelisi suuruseid. Nagu kõikide takistuslike anduritega piisab anduri väärtuse lugemiseks mikrokontrolleriga lihtsast pingejaguri ühendusskeemist, kus pingejaguri väljund ühendatakse mikrokontrolleri analoogsisendisse. Kuigi FSR on suhteliselt hea pingetaluvuse ja löögikindlusega võib see kahjustuda, kui survejõudu avaldatakse pika aja jooksul.

FSR koosneb voolu juhtivast polümeerist, mis muudab oma takistust vastavalt sellele avaldatud rõhumisjõule. Mõõteelement koosneb nii elektrit juhtivatest kui -mittejuhtivatest osakestest, mis on paigutatud maatriksisse. Vajutades polümeerile muutub elektrit juhtivate osakeste asukoht ja need puutuvad rohkem kokku ning seeläbi materjali takistus muutub.

FSR jõuandurite tööpiirkond on tavaliselt vahemikus 0,3 N kuni 100 N, mis tähendab kaaluvahemikku 30 g - 10 kg. See on küllalt suur mõõtepiirkond ja võimaldab seega antud jõuandureid rakendada väga erinevates süsteemides. Samuti on võimalik tööpiirkonda suurendada näiteks kangmehhanismi abil, juhul, kui on vaja mõõta suuremat kaalu. Tähele tuleks siiski panna seda, et antud andur ei ole mõeldud täpismõõtmisteks vaid pigem mingi jõuvahemiku tuvastamiseks. Samuti tuleb arvestada anduri reaktsiooniaega, eriti jõu eemaldamisel, mil andur taastab oma vaikeväärtuse. Taastumisaeg sõltub eelnevalt rakendatud jõust ja selle rakenduskestusest.

FSR andureid kasutatakse tavaliselt vajutustugevust mõõtvates nuppudes ning näiteks muusikainstrumentides, autoistmetes (istuva inimese tuvastamiseks) ja robootikas.

Praktika

Jõu-juhtivuse graafik

Kodulabori komplektis on tüüpiline takistuslik jõuandur, mille aktiivse mõõteala diameeter on 12,7 mm. Mida suuremat jõudu mõõtealale avaldada, seda väiksem anduri takistus. Anduri tundlikus on optimeeritud inimese näpuvajutuse tuvastamiseks. Jõu - takistuse graafik illustreerib anduri takistuse sõltuvust avaldatud rõhumisjõust, mis tüüpiliselt jälgib eksponentsfunktsiooni pöördväärtuse graafikut.

Lihtsaim viis FSR anduri kasutamiseks on ühendada see pingejagurisse mikrokontrolleri toite ja sisendsignaali vahele ning konstantne takisti signaali ja maa vahele. Pingejaguri konstantseks takistiks võib valida 1 kΩ. Pingejaguri väljundpinge ühendatakse mikrokontrolleri analoogsisendisse. Kui FSR anduri takistus väheneb, siis pingejaguri pinge suureneb.

Jõudu leidmiseks njuutonites tuleb mikrokontrolleri ADC võrdluspinge seadistada samaks mikrokontrolleri toitepingega. Seejärel on lihtne arvutada FSR anduri takistus kasutades valemit:

RFSR = ( (Vcc * R1) / U) - R1

Kus: RFSR – FSR anduri takistus Vcc – Toitepinge. Tavaliselt 5 V (Kodulaborid I ja II) või 3,3 V (Kodulabor III) U – Pingejaguri väljundpinge. ADC pingevahemik peab olema vahemikus 0 V - Vcc (Kodulabor III puhul 0 - 2,064 V) R1 – Pingejaguri teine takisti, näiteks 1 kΩ

Seejärel saab arvutada anduri juhtivuse CFSR ühikuga S/m [Siemens meetri kohta]. Juhtivuse ja takistus on omavahel pöördvõrdelises seoses:

CFSR = 1 / RFSR

Selleks, et leida jõu väärtus, tuleks juhtivust võrrelda anduri juhtivus-jõu graafikuga, et leida sealt andurile avaldatud jõud. Graafikust võib tuletada ka valemi, mis on tavaliselt sõltuvuses mõõtepiirkonnast. Näiteks 0-1 Kg mõõtmiseks võib kasutada valemit:

FFSR = CFSR / 80

Näiteprogramm kuvab mõõdetud jõudu njuutonites ja massi kilogrammides LCD-l.

// Kodulabori jõuanduri näidisprogramm
#include <stdio.h>
#include <homelab/adc.h>
#include <homelab/delay.h>
#include <homelab/pin.h>
#include <homelab/module/lcd_gfx.h>
 
// Väärtus vahemiku teisendusfunktsioon
long map(long x, long in_min, long in_max, long out_min, long out_max)
{
    return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
}
 
// Põhiprogramm
int main(void)
{
    signed short value; // Analoogmõõtmise tulemus
    char text[50];
    int voltage; // Analoogmõõtmise tulemus teisendatuna pingeks
    unsigned long resistance; // Pinge teisendatuna takistuseks
    unsigned long conductance;
    long force; // Takistus teisendatuna jõuks
    long weight; // Jõud teisendatuna massiks
 
    // LCD seadistamine
    lcd_gfx_init();
    lcd_gfx_clear();
    lcd_gfx_write_string("Jõu andur");
 
    // ADC mooduli algseadistamine
    adc_init(ADC_REF_AVCC, ADC_PRESCALE_8);
 
    // Lõputu tsükkel
    while (1)
    {
        // Analoogkanali väärtuse lugemine
        value = adc_get_value(1);
 
        // Analoog väärtuse, mis jääb vahemikku 0-2048
        // muundamine vahemikku 0-2064 (0 V - 2064 mV)
        // Kuna Kodulabor III puhul vastab ADC tulem peaaegu pingele 1 mV, 
        // siis pole muundamine vajalik
        //voltage = map(value, 0, 2048, 0, 2064);
        voltage = value;
 
        // Anduri takistuse arvutamine
        resistance = (3300000/voltage) - 1000;
 
        // Juhtivuse arvutamine
        conductance = 1000000/resistance;
 
        lcd_gfx_goto_char_xy(1,3);
 
        // Jõu väärtuse arvutamine njuutonites ja selle kuvamine
        force = conductance / 80;
        sprintf(text, "%lu Njuutonit", force);
        lcd_gfx_goto_char_xy(1,3);
        lcd_gfx_write_string(text);
 
        // Kaalu väärtuse arvutamine kilogrammides ja selle kuvamine
        lcd_gfx_goto_char_xy(1,4);
        weight = force / 9,8;
        sprintf(text, "%lu kg   ", weight);
        lcd_gfx_write_string(text);
 
        sw_delay_ms(500);
    }
}
et/examples/sensor/force.txt · Last modified: 2020/07/20 09:00 by 127.0.0.1
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0