Zpět na úvodní stránku

Týden 6 - Senzory

Datum: 25.3.2025

Hlavní obrázek projektu

O projektu

Cílem tohot týdne bylo seznámit se s použitím senzorů a jejich zapojením. Jako projekt jsem si vybral práci na čtyřvodičovém měřiči odporu s použitím pro měření PT100 snímače teploty.

Zapojení

Nejdříve bylo třeba propojit měřící obvod s mikrokontrolerem. Z počátku jsem se snažil použít nucleo, ale vzheledem ke složitosti debugování jsem přešel na arduino (Mbed podpora končí, Keil neumní sledovat sériovou linku...). Po celém dnu snahy zporovznit nucleo jsem se rozhodl, že to nemá cenu a přešel jsem na arduino. Propojil jsem arduino s měřícím obvodem MAX 31865. K propojení bylo třeba otevřít v Kicadu schéma PCB desky.

Wireframy

Kicad schéma

Po propojení vypadalo zapojení takto:
Wireframy

Zapojení

Program

Zde nastal nevjětší kámen úrazu. Výstupy z měřícího obvodu jsem se snažil přečíst pomocí knihovny MAX31865. Bohužel jsem narazil na problém s připojením. Zatím senzor posílá LSB a MSB, ale nic jiného. Nejspíše knihovna uvnitř arduinoIDE nefunguje správně. Zatím jsem se snažil použít knihovnu Adafruit MAX31865, ale ani ta nefunguje. Zatím jsem se dostal k tomu, že mi senzor posílá LSB a MSB, ale nic jiného. Nejspíše knihovna uvnitř arduinoIDE nefunguje správně. Zatím jsem se snažil použít knihovnu Adafruit MAX31865, ale ani ta nefunguje. Zkusím se tedy podívat na výstupy MAX 31865 pomocí osciloskopu, zda dochází k odesílaní dat. Je možné, že bude třeba manuálně specifikovat HEX hodnotu pro nastavení senzoru pro čtyřvodičové zapojení a číst data přímo z registru a přepínat SCK pin na arduinu. Jakmile budu mít přístup k osciloskopu a možnost debugování, pokusím se senzor a jeho výstupy otestovat a zkalibrovat. To vše zde doplním.

Oprava

Po zkoumání Kicad návrhu jsem si všiml, že nesedí piny s popisem. Napsal jsem vedoucímu a zjistili jsme, že jsem omylem obdržel špatnou desku 🙂. Na nové desce jsem již správně zapojil MISO,SCK,MOSI a CS piny. Nakonec jsem použil Nucleo F303RE programované v arduino IDE. Napsal jsem nakonec jednoduchý kód pro čtení RTD a převodu na teplotu pro budoucí zapojení čidla PT100. Metodu jsem zvolil jako polling dat po prodlevě 70ms. V budoucnu bych rád přidal interrupt pro čtení dat, ovšem nedokázal jsem nastavit max převodník na kontinuální režim a interrupt fungoval pouze až po resetování převodníku. Polling je ale naprosto dostačující a funguje bez problémů.

Wireframy

Finální obvod

UI design

Diagnostika na logickém analyzátoru

Vizualizace dat a ukládání do CSV

Vytvořil jsem jednoduché GUI pro vizualizaci dat a ukládání do CSV. GUI je napsáno v Processingu.

Měření

Jelikož jsem si o děkanském dnu konečně zprovoznil Ikea Lack enclosure na moji 3d tiskárnu, rozhodl jsem se otestovat na kolik se dokáže uvnitř bez izolace vytopit. K tomu jsem použil můj vyrobený senzor a následně zapnul měření. Komora byla zahřívána pomocí tiskové podložky nastavené na 80 °C

Wireframy

Měření

Výsledky se automaticky zapisovali do CSV souboru, ze kterého šel snadno vytvořit graf

Wireframy

Graf

Jak je vidět, tak se mi podařilo dosáhnout teploty pouhých 26 stupňů Celsia. Budu muset tedy lépe izolovat.