Training
Leertraject
Dit leertraject is bedoeld om cursisten uit te leggen hoe ze AI aan de rand kunnen implementeren met behulp van Azure-services.
Deze browser wordt niet meer ondersteund.
Upgrade naar Microsoft Edge om te profiteren van de nieuwste functies, beveiligingsupdates en technische ondersteuning.
Een analoog-naar-digitaal converter (ADC) is een apparaat dat een analoge ingangsspanningswaarde kan lezen en omzetten in een digitale waarde. AOC's worden gebruikt voor het lezen van waarden van thermistors, potentiometers en andere apparaten die de weerstand wijzigen op basis van bepaalde voorwaarden.
In dit onderwerp gebruikt u .NET om waarden van een ADC te lezen terwijl u de ingangsspanning moduleert met een potentiometer.
Notitie
Deze zelfstudie is geschreven, ervan uitgaande dat het doelapparaat Raspberry Pi is. Deze zelfstudie kan echter worden gebruikt voor elke op Linux gebaseerde SBC die .NET ondersteunt, zoals Orange Pi, ODROID en meer.
Zorg ervoor dat uw SBC is geconfigureerd om de volgende services te ondersteunen:
Voor veel apparaten is geen aanvullende configuratie vereist. Gebruik voor Raspberry Pi de raspi-config
opdracht . Raadpleeg de Raspberry Pi-documentatie voor meer informatie overraspi-config
.
Gebruik de hardwareonderdelen om het circuit te bouwen, zoals wordt weergegeven in het volgende diagram:
De MCP3008 maakt gebruik van Serial Peripheral Interface (SPI) om te communiceren. Hier volgen de verbindingen van de MCP3008 met de Raspberry Pi en potentiometer:
Leveren 3.3V en aarden aan de buitenste pinnen op de potentiometer. Volgorde is niet belangrijk.
Raadpleeg indien nodig de volgende pin-outdiagrammen:
MCP3008 | Raspberry Pi GPIO |
---|---|
Afbeelding met dank aan Raspberry Pi Foundation. |
Tip
Een GPIO-breakoutboard in combinatie met een breadboard wordt aanbevolen om verbindingen met de GPIO-header te stroomlijnen.
Voer de volgende stappen uit in de ontwikkelomgeving van uw voorkeur:
Maak een nieuwe .NET Console-app met behulp van de .NET CLI of Visual Studio. Geef het de naam AdcTutorial.
dotnet new console -o AdcTutorial
cd AdcTutorial
Voeg het pakket Iot.Device.Bindings toe aan het project. Gebruik .NET CLI vanuit de projectmap of Visual Studio.
dotnet add package Iot.Device.Bindings --version 2.2.0-*
Vervang de inhoud van Program.cs door de volgende code:
using System;
using System.Device.Spi;
using System.Threading;
using Iot.Device.Adc;
var hardwareSpiSettings = new SpiConnectionSettings(0, 0);
using SpiDevice spi = SpiDevice.Create(hardwareSpiSettings);
using var mcp = new Mcp3008(spi);
while (true)
{
Console.Clear();
double value = mcp.Read(0);
Console.WriteLine($"{value}");
Console.WriteLine($"{Math.Round(value/10.23, 1)}%");
Thread.Sleep(500);
}
In de voorgaande code:
hardwareSpiSettings
is ingesteld op een nieuw exemplaar van SpiConnectionSettings
. De constructor stelt de busId
parameter in op 0 en de chipSelectLine
parameter op 0.SpiDevice
door aan te roepen SpiDevice.Create
en door te geven in hardwareSpiSettings
. Dit SpiDevice
vertegenwoordigt de SPI-bus. De using
declaratie zorgt ervoor dat het object wordt verwijderd en hardwareresources correct worden vrijgegeven.using
declaratie maakt een exemplaar van Mcp3008
en geeft de SpiDevice
door aan de constructor.while
lus wordt voor onbepaalde tijd uitgevoerd. Elke iteratie:mcp.Read(0)
.de app bouwen. Als u de .NET CLI gebruikt, voert u uit dotnet build
. Druk op Ctrl+Shift+B om in Visual Studio te bouwen.
Implementeer de app in de SBC als een zelfstandige app. Zie .NET-apps implementeren in Raspberry Pi voor instructies. Zorg ervoor dat u de uitvoerbare uitvoerbare uitvoermachtiging geeft met behulp van chmod +x
.
Voer de app uit op de Raspberry Pi door over te schakelen naar de implementatiemap en het uitvoerbare bestand uit te voeren.
./AdcTutorial
Bekijk de uitvoer terwijl u de potentiometerknop draait. Dit komt doordat de potentiometer de spanning varieert die aan CH0 op de ADC wordt geleverd. De ADC vergelijkt de ingangsspanning op CH0 met de referentiespanning die aan VREF wordt geleverd om een waarde te genereren.
Beëindig het programma door op Ctrl+C te drukken.
Gefeliciteerd U hebt SPI gebruikt om waarden uit een analoog-naar-digitaal conversieprogramma te lezen.
De bron voor deze zelfstudie is beschikbaar op GitHub.
.NET-feedback
.NET is een open source project. Selecteer een koppeling om feedback te geven:
Training
Leertraject
Dit leertraject is bedoeld om cursisten uit te leggen hoe ze AI aan de rand kunnen implementeren met behulp van Azure-services.
Documentatie
Omgevingscondities van een sensor lezen - .NET
Meer informatie over het lezen van temperatuur, barometrische druk en vochtigheid met de .NET IoT-bibliotheken.
Een ledlamp laten knipperen - .NET
Meer informatie over het knipperen van een LED met de .NET IoT-bibliotheken.
GPIO gebruiken voor binaire invoer - .NET
Meer informatie over het gebruik van GPIO voor binaire invoer met de .NET IoT-bibliotheken.