Ви не увійшли.

Ніт, не пройшла фотка
Дивіться. Якщо потрібно просто рахувати оберти - просто рахуйте переходи з 0 в 1. Якщо треба враховувати напрямок - потрібно спочатку правильно скомпонувати 2 датчика.

jokeer пише:Ще б зрозуміти що там за датчик.. або хтось взяв і намалював графік сигналів що приходять..
Пробував надіслати фото, не минає
WhatsApp, Telegramm?

Ніт, не пройшла фотка
Дивіться. Якщо потрібно просто рахувати оберти - просто рахуйте переходи з 0 в 1. Якщо треба враховувати напрямок - потрібно спочатку правильно скомпонувати 2 датчика.
Треба хоча б на дисплеї рахунок отримати 0001 0002 хай через кнопку

Максимальна частота обертання 1000 оборотів за хвилину
Тобто при рівномірному квадратурному сигналі 15 мілісекунд між фронтами. Навіть при куті між датчиками в 15° мінімальний інтервал між фронтами буде порядка 500 мкс. Це ж як треба програму написати, щоб була проблема?
Неактивний

jokeer пише:Ніт, не пройшла фотка
Дивіться. Якщо потрібно просто рахувати оберти - просто рахуйте переходи з 0 в 1. Якщо треба враховувати напрямок - потрібно спочатку правильно скомпонувати 2 датчика.Треба хоча б на дисплеї рахунок отримати 0001 0002 хай через кнопку
Як, щоб лилося? Дістаньте пістолет і засуньте його в бензобак...

АлександрК пише:Максимальна частота обертання 1000 оборотів за хвилину
Тобто при рівномірному квадратурному сигналі 15 мілісекунд між фронтами. Навіть при куті між датчиками в 15° мінімальний інтервал між фронтами буде порядка 500 мкс. Це ж як треба програму написати, щоб була проблема?
Пишу програму вдруге. Перший раз було легше, майже все взяв із інтернету. Програма була з інфрачервоним пультом

Вашу картинку видно десь так
https://forum.arduino.ua/img/members/3983/2025-04-17_23-02.png
Спробуйте інакше.
Коли пишете як зареєстрований юзер - видно кнопку Завантаження.https://forum.arduino.ua/img/members/3983/2025-04-17_23-05.png
У мене тільки смайлики.Завантаження немає

Тому що цей пост написано як гість. Потрібно з логіном і паролем

Пробую фото
Неактивний

Неактивний

Ок. Маховик з отворотом і 1 датчик, правильно? Це не про великі оберти, і не про вгадування напрямку. Правильно?

так
Неактивний

int x0, x1;
void main()
{
x1 = digital read();
if (x1 != x0)
{ 
 counter++;
};
x0=x1;
}
Десь так.

Ок. Маховик з отворотом і 1 датчик, правильно? Це не про великі оберти, і не про вгадування напрямку. Правильно?
2 датчики, кожен працює лише в один бік.
Неактивний

За рахунок чого вони працюють в різні боки, я не розумію. Дірка анізотропна в усі боки 

Візьміть олівець і намалюйте, які сигнали прийдуть з обох датчиків при обертанні в одну і іншу сторону.

За рахунок чого вони працюють в різні боки, я не розумію. Дірка анізотропна в усі боки
Я зібрав схему. Сигнал від датчика надходить на ардуїно тільки при певному обертанні. Мотор постійного струму. При позитивному обертанні працює один датчик, при іншому негативному.
Неактивний

Ну, я вам не вірю  але якщо ваші датчики дійсно так працюють, як ви стверджуєте, беріть той кусок коду що я нашкрябав. Для другого датчика так само, але counter --
 але якщо ваші датчики дійсно так працюють, як ви стверджуєте, беріть той кусок коду що я нашкрябав. Для другого датчика так само, але counter --
Я попередив, за кожний оберт спрацюють обидва датчики по черзі, і лічильник не поміняє значення.

О. нарешті придумав, як зробити щоб воно у вас працювало 
Потрібно 3 датчика і 1 отвір 
Якщо датчики спрацьовують 123 - обертається в одну сторону. 321 - в іншу. Рахувати не оберти, а 1/3 оберта, при відображенні - ділити на 3.
Той мій код годиться; повторити 3 рази.

Які ще три датчика? Ви якісь велосипеди вигадуєте. Отвір має бути такої довжини, щоби було положення, при якому активні обидва датчика. 
Назвемо їх A і B.
При обертанні в один бік спочатку активується A, потім активується B, потім A дективується, потім B деактивується. 
При обертанні в інший бік все у зворотньому порядку: спочатку активується B, потім активується A, потім B деактивується, потім A деактивується.
Форма сигналів буде наступна:
      ┌───┐
A ────┘   └─────
       ┌───┐
B ─────┘   └─────
       ┌───┐
A ─────┘   └─────
      ┌───┐
B ────┘   └──────Працювати як зі звичайним обертовим енкодером. При правильній реалізації не потрібно ніякого debounce, і не важливо, чи у датчиків активний високий, чи низький.
Для механічного балансу можете симетрично прорізати другий отвір, тоді буде рахувати напів-оберти.
Неактивний

Велосипеди наше всьо  Раз автор не загуглив, значить йому насправді хотілось чогось креативного
 Раз автор не загуглив, значить йому насправді хотілось чогось креативного 
Енкодер річ прикольна, і правильна, я повністю згоден. але потрібно або 3д принтер, або досить прямі руки. Для 3 датчиків годяться руки будь-якої форми  .
.

Просто якщо досить великий отвір різати руками, то хз як воно поведе себе на великих обертах. Правда, які оберти будуть великими теж хз.

Енкодер річ прикольна, і правильна, я повністю згоден. але потрібно або 3д принтер, або досить прямі руки.
Та працюватиме і з такою конструкцією як у автора, тільки отвір має бути достатньої довжини, щоб обидва датчики могли бути активними одночасно.
Для 3 датчиків годяться руки будь-якої форми
.
Судячи по фото, там і два ледве влізе, куди там третій. Там подвійний, як в кульковій миші, добре би вписався.
Неактивний

Треба випаяти датчики з модулів, запаяти в свою плату, і все влізе 
Або прорізати 2 симертичні отвори, щоб баланс не ламався, а датчики розмістити трохи асиметрично, кожний поряд із своїм отвором, щоб послідовність спрацьовування була як на картинці. Але це знов буде зовсім неочевидно 