This is an old revision of the document!


Table of Contents

 

Jõuandur

Teooria

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

Takistluslik 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 eelmadamisel, 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 10 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 - U) * R1) / U

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 R1 – Pingejaguri teine takisti, näiteks 10 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[16];
	int voltage; // Analoog mõõ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 (true)
	{
		// Analoogkanali väärtuse lugemine
		value = adc_get_average_value(0, 4);
 
		// Analoog väärtuse, mis jääb vahemikku 0-1023
		// muundamine vahemikku 0-5000 (0 V - 5000 mV)
	        voltage = map(value, 0, 1023, 0, 5000);
 
		// Anduri takistuse arvutamine
		resistance = 5000 - voltage;     
	        resistance *= 10000; // 10 KOhm takisti
	        resistance /= voltage; // FSR takistus oomides
 
		conductance = 1000000; // Mõõdetuna mikro-oomides
	        conductance /= resistance; // Juhtivuse leidmine
 
 		lcd_gfx_goto_char_xy(1,3);
 
		// Jõu väärtuse arvutamine njuutonites
 		// ja selle ekraanile 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 ekraanile 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.1413198516.txt.gz · Last modified: 2020/07/20 09:00 (external edit)
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