кнопки вместо энкодера

toric21

✩✩✩✩✩✩✩
7 Фев 2023
15
0
Всех приветствую! Помогите пожалуйста . Суть дела в том что нужно на место энкодера ( на фото) поставить две кнопки . функция кнопок будет просто прибавить убавить. На контактах А и В присутствует +5v. . Да можно поставить новый энкодер, но фишка в том что как раз нужны кнопки)
 

Вложения

Изменено:

viktor1703

★★★✩✩✩✩
9 Дек 2021
554
135
Ну так а что требуется? Что бы пришли к Вам домой форумчане и припаяли две кнопки?
 

toric21

✩✩✩✩✩✩✩
7 Фев 2023
15
0
@viktor1703,
так нужно подружить кнопки с платой. просто их не поставить вместо энкодера
 

Старик Похабыч

★★★★★★★
14 Авг 2019
4,201
1,287
Москва
На среднем контакте земля ?
Источник питания 5 в ? Если да, то какое сопротивление (при выключенном питании!) между контактом А и + : То же с контактом Б и + ?
а так ардуина + 2 кнопки вполне могут эмулировать работу энкодера, как я написал в другой теме
 

toric21

✩✩✩✩✩✩✩
7 Фев 2023
15
0
@Старик Похабыч,
да на среднем земля . между А и землей 13Ком между В и землей 13Ком. между А и + 23Ком между В и землей 23Ком
Спасибо за прошлую прогу она работает только на эмуляторе но блин как только ее подсоединяю к своей плате ни в какую не хочет
 

Старик Похабыч

★★★★★★★
14 Авг 2019
4,201
1,287
Москва
Ну значит на контактах А и Б есть подтяжка к +5, скорее всего там же стоит по конденсатору - апартный антидребезг. Но он не нужен будет. Возможно придется проследить что там за резисторами на 13ком.
А пока вот так:
Значит для теста можно взять нану, подключаем к среднему контакту землю А и Б на 2 любых пина, пусть будут 9 и 10, 5в можно взять из источника питания, если там больше, до 12, то на ВИН , если ровно 5, то на 5
На ардуину залить такой код:
C++:
void setup() {
  pinMode(9,OUTPUT);
  pinMode(10,OUTPUT);
  digitalWrite(9,1);
  digitalWrite(10,1);
}

void loop() {
  digitalWrite(9,0);
  delay(10);
  digitalWrite(10,0);
  delay(10);
  digitalWrite(9,1);
  delay(10);
  digitalWrite(10,1);
  delay(2000);
}
Включить плату и посмотреть, будет ли раз в 2 секунды меняться значение, которое меняет энкодер

Может быть придется менять задержку в 10 мс на другую. Пробуйте менять сразу в 2 раза.
 
  • Лойс +1
Реакции: toric21

toric21

✩✩✩✩✩✩✩
7 Фев 2023
15
0
@Старик Похабыч,
ой круто. хоть похоже на правду стало. индикация меняется. осталось только добававить кнопки и чтоб можно было и в плюс и в минус регулировать
 

Старик Похабыч

★★★★★★★
14 Авг 2019
4,201
1,287
Москва
Это самое простое. Сейчас в одно изменение идет в цикле, а надо сделать этo по клику одной из кнопок
C++:
  digitalWrite(9,0);
  delay(10);
  digitalWrite(10,0);
  delay(10);
  digitalWrite(9,1);
  delay(10);
  digitalWrite(10,1);
В другую сторону будет так:
C++:
  digitalWrite(10,0);
  delay(10);
  digitalWrite(9,0);
  delay(10);
  digitalWrite(10,1);
  delay(10);
  digitalWrite(9,1);
Стоит попробовать уменьшить задержки, до минимального стабильно рабочего значения
А кнопки Вы знаете как подключаьт
 

toric21

✩✩✩✩✩✩✩
7 Фев 2023
15
0
@Старик Похабыч,
если честно то я уже запутался в этих прогах. Вас не затруднит все что Вы предлагали соединить в одно целое .
 

Старик Похабыч

★★★★★★★
14 Авг 2019
4,201
1,287
Москва
Я то заменю, мне не сложно, но хотелось бы что бы Вы понимали что как делается
C++:
// эта часть отвечает за кнопки
#define BTN_L_PIN 3
#define BTN_R_PIN 9
#include "GyverButton.h"
GButton Btn_L(BTN_L_PIN, HIGH_PULL);
GButton Btn_R(BTN_R_PIN , HIGH_PULL);


void setup() { 
  pinMode(9, OUTPUT);
  pinMode(10, OUTPUT);

  Btn_L.setStepTimeout(100);
  Btn_R.setStepTimeout(100);
}

void loop() {
  Btn_R.tick();
  Btn_L.tick();
  if (Btn_R.isClick() || Btn_R.isStep())
  {      
  digitalWrite(10,0);
  delay(10);
  digitalWrite(9,0);
  delay(10);
  digitalWrite(10,1);
  delay(10);
  digitalWrite(9,1);
  };
  if (Btn_L.isClick() || Btn_L.isStep())
  {  
  digitalWrite(9,0);
  delay(10);
  digitalWrite(10,0);
  delay(10);
  digitalWrite(9,1);
  delay(10);
  digitalWrite(10,1);   
  };    
}
 
  • Лойс +1
Реакции: toric21

toric21

✩✩✩✩✩✩✩
7 Фев 2023
15
0
@Старик Похабыч,
я всегда за что то новое. но уж больно для меня сейчас это очень тяжело. 7 дней только как знаком с ардуино.
и извините . я правильно понял что pin 3 и 9 это кнопки. если так то они же 9 и 10 выход.

@Старик Похабыч,
Огромное спасибо!!!!!!!!!!!! всё работает!!!.