Mein Code funktioniert nicht für eine Motorsteuerung über den Raspberry?
Ich versuche eine Steuerung für einen Miniatur-Kran mit einem raspberry zu bauen. Die Steuerung läuft über eine HTML-Website (Laut Chat-gpt ist die richtig, einfach fragen wenn ihr das Script dazu noch benötigt). Auf Putty kommt die Meldung, sobald ich auf dem Knopf drücke, das der GPIO-Pin kein Pin auf dem Raspberry ist.
Das ist das Code:
using Microsoft.AspNetCore.Mvc;
using System.Device.Gpio;
using System.Numerics;
namespace Kransteuerung_MEKW.Controllers
{
[ApiController]
[Route("[controller]")]
public class CraneController : ControllerBase
{
private readonly GpioController _gpioController;
private readonly ILogger<CraneController> _logger;
public CraneController(ILogger<CraneController> logger)
{
_logger = logger;
_gpioController = new GpioController(PinNumberingScheme.Board);
var allOutputPinNumbers = new List<int>{ 3 };
_logger.LogInformation("Setze alle GPIO Pins auf Output start");
foreach (int pinNumber in allOutputPinNumbers)
{
var pin = _gpioController.OpenPin(pinNumber);
pin.SetPinMode(PinMode.Output);
pin.Write(PinValue.Low);
}
_logger.LogInformation("Setze alle GPIO Pins auf Output fertig");
}
[HttpGet()]
public string Info()
{
return "Mögliche Posts: crane/turnLeftStart oder crane/turnLeftStop";
}
[HttpPost("turnLeftStart")]
public void TurnLeftStart()
{
_logger.LogInformation("Kran dreht links start");
var pin = _gpioController.OpenPin(3);
pin.Write(PinValue.High);
}
[HttpPost("turnRightStart")]
public void TurnRightStart()
{
_logger.LogInformation("Kran dreht rechts start");
var pin = _gpioController.OpenPin(4);
pin.Write(PinValue.High);
}
[HttpPost("turnLeftStop")]
public void TurnLeftStop()
{
_logger.LogInformation("Kran dreht links stop");
var pin = _gpioController.OpenPin(3);
pin.Write(PinValue.Low);
}
[HttpPost("turnRightStop")]
public void TurnRightStop()
{
_logger.LogInformation("Kran dreht rechts stop");
var pin = _gpioController.OpenPin(4);
pin.Write(PinValue.Low);
}
}
}