Значение данных Arduino с шагом кнопки вместо высокого / низкого - PullRequest
0 голосов
/ 25 июня 2018

Я также разместил этот вопрос здесь .

Я подключаюсь к MUX74HC4067 и считываю значение каждого контакта.Все значения продолжают увеличиваться вместе до достижения 227, затем оно начинается заново.Я не уверен, что не так. Я устанавливаю контакты позже, так как я в конечном итоге получу их из INI-файла для настройки платы, когда она все работает правильно.

Последовательный монитор выводит следующее в качестве краткого примера:

Push button at channel 0 is 197
Push button at channel 1 is 197
Push button at channel 2 is 197
Push button at channel 3 is 197
Push button at channel 4 is 197
Push button at channel 5 is 197
Push button at channel 6 is 197
Push button at channel 7 is 197
Push button at channel 8 is 197
Push button at channel 9 is 197
Push button at channel 10 is 197
Push button at channel 11 is 197
Push button at channel 12 is 197
Push button at channel 13 is 197
Push button at channel 14 is 197
Push button at channel 15 is 197

Push button at channel 0 is 227
Push button at channel 1 is 227
Push button at channel 2 is 227
Push button at channel 3 is 227
Push button at channel 4 is 227
Push button at channel 5 is 227
Push button at channel 6 is 227
Push button at channel 7 is 227
Push button at channel 8 is 227
Push button at channel 9 is 227
Push button at channel 10 is 227
Push button at channel 11 is 227
Push button at channel 12 is 227
Push button at channel 13 is 227
Push button at channel 14 is 227
Push button at channel 15 is 227
#include "MUX74HC4067.h"

// Creates a MUX74HC4067 instance
// 1st argument is the Arduino PIN to which the EN pin connects
// 2nd-5th arguments are the Arduino PINs to which the S0-S3 pins connect

MUX74HC4067 *pmux1 = NULL;

void setup()
{
MUX74HC4067 pmux1(22,23,24,25,26);

Serial.begin(9600);  // Initializes serial port
 // Waits for serial port to connect. Needed for Leonardo only
while ( !Serial ) ;

// Configures how the SIG pin will be interfaced
// e.g. The SIG pin connects to PIN 3 on the Arduino,
//      and PIN 3 is a digital input
//  mux1.signalPin(27, INPUT, DIGITAL);
 pmux1.signalPin(27, INPUT, DIGITAL);
}

// Reads the 16 channels and reports on the serial monitor
// if the corresponding push button is pressed
void loop()
{
 byte data;

for (byte i = 0; i < 16; ++i)
{
    // Reads from channel i and returns HIGH or LOW
data = pmux1->read(i);


    Serial.print("Push button at channel ");
    Serial.print(i);
    Serial.print(" is ");
   Serial.println(data);
    if ( data == HIGH ) Serial.println("not pressed");
    else if ( data == LOW ) Serial.println("pressed");
}
Serial.println();

delay(1500);
}

Это ссылка на библиотеку mux .

Эта строка кода возвращает значение и в учебном пособии:

 data = mux1.read(i);

и работает нормально.

Я изменил на ниже, так как контакты будут установлены из файла INI, когда все работает.

data = pmux1->read(i);

Я в растерянности, так как получитьзначения, чтобы они были высокими или низкими.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...