Кодирование датчика пульса для Netduino Plus 2 пошло не так
В настоящее время я делаю проект для Netduino Plus 2 с использованием.net micro Framework, который требует от меня написания кода для датчика пульса. Я пытался найти коды для датчика пульса, но безрезультатно. Я попытался использовать коды AnalogInput для датчика пульса, но выходные значения казались неправильными (было постоянное высокое значение, несмотря на то, что рядом с датчиком не было пульса). Пожалуйста, порекомендуйте!
Вот мои текущие коды для датчика сердцебиения:
using System;
using System.Net;
using System.Net.Sockets;
using System.Threading;
using Microsoft.SPOT;
using Microsoft.SPOT.Hardware;
using SecretLabs.NETMF.Hardware;
using SecretLabs.NETMF.Hardware.Netduino;
namespace heartrate
{
public class Program
{
public static void Main()
{
SecretLabs.NETMF.Hardware.AnalogInput rate =
new SecretLabs.NETMF.Hardware.AnalogInput(Pins.GPIO_PIN_A0);
int sensorvalue = 0;
while (true)
{
sensorvalue = rate.Read();
Debug.Print("" + sensorvalue);
Thread.Sleep(1000);
}
}
}
}
Вот технические характеристики датчика, как он выглядит и как он подключен. http://www.elecrow.com/wiki/index.php?title=Pulse_Sensor(это руководство предназначено для Arduino, но я думаю, что проводка похожа на проводку Netduino)
1 ответ
Трудно сказать без спецификаций на вашем импульсном устройстве и как оно подключено. Для аналогового ввода и вывода в моем последнем проекте ( https://github.com/osstekz/cncBuddy) я использую классы InputPort & OutputPort (Microsoft.SPOT.Hardware), например:
public NESControllerAdapter(Cpu.Pin pinClk, Cpu.Pin pinLatch, Cpu.Pin pinData1/*, Cpu.Pin pinData2 = Cpu.Pin.GPIO_NONE*/) {
// Binds to all pins
this._outpClk = new OutputPort(pinClk, false);
this._outpLatch = new OutputPort(pinLatch, false);
this._inpData1 = new InputPort(pinData1, false, Port.ResistorMode.Disabled);
//if (pinData2 != Cpu.Pin.GPIO_NONE) this._inpData2 = new InputPort(pinData2, false, Port.ResistorMode.Disabled);
}
... тогда нравится ваша оценка.Read(); петля
public int ButtonPressed() {
// Locks all parms
this._PinTick(this._outpLatch);
// Reads plug state value
for (int i = 0; i < CncBuddyShared.iTOTALNESCONTROLLERBUTTONS; ++i) {
// Read the value, if true return this index as the first pressed button
if (this._inpData1.Read() == false) return i;
// Selects the next value
this._PinTick(this._outpClk);
}
return NESCONTROLLER_PRESSEDBUTTOM_NONE;
}