Устранение неполадок I2C и логического сдвига

Я пытаюсь использовать двунаправленный переключатель уровней SparkFun (ссылка здесь) для подключения нунчука Wii 3,3 В к схеме Arduino Uno 5 В. Пока все, что я пытаюсь сделать, это записать положение джойстика и кнопок в монитор. Когда я включаю переключатель в схему, код возвращает значения, которые далеки от того, чем они должны быть, в тысячи, а иногда и в минус. Однако, когда я подключаю контроллер без переключателя (рискуя сжечь мой контроллер), код работает как обычно, возвращая оси x и y джойстика примерно на 130. Обе кнопки имеют аналогичную проблему, когда они читается как нажатое через случайные промежутки времени, когда даже не коснулись. Из-за чего данные могут быть отключены? Я пытался перемонтировать проводку несколько раз и следую странице общего использования SparkFun в качестве руководства, поэтому, надеюсь, неправильное подключение не должно быть проблемой.

Вот код:

#include <Wire.h>
#include <ArduinoNunchuk.h>

#define BAUDRATE 19200

ArduinoNunchuk nunchuk = ArduinoNunchuk();

void setup()
{
  Serial.begin(BAUDRATE);
  nunchuk.init();
}

void loop()
{
  nunchuk.update();
  Serial.print(nunchuk.analogX, DEC);
  Serial.print(' ');
  Serial.print(nunchuk.analogY, DEC);
  Serial.print(' ');
  Serial.print(nunchuk.zButton, DEC);
  Serial.print(' ');
  Serial.println(nunchuk.cButton, DEC);
  Serial.print(' ');
  delay(250);
}

Источник библиотеки:http://www.gabrielbianconi.com/projects/arduinonunchuk/

, 👍1

Обсуждение

Покажите фото вашей проводки. Свежая пара глаз может заметить что-то, что вы упустили., @Majenko

распечатайте значения в шестнадцатеричном формате... добавьте список значений в свой пост... включите описание того, что вы ожидали увидеть, @jsotola