MCP3004 -спи аналоговая проводка - только три хороших чтения

Я пытаюсь сделать простую программу цикла C++ для чтения аналоговых значений из MCP3004 через SPI. Я использую библиотеки WiringPi, чтобы сделать код очень четким. Функции работают нормально, я получаю правильные числа, но не в цикле. Я получаю только 3 первых чтения, а после этого только 0. Я просмотрел ссылки на wiringPi, библиотеки и не нашел ничего, что могло бы мне помочь. Я пытался изменить время задержки, но все еще получал только 3 первых правильных значения. Может быть, кто-то имел такую ​​проблему и знает ответ? Буду очень признателен за любую помощь.

#include <wiringPi.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <mcp3004.h>

int main()
{
    int wart;
    wiringPiSetupGpio();
    mcp3004Setup (100,0);
    while(true)
    {
        for(int i=0;i<4;i++)
        {
            wart=analogRead(100);
            printf("Value: %d\n", wart);
            delay(1000);
        }
    delay(5000);
    }
}

этот код дает мне, например: Значение:1004, Значение:1003, Значение:500, и только затем Значение:0

1 ответ

Я все время использую mcp3008, который является версией 8 ADC в SPI от Windows, и у меня нет никаких проблем.

Во-первых, вы действительно читаете порт 100 с mcp3008.

wart=analogRead(100);

Вы должны предоставить код из mcp3004.cpp

Код C# для чтения значения из MCP3008

private List<int> _channelInSingleMode = new List<int>() {
            0x08,
            0x09,
            0x0A,
            0x0B,
            0x0C,
            0x0D,
            0x0E,
            0x0F
        };

        public int Read(int port)
        {
            if ((port > 7) || (port < 0))
                throw new ArgumentException(string.Format("Invalid analog port {0}", port));

            const byte junk = (byte)0;
            var port2       = (byte)((_channelInSingleMode[port] << 4));
            var r1          = this._spiEngine.Transfer(new List<Byte>() { 0x1, port2, junk });

            return ValidateOperation(r1);
        }
Другие вопросы по тегам