AlexGyver / GyverCore

Быстрое ядро для Arduino IDE
https://alexgyver.ru/gyvercore/
GNU Lesser General Public License v3.0
127 stars 13 forks source link

Пины A6 и A7 работают некорректно #32

Closed ArtyuhovVadim closed 1 year ago

ArtyuhovVadim commented 1 year ago
void setup()
{
  Serial.begin(9600);
}

void loop()
{
  auto a6 = analogRead(A6);
  auto a7 = analogRead(A7);

  Serial.print(a6);
  Serial.print("   ");
  Serial.println(a7);
}

По схеме к пинам A6 и A7 подключены кнопки с подтягивающим резистором к +5 В, то есть при нажатии на кнопку analogRead должен выдавать 0, при отпускании 1023. Оно так и работает, но только если использовать analogRead либо на А6, либо на А7, не вместе, как в коде выше. Сейчас эта работает так: при нажатии на кнопку, подключенную к А6, значение из функции ~400, на другой кнопке ~600, с кнопкой подключенной к А7 аналогичная ситуация, только цифры меняются местами. Также, если нажать одновременно на обе кнопки, то на обоих пинах будет 0. При выборе стандартного ядра код выше начинает работать правильно, естественно без изменений в нем, то есть A6 и A7 перестают быть связаны черной магией. Все расширенные настройки ядра стоят по дефолту, версия ядра 2.0.4

GyverLibs commented 1 year ago

По умолчанию АЦП разогнан, добавь хотя бы дилеи между чтениями. Или верни настройки как в ардуино analogPrescaler(128)

ArtyuhovVadim commented 1 year ago

Дилеи не помогли, а вот analogPrescaler(128) работает отлично, спасибо!