Arduino nano + Датчики хола, помогите

Saul
Offline
Зарегистрирован: 20.01.2018

Привет, такая проблема: есть две кнопки, есть два аналоговых датчика хола, они отдают каждые 10мс какую-то цифру.
Сейчас я получаю 510 каждые 10 мс, если ли способ сделать так, чтобы новое значение я получился, только если изменится само значение?

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Код секретный?

Saul пишет:

есть две кнопки, есть два аналоговых датчика хола, они отдают каждые 10мс какую-то цифру.

Хотя, кода не видел, но рискну предположить, что аналоговые датчики сами по себе ничего никому не отдают, Вы их сами спрашиваете.

Saul пишет:

Сейчас я получаю 510 каждые 10 мс, если ли способ сделать так, чтобы новое значение я получился, только если изменится само значение?

Конечно есть, спрашивайте так, как Вам надо. Хотя, опять же, без кода и схемы подключения Вы с тем же успехом этот вопрос вот здесь задать можете.

Saul
Offline
Зарегистрирован: 20.01.2018

Вот код, мне то не жалко
void setup()
{
  Serial.begin(9600);
}

void loop()
{
  if ((analogRead(0) <= 400 and analogRead(1) == 0) or (analogRead(0) == 0 and analogRead(1) == 0) ){
    Serial.println("2 knopki");
    delay(50);
    } 
  else if (analogRead(0) <= 400){
    Serial.println("knopka 1");
  }
  else  if (analogRead(1) <= 10){
    Serial.println("knopka 2");
  }
}

 

 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Ну, так и делайте. Если Вы хотите что-то делать только когда поменялось, то зачем делаете всегда?

Спросил. Сравнил со старым. И только если не равно, то что-то делать.

Только такие сранвнения. как у Вас (== 0) делать не надо. Аналоговый вход всегда немного "шумит". Вместо ==0 лучше использовать <3, например. Тоже самое для сравнения старого и нового значений. Позвольте необльшой шум. не пишите old==new, а пишите что-то типа abs(old-new) < 3

Saul
Offline
Зарегистрирован: 20.01.2018

Если не сложно, можно пример кода? Не особо понимаю как это реализовать, с ардуино около часа работаю вообще

bwn
Offline
Зарегистрирован: 25.08.2014

Все примеры здесь. А конкретные алгоритмы, только в голове шукать.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Saul пишет:

 с ардуино около часа работаю вообще

Ну, поработайте хотя бы с месяц, чего сразу код-то клянчить? От готового кода у Вас умения его писать не прибавится.