I det här projektet kommer vi att utveckla en rolig krets med Force sensor och Arduino Uno. Denna krets genererar ljud linjärt relaterat till kraften som appliceras på sensorn. För det ska vi gränssnitt FORCE sensor med Arduino Uno. I UNO ska vi använda 8-bitars ADC-funktion (Analog till Digital Conversion) för att göra jobbet.
Kraftsensor eller Kraftsensitiv motstånd
En FORCE-sensor är en givare som ändrar sitt motstånd när ett tryck appliceras på ytan. FORCE-sensorn finns i olika storlekar och former. Vi kommer att använda en av de billigare versionerna eftersom vi inte behöver mycket noggrannhet här. FSR400 är en av de billigaste kraftsensorerna på marknaden. Bilden på FSR400 visas i bilden nedan. De kallas också kraftkänsligt motstånd eller FSR eftersom dess motstånd ändras beroende på kraften eller trycket som appliceras på det. När tryck appliceras på detta kraftavkänningsmotstånd minskar dess motstånd, dvs. motståndet är omvänt proportionellt med den applicerade kraften. Så när inget tryck appliceras på det kommer FSR-motståndet att vara mycket högt.
Nu är det viktigt att notera att FSR 400 är känslig längs längden, kraften eller vikten bör koncentreras till labyrinten mitt i sensorn, som visas i figuren. Om kraften appliceras vid fel tidpunkter kan enheten skadas permanent.
En annan viktig sak att veta att sensorn kan driva strömmar med hög räckvidd. Så kom ihåg körströmmarna när du installerar. Sensorn har också en gräns för kraft som är 10 Newton. Så vi kan bara använda 1 kg vikt. Om vikter högre än 1 kg tillämpas kan sensorn visa vissa avvikelser. Om det har ökat mer än 3 kg. sensorn kan skadas permanent.
Som tidigare nämnts används denna sensor för att känna av tryckförändringarna. Så när vikten appliceras ovanpå FORCE-sensorn ändras motståndet drastiskt. Motståndet för FS400 över vikt visas i diagrammet nedan,
Som visas i figuren ovan minskar motståndet mellan sensorns två kontakter med vikten eller så ökar konduktansen mellan sensorns två kontakter. Motståndet hos en ren ledare ges av:
Var, p- Ledarens motståndskraft
l = Ledarens längd
A = Ledarområde.
Tänk nu på en ledare med motståndet "R", om något tryck appliceras ovanpå ledaren, minskar arean på ledaren och ledarens längd ökar till följd av tryck. Så med formeln bör ledarens motstånd öka, eftersom motståndet R är omvänt proportionellt mot arean och också direkt proportionellt mot längden l.
Så med detta för en ledare under tryck eller vikt ökar ledarens motstånd. Men denna förändring är liten jämfört med total motstånd. För en betydande förändring staplas många ledare tillsammans. Detta är vad som händer inuti kraftsensorerna som visas i figuren ovan. När man tittar noga kan man se många linjer inuti sensorn. Var och en av dessa linjer representerar en ledare. Sensorkänsligheten är i ledarantal.
Men i detta fall kommer motståndet att minska med trycket eftersom materialet som används här inte är en ren ledare. FSR här är robusta enheter av polymer tjock film (PTF). Så dessa är inte rena ledningsmaterialanordningar. Dessa består av ett material som uppvisar en minskning av motståndet med ökad kraft som appliceras på sensorns yta. Detta material visar egenskaper som visas i grafen för FSR.
Denna förändring i motstånd kan inte nytta om vi inte kan läsa dem. Styrenheten till hands kan bara läsa chanserna i spänning och inget mindre, för detta kommer vi att använda spänningsdelarkrets, med det kan vi härleda motståndsförändringen som spänningsförändring.
Spänningsdelaren är en resistiv krets och visas i figuren. I detta resistiva nätverk har vi ett konstant motstånd och ett annat variabelt motstånd. Som visas i figur är R1 här ett konstant motstånd och R2 är FORCE-sensor som fungerar som ett motstånd. Grenens mittpunkt tas till mätning. Med R2-förändring har vi förändring på Vout. Så med detta har vi en spänningsförändring med vikten.
Nu är det viktigt att notera att ingången från styrenheten för ADC-konvertering är så låg som 50 µAmp. Denna belastningseffekt av motståndsbaserad spänningsdelare är viktig eftersom strömmen från Vout av spänningsdelaren ökar felprocentandelen, för nu behöver vi inte oroa oss för belastningseffekten.
Hur man kontrollerar en FSR-sensor
Kraftavkänningsmotståndet kan testas med en multimeter. Anslut de två stiften på FSR-sensorn till multimetern utan att använda någon kraft och kontrollera motståndsvärdet, det blir mycket högt. Applicera sedan lite kraft på ytan och se minskningen i motståndsvärde.
Tillämpningar av FSR-sensor
Kraftavkänningsmotstånd används främst för att skapa tryckavkännande "knappar". De används inom en rad olika områden som sensorer för bilbeläggning, resistiva pekplattor, robotfingertoppar, konstgjorda lemmar, knappsatser, fotpronationssystem, musikinstrument, inbäddad elektronik, test- och mätutrustning, OEM-utvecklingssats och bärbar elektronik, sport. De används också i Augmented Reality-system och för att förbättra mobil interaktion.
Komponenter krävs
Hårdvara: Arduino Uno, strömförsörjning (5v), 1000 uF kondensator, 100nF kondensator (3 delar), 100KΩ motstånd, summer, 220Ω motstånd, FSR400 Force sensor.
PROGRAMVARA: Atmel studio 6.2 eller Aurdino varje kväll
Kretsschema och arbetsförklaring
Kretsanslutningen för gränssnitt med kraftavkänningsmotstånd med Arduino visas i nedanstående diagram.
Spänningen över sensorn är inte helt linjär; det blir en högljudd. För att filtrera bort bruset placeras kondensatorer över varje motstånd i delarkretsen som visas i figuren.
Här ska vi ta spänningen från delaren (spänning som representerar vikten linjärt) och mata den in i en av ADO-kanalerna i UNO. Efter konvertering ska vi ta det digitala värdet (som representerar vikt) och relatera det till PWM-värdet för att driva summern.
Så med vikten har vi ett PWM-värde som ändrar dess arbetsförhållande beroende på det digitala värdet. Ju högre det digitala värdet är högre arbetsförhållande för PWM så högre ljudet som genereras av en summer. Så vi relaterade vikt till ljud.
Innan du går vidare kan vi prata om ADC av Arduino Uno. ARDUINO har sex ADC-kanaler, som visas i figuren. I dessa kan någon eller alla användas som ingångar för analog spänning. UNO ADC har 10 bitars upplösning (så heltalets värden från (0- (2 ^ 10) 1023)). Detta innebär att den kommer att mappa ingångsspänningar mellan 0 och 5 volt i helvärden mellan 0 och 1023. Så för varje (5/1024 = 4,9 mV) per enhet.
Här ska vi använda A0 för UNO.
Vi behöver få saker.
|
Först och främst har UNO ADC-kanalerna ett standardreferensvärde på 5V. Det betyder att vi kan ge en maximal ingångsspänning på 5V för ADC-omvandling vid vilken ingångskanal som helst. Eftersom vissa sensorer ger spänningar från 0-2,5V, med en 5V-referens får vi mindre noggrannhet, så vi har en instruktion som gör att vi kan ändra detta referensvärde. Så för att ändra referensvärdet vi har (“analogReference ();”) För nu lämnar vi det som.
Som standard får vi den maximala ADC-upplösningen som är 10 bitar, denna upplösning kan ändras med instruktioner (“analogReadResolution (bits);”). Denna upplösningsändring kan komma till nytta i vissa fall. För nu lämnar vi det som.
Nu om ovanstående villkor är inställda som standard kan vi läsa värdet från ADC för kanal '0' genom att direkt kalla funktionen "analogRead (pin);", här "pin" representerar stift där vi kopplade analog signal, i det här fallet är det skulle vara “A0”. Värdet från ADC kan tas in i ett heltal som “int SENSORVALUE = analogRead (A0); ”, Genom denna instruktion värdet efter ADC lagras i heltalet“ SENSORVALUE ”.
PWM från Arduino Uno kan uppnås vid någon av stiften symboliserade som “~” på kretskortet. Det finns sex PWM-kanaler i UNO. Vi ska använda PIN3 för vårt ändamål.
analogWrite (3, VALUE); |
Från ovanstående tillstånd kan vi direkt få PWM-signalen vid motsvarande stift. Den första parametern inom parentes är att välja PIN-nummer för PWM-signalen. Den andra parametern är för skrivförmåga.
PWM-värdet för UNO kan ändras från 0 till 255. Med “0” som lägst till “255” som högst. Med 255 som arbetsförhållande får vi 5V vid PIN3. Om tullförhållandet anges som 125 får vi 2,5V vid PIN3.
Nu har vi 0-1024-värde som ADC-utgång och 0-255 som PWM-arbetsförhållande. Så ADC är ungefär fyra gånger PWM-förhållandet. Så genom att dela ADC-resultatet med 4 får vi det ungefärliga tullförhållandet.
Med det kommer vi att ha en PWM-signal vars arbetsförhållande förändras linjärt med vikten. Detta ges till summern, vi har ljudgenerator beroende på vikt.