Sensorer
Vad är sensorer?
Sensorer är elektroniska komponenter som mäter förändringar förändringar i sin omgivning – vår omgivning – och omvandlar förändringen till en elektrisk signal av något slag. Några vanliga exempel på sensorer och vad de mäter är temperatursensorer (värme), accelerometrar (acceleration – G-krafter), fotodioder (ljus) och halleffektsensorer (magnetism).
En sensor består av en givare – som är det som faktiskt påverkas av storheten – och (oftast) annan elektronik som anpassar signalen till den utrustning som ska läsa av sensorn. Idag används orden sensor och givare relativt utbytbart. En annan vanlig term är engelskans transducer, som syftar på komponenter som omvandlar energi från en form till en annan. Ett exempel är mikrofoner, som omvandlar lufttryck till en spänning, eller piezoelektriska lastceller, som omvandlar fysiskt tryck (från t.ex. bilar, när man vill mäta trafikmängder) till spänning.
Storleksordningen för sensorer sträcker sig från det mikroskopiska i MEMS-sensorer till större rörliga föremål som den böjliga bimetalltermostaten. De finns överallt runtomkring oss, och användningsområdena är otaliga – allt ifrån att rädda liv till spel och underhållning. Ämnet är stort, så i den här texten skrapar vi bara på ytan
Sensorer används överallt
Ett användningsområde är automatisk reglering av utrustning, t.ex. de temperatur- och fuktsensorer som ser till att luftkonditionering jobbar optimalt, eller de många sensorerna i en bil som mäter temperaturer, tryck på olika gaser, koldioxidhalt, vätskevolymen i tankar för spolarvätska, olja, drivmedel och kylarvätska m.m. Sensorer återfinns också i industriell produktion, för styrning, övervakning och loggning av data av olika slag.
Förutom att reglera och informera styrutrustning är sensorer också viktiga för att varna för olika skadliga tillstånd – brandvarnare är ett vanligt exempel, men temperatursensorer i t.ex. batterier och batteriladdare är ett exempel på hur man försöker hindra eldsvådor i ett tidigare skede. Sådana varnande sensorer kan vara anslutna till larmsirener, skicka SMS, eller vara kopplade så att de direkt kan avvärja risker genom att t.ex. bryta strömmen eller slå på ett sprinklersystem.
Andra användningsområden för sensorer är av mer undersökande natur, exempelvis sensorerna på de många väderstationerna i vårt land, lastcellerna i en personvåg, eller olika medicinska instrument som mäter blodtryck, blodsyresättning, puls, m.m. Sensorer av olika slag används givetvis också i forskning och utbildning.
Sensorer används också i olika användargränssnitt, där ett vanligt exempel är kapacitiva sensorer i touch-displayer och andra pet-känsliga gränssnitt, medan ett annat exempel är potentiometrar, som mäter rotation av t.ex. en ratt, som ändrar någon inställning. Några mer dolda och automatisk ”gränssnitt” är rörelsedetektorer som automatiskt tänder utomhusbelysning, eller magnetsensorerna under vägar som känner av fordon och slår om trafikljus.
Signaltyper och hur man läser av dem
Vissa sensorer är alltså rena givare, medan de flesta har någon sorts inbyggd elektronik för att omvandla och anpassa den elektriska signalen. Hur elektroniken ser ut och jobbar avgör vad och hur man kan ansluta sensorn till. Ofta finns det standarder för spänningsnivåer och seriella protokoll, vilket gör många sensorer plug-and-play. I andra fall kan man själv behöva anpassa signalen för att den ska fungera i sin applikation. Ytterligare sensorer går att använda direkt, utan att man strikt talat mäter en signal.
Signalen från en sensor kan se ut på många olika sätt. Några exempel:
Analog spänning
En varierande analog spänning. Här finns många olika typer av sensorer, från temperatursensorer som TMP36 och LMT85LP, dammsensorer, eller strömsensorer. Det vanligaste är att spänningen ökar med ökande utslag, alltså högre spänning för högre temperatur, men det finns också sensorer med omvänt förhållande. Att använda sådana behöver inte vara svårare, det är bara att vänta på ett värde i programkoden, eller invertera en spänning med en operationsförstärkare.
Förhållandet temperatur-utspänning i temperatursensorerna TMP235 och 236. Källa: Texas Instruments.
Viktigare än om spänningen ökar eller minskar när storheten ökar, är hur den förändras i förhållande till storheten. I bästa fall är förändringen linjär, t.ex. 10 mV/°C. I andra fall kan ökningen följa en böjd kurva, vilket antingen kräver att spänningen räknas om med differentialekvationer, eller att man slår upp värden i en tabell.
Sensorer med analog utgång är lätta att använda, oavsett om man vill använda dem med en mikrokontroller eller förstärka analogt och koppla till t.ex. en visare. I princip så räcker det att koppla sensorn till mikrokontrollern, eller till en ad-omvandlare om mikrokontrollern saknar inbyggd omvandlare. Vid behov kan signalen förstärkas med operationsförstärkare. Upplösningen hos sådana sensorer begränsas normalt av A/D-omvandlarens upplösning.
Enkel förstärkning av analog sensordata ↗
För att se hur man kan läsa av en temperatursensor med en Arduino, se här. Exemplet är för Arduino och bygger på en viss sensor, men principerna är applicerbara på alla sensorer med analog utspänning.
Digital spänning
Sensorer med en enkel digital spänningsutgång. Spänningen kan ha en av två nivåer, som representerar två logiska tillstånd. Ett exempel är pyroelektriska infraröda sensorer (PIR), som normalt ger en hög spänning när en person detekteras. Om man har flera sensorer med digital utgång kan man kombinera deras spänningar med t.ex. dioder, och läsa av alla sensorer med en ingång. Spänningen från sensorerna kan t.ex. driva en transistor som växlar ett relä, som tänder lampor (om de inte klarar av att driva reläet själva).
bool pirState; // skapar variabeln pirState
void setup() {
}
void loop() {
pirState = digitalRead(A2); // läs av ingång A2 (digital) och tilldela värdet till pirState
if (1 == pirState) { // om pirState är lika med 1
digitalWrite(LED_BUILTIN, 1); // tänd inbyggd led
} else if (0 == pirState) { // annars
digitalWrite(LED_BUILTIN, 0); //släck inbyggd led
}
}
Det finns även sensorer som normalt lämnar hög spänning, som dras låg när det de letar efter upptäcks, vilket ibland är mer praktiskt. T.ex. får man direkt får veta om en sensor har slutat fungera, eftersom spänningen slutar vara hög.
Öppen kollektor
En typ av digital utgång är öppen kollektor (eng. Open collector). Som namnet antyder använder sådana sensorer en transistor på utgången. Transistorn är kopplad som en switch till jord. Några exempel på sensorer med öppen kollektor är kapacitiva och induktiva närhetssensorer.
Läs mer om hur du använder sensorer med öppen kollektor här.
Digitala pulser
Vissa sensorer ger sin data i form av digitala pulser, som varken är seriell data eller ett av två värden (hög eller låg spänning). Ett exempel är ultraljuds-avståndssensorer, som är populära i t.ex. robotar. De skickar en puls med varierande längd, beroende på uppmätt avstånd. Med rätt bibliotek behöver man inte räkna om från pulslängd till avstånd i cm, utan kan få ut färdiga värden direkt.
Digitala pulser används också internt i vissa sensorer, t.ex. inuti optiska dammsensorer, där varje detekterat dammkorn motsvarar en puls. Pulserna brukar dock omvandlas till en varierande analog spänning, som är datan man får ut.
Rotationsenkodrar med kvadraturutgång är en annan sensor som skickar pulser parvis. Ordningen på de två pulserna indikerar vilken riktning axeln roterar. En typ används som gränssnitt i bilar, stereoutrustning och liknande, men en annan mer högpresterande sort monteras på drivaxlar, och kan då ge information om riktning och hastighet på rotationen.
Seriella protokoll
Idag är det vanligt att sensorer har en mikrokontroller som läser av datan, och skickar den seriellt. De vanligaste protokollet för detta är kanske I2C, UART och SPI. Många seriella protokoll (inklusive I2C och SPI) är bussprotokoll, vilket innebär att flera sensorer (och andra enheter) kan kopplas ihop i ett nätverk, och skicka och ta emot data utan konflikter. UART är uråldrigt och begränsat till kommunikation mellan två enheter.
Qwiic är en fysisk standard för I2C framtagen av Sparkfun, som möjliggör snabba och enkla uppkopplingar. En fyrpolig kabel ger spänning, jord och de två datalinor I2C-protokollet använder. Standardiserad kontakt och spänning (med krav på nivåomvandling) gör det helt plug-and-play och mycket kompatibelt. Ett populärt och växande system, med kort från många olika tillverkare, även Electrokit.
Många I2C-kretsar kan samsas på samma buss, så länge de har olika adresser. Här har bussen förlängts med en transceiver och nätverkskabel.
Sensorer med inbyggd omkopplare
Många sensorer har en inbyggd mekanisk omkopplare, som sluter eller öppnar (eller växlar) när sensorn ger utslag. Eller, annorlunda uttryckt, så är sensorn omkopplaren. Några exempel är bimetalltermostater, tilt-switchar och tungelement.
Bimetalltermostater har en tunga som består av två olika metaller. Metallerna reagerar olika på temperaturförändringar, vilket gör att tungan böjs när temperaturen ökar. Tungan används som den rörliga delen i en strömbrytare, och brukar vara normalt sluten (NC). När temperaturen stiger över en viss gräns böjs tungan bort från ett kontaktbleck, och kretsen bryts. När temperaturen har sjunkit igen böjs tungan tillbaks, och kretsen sluts igen. Bimetalltermostater används som skydd mot överhettning, och finns för många olika temperaturer.
Tilt-switchar finns i många olika utföranden, och kan bryta, sluta eller växla beroende på konstruktion. Alla har något rörligt föremål som leder ström (t.ex. en metallkula) som rör sig över interna kontakter. När föremålet rör sig sluts eller bryts kretsen. De är robusta och lätta att använda, och kan t.ex. installeras i t.ex. föremål som bara bör användas i en viss orientering, eller för den delen i flipperspel. Vibrationssensorer liknar tilt-switchar, men brukar vara känsligare, och inte användas för att leda signal, utan bara ge pulser för att indikera att ett föremål vibrerar.
Tilt-switchar finns i många storlekar och utformningar.
Mikrobrytare är en annan mekanisk ”sensor”, som t.ex. används som ändlägesbrytare i 3d-skrivare, fräsar och annan robotik. I någon mening så är ju alla tryckknappar sensorer, om de används så, men mikrobrytare är en sort som är utformad för att aktueras av dörrar och andra föremål.
Tungelement är små strömbrytare som reagerar på magnetfält. De allra flesta modellerna är normalt öppna, och sluter när de påverkas av ett magnetfält.
Varierande resistans
Ytterligare en typ av sensor ger en varierande resistans som signal. Några exempel är gassensorer, fotomotstånd, temperaturkänsliga motstånd och böjsensorer. Även vanliga potentiometrar räknas in här – de används allmänt för att användargränssnitt, men är som sagt en typ av sensor om man använder den så.
Det finns olika sätt att läsa av datan från sensorer som ger en variabel ström. Ett enkelt sätt är att koppla dem i serie med ett fast lastmotstånd och skapa en spänningsdelare. På så vis omvandlas den varierande resistansen till en variabel spänning. Den kan man sedan förstärka analogt, och/eller skicka till en A/D-omvandlare för vidare behandling i en mikrokontroller. Inspänning och resistans på lastmotståndet behöver såklart anpassas till sensorns omfång.
Förenklad simulering av resistiv sensor i spänningsdelare↗
Analog ström
Andra sensorer ger en varierande analog ström. Det gäller t.ex. fotodioder. I jämförelse med fotomotstånd är de mycket snabbare, och ger en mer exakt mätning. Utsignalen är dock väldigt ”klen”, vilket ställer högre krav på elektroniken som förstärker signalen. Själva kretsschemat behöver inte vara komplicerat, men operationsförstärkarens prestanda behöver hålla en hög nivå, med bland annat hög ingångsimpedans och låg biasström.





