Raspberry Pi Pico als weerstandsmeter

Raspberry Pi Pico als weerstandsmeter met behulp van de A-Vision Experiment assist

Het principe

Een waarde van een weerstand kan op verschillende manieren worden berekend. Volgens de wet van Ohm (I = V/R) wordt de waarde van een weerstand berekend als R = V/I.

Om de waarde van een weerstand te meten, hebben we een constante voeding (V) en een nauwkeurige referentieweerstand nodig.

Met behulp van het volgende schema kunnen we de weerstandswaarde berekenen.

Het gebruik van een referentiespanning van 3,3 Volt geeft een constante stroom (I) door de weerstanden. Deze stroom kan worden berekend door de 'meetspanning' te meten, zodat we de spanningsval over de bekende referentieweerstand weten.

Hierbij wordt ervan uitgegaan dat de stroom die door het meetcircuit wordt getrokken bijna niets bedraagt.

Dan kan de onbekende weerstandswaarde nu als volgt worden berekend:

calculate current

calculate unkown resistor

De waarde I vervangen door de berekende stroom formule.

substitute current

Door dit verder te vereenvoudigen krijgen we de volgende formule om de onbekende weerstand te berekenen.

final formula

De Raspberry Pi Pico aansluiten

Het volgende schema toont de verbinding met een Raspberry Pi Pico

In dit schema hebben we enkele extra's toegevoegd voor betere prestaties en nauwkeurigheid.

Er wordt geen aparte powersupply gebruikt, alle benodigde stroom komt van de USB aangesloten op de computer.

Software installeren op de Pico

Ten eerste is een STOP-knop toegevoegd om een eenvoudigere installatie van software op de Raspberry Pi Pico mogelijk te maken.
Hoe dit werkt is als volgt.

  1. Als u op de STOP-toets drukt, worden de programma('s) op de Pico gestopt.
  2. Druk tijdens het indrukken van de STOP-knop ook op de BOOTSEL-knop op de Pico.
  3. Laat vervolgens de STOP-knop los, hiermee wordt de Pico in een USB-schijfmodus opgestart.
  4. Nu kunt u de software naar het Pico USB-schijf kopiëren, dit zal de Pico automatisch resetten.

Schakelen tussen referentieweerstanden

Om de meetnauwkeurigheid te verbeteren, zijn twee P-Channel MOSFET's toegevoegd die het mogelijk maken om tussen twee referentieweerstanden te schakelen. Eén van 10kOhm voor het meten van weerstanden tot ongeveer 15kOhm, en één van 100kOhm voor het meten van weerstanden groter dan 15kOhm.

De omschakeling is gebaseerd op de gemeten spanning, wanneer deze meer dan 2,1 V bereikt, schakelt deze over naar de 100kOhm referentieweerstand en wanneer deze onder 0,4V zakt, schakelt het over naar de 10kOhm.

Dit resulteert in een nauwkeuriger meetresultaat.

Monitoring van het resultaat

De software stuurt de resultaten via de seriële interface (GPIO0 als TxD en GPIO1 als RxD).

De Txd (GPIO0) wordt aangesloten op de RxD op de USB naar SERIAL connector op de Experiment assist board, en de RxD (GPIO1) wordt aangesloten op de TxD op de USB naar SERIAL connector op de Experiment assist board.

Ook moet de GND van de USB naar SERIAL connector op de Experiment assist board worden aangesloten op de GND van de Raspberry Pi Pico.

Verbetering van de nauwkeurigheid

Boven een spanningsmeting van 2,1V en lager dan 0,4V wordt de nauwkeurigheid minder. Dit kan worden verbeterd door extra referentieweerstanden en automatisch schakelen toe te voegen op basis van deze gemeten waarden.

Met behulp van het bovenstaande schema zijn de metingen het meest nauwkeurig tussen 1,5kOhm en 150kOhm.

Gebruikte softwaretools

Windows 10 Raspberry Pi Pico C++ ontwikkeling

Om de Raspberry Pi Pico C++ ontwikkelomgeving op een Windows 10 systeem te installeren hebben wij gebruik gemaakt van de procedure zoals beschreven op-

https://notenoughtech.com/featured/c-c-and-micropython-sdk-for-raspberry-pi-pico-on-windows/

USB naar SERIAL uitlezen

Voor het monitoren van de resultaten via de USB naar SERIAL op de Experiment assist board, hebben we Mputty gebruikt, dit kan worden gedownload van-

https://ttyplus.com/downloads/

De volgende configuratie wordt gebruikt:

Drivers voor de USB naar SERIAL op het Experiment assist board worden geleverd bij het Experiment assist board zelf.

Overzicht Raspberry Pi Pico weerstandmeter op een Experiment assist board

Overzicht Raspberry Pi Pico weerstandmeter op een Experiment assist board

Het gebruik van het Experiment assist board samen met 400-pins breadboard maakt experimenteren hiermee heel eenvoudig.

De monitor is aangesloten op het ingebouwde USB naar SERIAL circuit, dit voorkomt dat u opnieuw verbinding moet maken met de USB-poort telkens wanneer de Pico in de USB-schijfmodus wordt gezet.

De code

De code is niet echt zo complex, het is in feite het lezen van de gemiddelde meetspanning en vervolgens het toepassen van de formule op de meting.

In pseudocode is het als volgt-

> Initialisatie. 
> Herhaal voor altijd:
  1. Meet de gemiddelde spanning over XX-monsters.
  2. Selecteer referentieweerstand op basis van gemeten spanningswaarde.
  3. Formule toepassen om onbekende weerstandswaarde te berekenen.
  4. Uitvoer metingen via UART.

De volledige C-code is online beschikbaar op https://github.com/A-Vision-Software/raspberry-pi-project-examples/tree/main/resistormeter