Ви не увійшли.
Ніт, не пройшла фотка
Дивіться. Якщо потрібно просто рахувати оберти - просто рахуйте переходи з 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 --
Я попередив, за кожний оберт спрацюють обидва датчики по черзі, і лічильник не поміняє значення.
О. нарешті придумав, як зробити щоб воно у вас працювало
Потрібно 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 симертичні отвори, щоб баланс не ламався, а датчики розмістити трохи асиметрично, кожний поряд із своїм отвором, щоб послідовність спрацьовування була як на картинці. Але це знов буде зовсім неочевидно