Anturit ja Arduino ELEC-A4010 Sähköpaja Tomi Pulli Signaalinkäsittelyn ja akustiikan laitos Mittaustekniikka Anturit ja Arduino Luennon sisältö 1. 2. 3. 4. 5. Taustaa Antureiden ominaisuudet AD-muunnos Antureiden lukeminen Arduinolla Anturityyppejä Kiihtyvyysanturi (Analog Devices) ELEC-A4010 Sähköpaja 2 Anturit Määritelmä • Eräs määritelmä: ”Mittauslaitteen osa, johon mitattava suure välittömästi vaikuttaa.” • Anturi reagoi fysikaaliseen suureen muutokseen tavalla, joka on luettavissa (yleensä sähköisenä) signaalina. • Esim. Vastuslämpötila-anturi PT100 • Lämpötilan muutos > Resistanssin muutos > Mitatun jännitteen muutos. • Usein myytävissä ”antureissa” on anturielementin lisäksi myös muita komponentteja, esim. vahvistin ja/tai ADmuunnin. • Mittalaite voi koostua esim. anturista, mittavahvistimesta, AD-muuntimesta ja näyttöyksiköstä. ELEC-A4010 Sähköpaja 3 Antureiden ominaisuuksia Antureiden ominaisuuksia Ideaalinen anturi • • • • • • • • Herkkä mitattavan ilmiön suhteen. Täysin epäherkkä muiden ilmiöiden suhteen. Tarkka. Kohinaton. Ei vaikuta mitattavaan kohteeseen. Laaja mittausalue. Ominaisuuksiltaan muuttumaton (esim. ajan suhteen). … ELEC-A4010 Sähköpaja 5 Antureiden ominaisuuksia Tarkkuus • Tarkkuudella voidaan tarkoittaa eri asioita. • Accuracy, ”paikkansapitävyys”, ulkoinen tarkkuus • Kuvaa systemaattisen virheen suuruutta (Virhe suhteessa todelliseen arvoon). • Mikäli ulkoinen tarkkuus on huono, paranee kalibroimalla. • Precision, ”täsmällisyys”, sisäinen tarkkuus • Kuvaa satunnaisen virheen suuruutta. • Mikäli sisäinen tarkkuus on huono, paranee esim. keskiarvoistamalla. Accurate, precise Precise, accurate ELEC-A4010 Sähköpaja 6 Antureiden ominaisuuksia Herkkyys ja lineaarisuus • Herkkyys • Kuinka paljon anturin ulostulosignaali (esim. jännite) muuttuu, herätteen (esim. lämpötila) muuttuessa. • Lineaarisuus • S(s) = ks + a S = ulostulosignaali s = sisääntulosignaali, heräte k = kulmakerroin, herkkyys a = offset • Huom. anturi on usein lineaarinen vain tietyllä mittausalueella (tai ei ollenkaan). ELEC-A4010 Sähköpaja 7 Antureiden ominaisuuksia Kohina • Signaalin spontaania, satunnaista vaihtelua. • Voidaan määritellä vain tilastollisesti, ei voida ennustaa. • Anturin lisäksi myös vahvistin, A/D-muunnin, jne. aiheuttavat mitattavaan signaaliin kohinaa. • Komponenttien kohinaa kuvataan useilla eri suureilla, esim. • Kohinan tehollisarvo (esim. ulostulojännitteenä 𝑉noise ) • Kohinajännitetiheys • 𝑢noise = 𝑉noise / 𝐵 [V/ Hz] , missä B on kohinakaistanleveys • Signaali-kohinasuhde 𝑃signal 𝑆𝑁𝑅 = 10 log • Signaalikohinasuhdetta käytetään usein mm. vahvistimien ja A/D-muuntimien ominaisuuksien kuvaamiseen 𝑃noise [dB] = 20 log 𝑉signal • 𝑉noise dB ELEC-A4010 Sähköpaja 8 Antureiden ominaisuuksia Häiriöt • Kohinan lisäksi mittauksissa useita häiriölähteitä. • Anturin lukemaan vaikuttaa usein myös muu kuin mitattava suure. • Useat anturit ovat herkkiä lämpötilalle. • Myös sähköiset häiriöt aiheuttavat usein virhettä signaalissa (esim. ”ylimääräinen” 50 Hz signaali). ELEC-A4010 Sähköpaja 9 Antureiden ominaisuuksia Kohina ja häiriöt • Kohinan vähentäminen • Suodatus tai keskiarvoistus. Esimerkiksi: val = 0; for (int i = 0; i < 10; i++) val += analogRead(pin); val = val/10; (Parempi toteutus: https://www.arduino.cc/en/Tutorial/Smoothing) • Anturivalinta. • Häiriöiden minimointi • Poista häiriölähde (esim. stabiloi lämpötila, poista radiolähetin). • Siirry kauemmas häiriölähteestä (esim. sähköjohdot). • Suojaus (esim. laitekotelointi ja suojatut johdot). ELEC-A4010 Sähköpaja 10 Antureiden ominaisuuksia Mittausalue • Antureille ilmoitetaan tyypillisesti rajallinen toimintaalue. • Toiminta-alueen ulkopuolella: • • • • • • Toimintaa ei ole testattu, Anturi ei saavuta luvattua tarkkuutta, Vaste on voimakkaasti epälineaarinen (esim. saturaatio), Anturi ei toimi (esim. digitaaliset anturit), Anturi on vaarassa tuhoutua (esim. lämpötila) tai Jotain muuta. • Antureiden ja mittalaitteiden ominaisuudet (herkkyys, tarkkuus, jne.) voivat riippua käytetystä mittausalueesta. • Datalehtien tiedot jaettu usein eri mittausalueille. ELEC-A4010 Sähköpaja 11 Analogi–digitaalimuunnos AD-muunnos Taustaa • Arduinon AD-muunnin muuttaa anturin syöttämän analogisen jännitesignaalin digitaaliseen muotoon. • Arduinon AD-muuntimen ominaisuudet (Arduino UNO) • Resoluutio 10 bittiä: 210 = 1024 jännitetasoa • Referenssijännite 5 V: 0 V vastaa luku 0; 5 V vastaa luku 1023 • Näytteistystaajuus (max) n. 10 kHz: 10 000 näytettä / s. • Osa antureista suorittaa AD-muunnoksen itse. • Arvot siirretään Arduinolle digitaalisessa muodossa. • Anturin AD-muuntimen ominaisuudet ratkaisee, ei Arduinon. ELEC-A4010 Sähköpaja 13 AD-muunnos Resoluutio • Kuvaa digitaalisen mittalaitteiston erottelukykyä. • Pienin havaittava jännitteen muutos riippuu resoluution lisäksi referenssijännitteestä. Esim. Vref = 5 V: • 10 bittiä: 210 = 1024 jännitetasoa; 5 V / 210 = 4.88 mV • 16 bittiä: 216 = 65536 jännitetasoa; 5 V / 216 = 0.0763 mV • Huom. Jos luet Arduinolla (10 bit, Vref = 5 V) anturia, jonka jännite vaihtelee mittauksessa vain 20 mV, on käytössäsi vain viisi jännitetasoa! • Esim. huoneen lämpötilan mittaus. • Signaalin vahvistus, referenssijännitteen muuttaminen, jne. ELEC-A4010 Sähköpaja 14 AD-muunnos Resoluutio ja näytteistystaajuus • Periaatekuva ADmuunnoksesta • Pieni resoluutio tai huonosti valittu referenssijännite. • Pieni näytteistystaajuus • AD-muunnoksen optimointi ei kuitenkaan aina ole tarpeen. • Voi riittää tieto siitä, onko valo päällä vai ei. ELEC-A4010 Sähköpaja 15 Antureiden lukeminen Antureiden lukeminen Analoginen anturi • Yksinkertaisin anturityyppi: Jänniteantoinen analoginen anturi • Vaatii käyttöjännitteen • Kytke maapotentiaali (ground, GND). • Kytke käyttöjännite. • Tarvittaessa käytä ulkoista lähdettä tai regulaattoria. • Vaatii signaalijohdon • Kytke anturin ulostulo Arduinon Analog In –osioon. ELEC-A4010 Sähköpaja 17 Antureiden lukeminen Analoginen anturi Koodiesimerkki: int pin = 0; // anturipinni int val = 0; // mitattu arvo void setup() { Serial.begin(9600); // avaa sarjaliikenne } void loop() { val = analogRead(pin); // lue anturin arvo Serial.println(val); // tulosta arvo sarjaporttiin delay(500); // odota 500 ms } ELEC-A4010 Sähköpaja 18 Antureiden lukeminen Digitaalinen anturi • Lukuisia digitaalisia toteutuksia. • Vaatii käyttöjännitteen ja signaaliväylän. • Jännitetasot ja kytkentä tulee tarkastaa anturikohtaisesti. ELEC-A4010 Sähköpaja 19 Antureiden lukeminen Digitaalinen anturi Koodiesimerkki: #include <OneWire.h> // liitä tarvittava kirjasto mukanaan int pin = 2; // anturipinni float val = 0; // mitattu arvo OneWire ds(pin); // luo OneWire-objekti void setup() { Serial.begin(9600); // avaa sarjaliikenne } void loop() { val = getTemp(); // funktiokutsu Serial.println(val); // tulosta arvo sarjaporttiin delay(500); // odota 500 ms } … // Funktio, joka kysyy anturin arvoa, ja palauttaa lämpötilan liukulukuna. float getTemp() { … // funktion toteutus return temperature; } ELEC-A4010 Sähköpaja 20 Antureiden lukeminen Yleisiä huomioita • Lue antureiden tietolehdet/ohjeet/tutoriaalit • Onko käytetty Arduinon kanssa? Onko toiminut? • Mahdollisia ongelmia esim. mikrokontrollerin nopeus ja anturin ulostulosignaalin muoto. • Ennen kytkentää • Pinnijärjestys, käyttöjännitteet, jne. • Älä keksi pyörää uudestaan! • Valmiit, yleisesti käytetyt kirjastot ja koodiesimerkit usein hyvin toteutettuja, vakaita ja tuettuja. • Ei kuitenkaan aina. Jos koodi ei toimi, ei vika ole välttämättä teissä. ELEC-A4010 Sähköpaja 21 Antureiden lukeminen Yleisiä huomioita • Suosi ”Arduino-yhteensopivia” antureita. • Fyysinen koko: • Paljaita pintaliitoskomponentteja vaikea käsitellä. • ”Sovituslevyt” (engl. Breakout board). • Analoginen anturi: • Jänniteantoinen. • Esim. Vastuslämpömittari PT100 vaatii monimutkaisen kytkennän. • Ulostulojännite sopivalla välillä. • Esim. Jos jännite on välillä 0 – 20 mV, tarvitaan erillinen vahvistin. • Digitaalinen anturi: • Valmiit kirjastot ja esimerkit. ELEC-A4010 Sähköpaja 22 Anturityyppejä Anturityyppejä Lämpötila-anturit • Lämpötilan mittaus voi perustua esim. resistanssin muutokseen, lämpösähköiseen ilmiöön tai lämpösäteilyyn. • Esim. Analog Devices TMP36 (analoginen) • Herkkyys 10 mV/ºC • Toiminta-alue -40 – +125 ºC • Esim. Dallas Semiconductor DS18B20 (digitaalinen) • Resoluutio parhaimmillaan 0.0625 ºC • Toiminta-alue -55 – +125 ºC • Antureilla oma yksilöllinen osoite. Samaan OneWire väylään voidaan kytkeä useita antureita. • Laaja anturiverkko käyttämättä suurta määrää mikrokontrollerin liittimiä. ELEC-A4010 Sähköpaja 24 Anturityyppejä Etäisyysanturit • Etäisyyden mittaus voi perustua esim. lasereiden, infrapunaledien tai ultraääniantureiden käyttöön. • Esim. Sharp GP2Y0A21YK analoginen IR-etäisyysanturi • 10 cm -> 3.1 V ulostulojännite; 80 cm -> 0.4 V ulostulojännite • Epälineaarinen vaste. • Esim. Maxbotix LV-MaxSonarEZ1 analoginen ultraäänianturi • Herkkyys (Vcc/512) / tuuma, missä Vcc on käyttöjännite. • Huom. Antureiden keilamuoto otettava huomioon. ELEC-A4010 Sähköpaja 25 Anturityyppejä Kiihtyvyysanturit ja gyrot • Kiihtyvyysanturi mittaa kappaleen kiihtyvyyttä suhteessa vapaassa pudotuksessa olevan tarkkailijan kiihtyvyyteen. • Paikallaan oleva anturi mittaa siis noin 9,8 m/s2 ylöspäin. • Toimii kallistusanturina! • Gyroskooppi mittaa pyörimisnopeutta. • Painovoima ei vaikuta lukemaan. • Käytetään usein yhdessä kiihtyvyysanturin kanssa: Liike ja asento voidaan määrittää tarkemmin. - Inertial Measurement Unit (IMU). • Esim. Analog Devices ADXL335 analoginen kiihtyvyysanturi • Mittaa kiihtyvyyttä kolmen akselin suhteen. ELEC-A4010 Sähköpaja 26 Anturityyppejä Muut anturit • Sähkö ja magnetismi • Virta, magneettikenttä, kompassi, … • Valo • Intensiteetti (ultravioletti, näkyvä, infrapuna), väri, kuva, … • Kemikaalit • Alkoholi, häkä, pH, … • Kosketus • Paine, taivutus, kosketuspinnat, sormenjälki, … • Ja niin edelleen… • Ilmanpaine, kosteus, ääni, kortinlukijat, … ELEC-A4010 Sähköpaja 27 Linkkejä Komponentit, ohjeet … • Ohjeet • Arduino: arduino.cc • Arduino Playground: playground.arduino.cc • Bildr: bildr.org • …. • Komponentit, datalehdet, ohjeet • Sparkfun: sparkfun.com • Seeed Studio: seeedstudio.com • DFRobot: dfrobot.com • …. • Yleisesti, tarkista ennen ostoa: Anturin tyyppi + Arduino ELEC-A4010 Sähköpaja 28
© Copyright 2024