Автомобільний тахометр на мікроконтролері. Тахометр автомобільної схеми. Отримання даних від сенсора

0

Ibrahim Kamal (IKALOGIC) Безконтактний тахометр, що розглядається, - це компактний пристрійна мікроконтролері ATMega48 виробництва компанії Atmel, що дозволяє вимірювати високі швидкостіобертання безконтактним способом. Для вимірювання використовується ІЧ сенсор (оптопара, ІЧ світлодіод та ІЧ фотодіод в одному корпусі). Виведення даних здійснюється на дворядковий символьний РК-дисплей на базі контролера HD44780.

Принцип роботи ІЧ сенсор (оптопара), що представляє собою мініатюрний компонент з ІЧ світлодіодом і фотодіодом в одному корпусі, посилає ІЧ випромінювання на механізм, що обертається (вал, ротор двигуна), на якому повинна бути невелика відбиваюча наклейка.

Завдяки цій наклейці, кожен оберт валу викликає появу відбитого імпульсу ІЧ випромінювання. Використовуваний сенсор виробництва Vishay Semiconductor має маркування TCND-5000.

Даний сенсор був обраний після тестування еквівалентних продуктів, так як його корпус забезпечував оптичну ізоляцію передавальної та приймальної частини, а ІЧ світлодіод витримує великі струми, що дозволяє проводити вимірювання на великих відстанях. Таким чином, використовуючи оптопар ми можемо підрахувати час повного обороту валу, а далі, знаючи час (позначимо цей час T в секундах), ми можемо обчислити кількість оборотів в хвилину, використовуючи простий вираз 60/T. Отримання даних від сенсора Для зниження вартості пристрою та складності складання, а також для підвищення гнучкості системи, ми безпосередньо підключимо ІЧ сенсор до мікроконтролера та програмно реалізуємо всю обробку сигналу, що отримується. Відразу варто зауважити, що це не так просто, тому що одержуваний з ІЧ фотодіода сигнал містить шуми, а зовнішнє освітлення постійно впливає на нього. Таким чином, проблема полягає в тому, щоб розробити пристрій з автоматичною адаптацією до зовнішнього освітлення та відстані до об'єкта вимірювання. На малюнку нижче зображено діаграму аналогового сигналувід ІЧ сенсора (фотодіода)

Так як сигнал має шуми, при кожному визначенні наявності та відсутності імпульсу (наявність імпульсу говорить про те, що вал обертається і сенсор «бачить» наклейку, що відображає), велика кількістьколивань «вводить в оману» мікроконтролер. Крім того, ці фактори не дозволяють використовувати вбудований в мікроконтролер аналоговий компаратор і нам необхідно ввести обробку аналогового сигналу перед кожною процедурою підрахунку циклів. Рішення було знайдено в оцінці середньої інтенсивності, засновану на максимальному та мінімальному значенніінтенсивності сигналу від сенсора, і включенням гістерези в районі середньої інтенсивності. Гістерезис використовується для запобігання багаторазовому рахунку циклів зашумлених імпульсів. Малюнок нижче пояснює роботу такого алгоритму.

Коли сигнал наростає від низького стану(відсутня відображення від наклейки на валу) до високого (відображення ІЧ імпульсу), алгоритм візьме до уваги цей імпульс високого рівнялише після того, як він перетне «зростаючий рівень» гістерези, і візьме до уваги низький рівеньлише після того, як сигнал перетне «знижуючий рівень» гістерези. Такий алгоритм дозволяє уникнути помилок обчислень, що викликаються гучним сигналом. Принципова схема пристрою

Натисніть для збільшення Схемотехнічне рішення дуже просте та компактне (завдяки використанню мініатюрного сенсора), не містить дорогих компонентів. Живлення пристрою здійснюється від трьох батарейок типу AAA. Як ви, мабуть, помітили, відсутній потенціометр регулювання контрастності дисплея (що також дозволяє зменшити розмір пристрою). Це можливо завдяки програмної реалізаціїалгоритму автоматичного підстроювання контрастності в залежності від рівня напруги живлення із застосуванням ШІМ та фільтра низьких частотна елементах R3, R4 та C2. Користувачі можуть ознайомитися з текстом алгоритму в вихідний кодПЗ мікроконтролера в другій частині статті. Роз'єм JP1 призначений для внутрішньосхемного програмування мікроконтролера. Роз'єм JP2 призначений для підключення додаткового користувача датчика. Список застосованих компонентів Позначення у схемі Найменування, номінал IC1 Мікроконтролер ATmega48 Q1, Q2 Транзистор BCW66G C1, C2 10 нФ C4, C5 33 пФ X1 Кварцовий резонатор 20 МГц R1, R2, R2, R7 4м0 R5 4м0 R5 110 Ом R8 70 Ом LED3 Світлодіод IR1 Оптопара TCND-5000 B1 Кнопка B2 Вимикач живлення JP1 Роз'єм внутрішньосхемного програмування JP2 Роз'єм розширення Демонстрація роботи безконтактного тахометрана мікроконтролері AVR У другій частині статті розглянемо конструкцію приладу та основні моменти в програмне забезпеченнямікроконтролера, включаючи аналого-цифрове перетвореннята організацію обміну даними з РК дисплеєм. англійською: Contactless Tachometer on AVR. Part 1. SchematicПереклад: Vadim на замовлення РадіоЛоцман

За матеріалами сайту

Що таке взагалі тахометр? Тахометр - це пристрій, що використовується для вимірювання об/хв (обороти в хвилину) будь-якого тіла, що обертається. Тахометри роблять на основі контактних чи безконтактних. Безконтактні оптичні тахометри зазвичай використовують лазерний чи інфрачервоний промінь контролю обертання будь-якого тіла. Це робиться шляхом обчислення часу, витраченого однією обертання. У цьому матеріалі, взятому на одному англійському сайті, ми покажемо вам, як зробити портативний цифровий оптичний тахометр за допомогою Arduino Uno . Розглянемо розширену версію приладу з РК-дисплеєм та модифікованим кодом.

Схема тахометра на мікроконтролері

Список деталей для схеми

  • Мікросхема - Arduino
  • Резистори - 33k, 270 Ом, 10k потенціометр
  • LED елемент – синій
  • ІЧ-світлодіод та фотодіод
  • 16 x 2 LCD екран
  • 74HC595 регістр зсуву

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

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

  • 1. Для початку потрібно зашкурити світлодіод та фотодіод, щоб зробити їх плоскими.
  • 2. Потім складіть смужку паперу, як показано на малюнку. Зробіть дві такі структури так, щоб світлодіод та фотодіод щільно сісти до нього. З'єднайте їх разом клеєм та пофарбуйте в чорний колір.
  • 3. Вставити світлодіод та фотодіод.
  • 4. Склеїти їх за допомогою суперклею та припаяти дроти.

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

Схема тахометра використовує 8-розрядний регістр зсуву 74HC595 з LCD дисплеєм 16х2. Зробіть невеликий отвір у корпусі, щоб зафіксувати LED індикатор.

Припаяйте 270-омний резистор на світлодіод і вставте в контакт 12 Arduino. Датчик введений у кубічну трубку, щоб дати додаткову механічну міцність.

Все, пристрій готовий для калібрування та програмування. Завантажити програму ви можете за цим посиланням.

Відео роботи саморобного тахометра

Даний пристрій являє собою непоганий тахометр. Межа вимірювань 100 - 9990 об/хв. Точність виміру - ± 3 об/хв. Але для кращого сприйняття дані округляються. Цей прилад стоїть у мене на авто - Таврія. Також встановлювалася на Chevrolet Cavalier, ВАЗ-2109, мотоцикл ЯВА-350 12-вольтовий, скутер Honda Lead 90.

Є два вхідні ланцюги:

  • висновок 6 (PD2) - вхід переривання INT0. Цей вхід використовується для вимірювання кількості обертів двигуна.
  • висновок 11 (PD6). Цей вхід використовується для зменшення яскравості індикаторів під час увімкнення габаритів на авто.

У схемі застосований кварцовий резонатор на частоту 8MHz для більшої точності та стабільності вимірів.

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

Зменшення яскравості індикатора при включенні габаритів необхідно для того, щоб яскраве світло від індикатора не відволікало водія в темний час доби.

Друкована плата:

У зібраному вигляді це виглядає так:

Рекомендую використовувати червоний індикатор, т.к. його значно краще видно на сонці. Показання стають нечитаними лише за прямому попаданні яскравого сонця. Цей ефект можна зменшити або навіть зовсім його позбутися якщо поставити індикатор за червоний світлофільтр, але у мене такого на жаль не знайшлося ...

FUSES виставлені у проекті, але якщо хтось шиє не з CodeVisionAVR, то повторю їх тут:

У проекті у 17-му рядку є таке визначення:

#define byBladeCnt 2 //1- дві котушки, 2 - одна котушка, 4 - мотоцикл ...

Для радянських автомобілів та авто з розподільною системою запалювання цей параметр буде 2. Для систем запалення з двома котушками (як у ВАЗ-2110) - 1. На мотоциклі та мопеді (2-х тактна система запалювання) цей параметр дорівнює 4.

Це був не мій задум. Просто друг попросив придумати такий пристрій, щоб без дротів можна було б вважати оберти валу двигуна для підлаштування дизельної апаратури. І щоб можна було будь-де ним скористатися.

Посидівши і поміркувавши, вигадав таке:

Принцип роботи простий: включаємо ІЧ-світлодіод, а на фотодіод приймаємо відображення. Вважаємо час між прийомами сигналу, переводимо в оберти за хвилину і виводимо на екран. Живлення, отже, батарейне.

Загалом, не буду тягнути кота за..... :)

Був у мене мікроконтролер на той момент такий – PIC16F88. Ось що вийшло.

Схема пристрою:

Я не став морочитися з датчиком ІЧ сигналу. Хоча за бажання можна було (і це для допитливих може послужити стимулом для удосконалення J) встромити замість фотодіода датчик TSOP1736 (який, власне, був у мене на той момент). Подавати на нього 36 кГц можна, в принципі, із генератора, зібраного на 555 таймері. Запускати генератор можна якраз сигналом, що включає ІЧ світлодіод. Ось так... Причому, експерименти такі я проводив. При подачі світла з частотою 36 кГц на TSOP його вихід давав 5 вольт. При закритті променя світла вихід TSOP скидався в нуль. Але, оскільки стояло завдання зібрати автономний пристрійз мінімальним споживанням, витрачати енергію на датчик і генератор я вважав марнотратним. До того ж, відстань до об'єкта, що вимірюється, була не особливо критично. Влаштовувала відстань навіть сантиметр. Загалом вийшло так.

Живлення РКІ - прямо з порту PIC, так само, як і живлення LM358 для зменшення енергоспоживання в режимі sleep.

Живої плати першого дослідного зразка, на жаль, не залишилося:(. Це була плата без посилення сигналу з фотоприймача. Сигнал надходив відразу до МК.

Виглядала плата так:

Так як рівня сигналу з фотоприймача не завжди вистачало мікроконтролерів, то довелося доповнювати схему. Я зібрав підсилювач на LM358. Наразі схема виглядає саме так, як виглядає.

Підібравши корпус і адаптувавши під нього плату, було зібрано такий симпатичний пристрій:


Принцип роботи такий:

На об'єкт, що досліджується, наноситься мітка звичайним канцелярським коректором. Близько 5-7 мм у діаметрі. Або приклеюється мітка з білого паперу.

При включенні живлення вперше, PIC починає вважати тривалість періоду між імпульсами, які, відбиваючись від мітки, приходять на фотоприймач . Якщо імпульсів немає протягом 4 секунд, показання скидаються на нуль. Якщо імпульси відсутні приблизно 20 секунд, пристрій переходить у режим зниженого споживання. Вимикається індикатор. Для наступного виміру потрібно натиснути кнопку, підключену до порту RB0. та прилад "прокидається". Цикл починається спочатку.

Точність показань – відмінна, але не на всьому діапазоні. На високих оборотах показання "плавають", але трохи, не критично.

Єдиний мінус цього приладу – невелика дальність. Біля сантиметра. Але це можна вирішити, як я писав вище, за допомогою фотоприймача типу TSOP1736 або TSOP1738 і генератора на 555 таймері. Необхідність у LM358 у цьому випадку відпадає.

Ще одне уточнення – матеріал досліджуваного об'єкта має бути темним.

Архів із файлом протеуса та вихідник лежить.

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

Добридень.
Виношу на Ваш розгляд схему простенького цифрового тахометра AVR ATtiny2313, КР514ІД2, та оптопаре спроектованого мною.
Відразу зазначу: аналогічних схем в інтернеті багато. У кожної реалізації свої плюси та мінуси. Можливо, комусь мій варіант підійде більше.

Почну, мабуть, з тех. завдання.
Завдання: потрібно зробити цифровий тахометр для контролю обертів електричного двигунаверстата.
Вступні умови: Є готовий реперний диск на 20 отворів. лазерного принтера. В наявності багато оптопарів від зламаних принтерів. Середні (робочі) обороти 4000-5000 оборотів/хвилину. Похибка результатів, що відображаються, не повинна перевищувати ± 100 оборотів.

Обмеження: живлення для блоку керування становить 36В (тахометр буде встановлений в один корпус з блоком керування – про це нижче).

Маленький ліричний відступ.Це верстат мого друга. На верстаті встановлено електромотор PIK-8, обороти якого контролюються згідно знайденою в інтернеті та модифікованою схемою. На прохання друга був розроблений простенький тахометр для верстата.

Спочатку в схемі планувалося застосувати ATMega16, але розглянувши умови, було вирішено обмежитися ATtiny2313, що працює від внутрішнього (RC) генератора на частоті 4 МГц.

Загальна схемавиглядає наступним чином:

Очевидно, нічого складного. Для перетворення двійкового кодув семисегментний, я застосував дешифратор КР514ІД2, це дає відразу три плюси.

  • По-перше – економія місця в пам'яті ATtiny2313 за рахунок зменшення робочого коду (оскільки процедура програмного перетворення двійкового коду в семисегментний відсутня в прошивці за непотрібністю).
  • По-друге: зменшення навантаження на виходи ATtiny2313, т.к. світлодіоди «засвічує» КР514ІД2 (при висвічуванні цифри 8 максимальне споживання складе 20-30 мА (типове для одного світлодіода) * 7 = 140-210 мА що «багато» для ATtini2313 з її повним паспортним максимальним (навантаженим0)
  • По-третє – зменшено кількість «зайнятих» ніг мікроконтролера, що дає нам можливість у майбутньому (за потреби) модернізувати схему шляхом додавання нових можливостей.

Складання пристроюздійснено на макетної плати. Для цього була розібрана плата, що завалялася в засіках, від неробочої мікрохвильової печі. Цифровий світлодіодний індикатор, ключові транзистори (VT1-VT4) та обмежувальні резистори (R1 – R12) були взяті комплектом та перенесені на нову плату. Весь пристрій збирається, за наявності необхідних компонентів, з перекурами за півгодини. Звертаю увагу:у мікросхеми КР514ІД2 плюсова ніжка живлення – 14, а мінус – 6 (відзначені на схемі). Замість КР514ІД2 можна застосувати будь-який інший дешифратор двійкового коду семисегментний з живленням від 5В. Я взяв те, що було під рукою.
Висновки "h" та "i" цифрового світлодіодного індикатора відповідають за дві точки по центру між цифрами, не підключені через непотрібність.
Після складання та прошивки, за умови відсутності помилок монтажу, пристрій починає працювати одразу після ввімкнення та настроювання не потребує.

При необхідності внесення змін до прошивки тахометра на платі передбачено роз'єм ISP.

На схемі підтягуючий резистор R12, номіналом 30 ком, підібраний дослідним шляхом для конкретної оптопари. Як показує практика – для різних оптопар він може відрізнятися, але середнє значення 30 ком має забезпечити стійку роботу для більшості принтерних оптопар. Згідно з документацією до ATtiny2313, величина внутрішнього підтягуючого резистора становить від 20 до 50 кОм залежно від реалізації конкретної партії мікроконтролерів (стор. 177 паспорта до ATtiny2313), що не зовсім підходить. Якщо хтось захоче повторити схему, може спочатку включати внутрішній підтягуючий резистор, можливо у Вас, для Вашої оптопари і вашого МК працюватиме. У мене для мого набору не запрацювало.

Так виглядає типова оптопара від принтера.

Світлодіод оптопари живиться через резистор, що обмежує, на 1К, який я розмістив безпосередньо на платі з оптопарою.
Для фільтрації пульсацій напруги на схемі два конденсатори, електролітичний на 220 мкФ х 25В (що було під рукою) та керамічний на 0,1 мкФ, ( загальна схемавключення мікроконтролера взято з паспорта ATtiny2313).

Для захисту від пилу та бруду плата тахометра покрита товстим шаром автомобільного лаку.

Заміна компонентів.
Можна застосувати будь-який світлодіодний індикатор на чотири цифри, або дві здвоєні, або чотири поодинокі. Зрештою, зібрати індикатор на окремих світлодіодах.

Замість КР514ІД2 можна застосувати КР514ІД1 (яка містить усередині струмообмежуючі резистори), або 564ІД5, К155ПП5, К155ІД9 (при паралельному з'єднанніміж собою ніжок одного сегмента), або будь-який інший перетворювач двійкового семисегментний (при відповідних змінах підключення висновків мікросхем).

За умови правильного перенесеннямонтажу на МК ATMega8/ATMega16 дана прошивкабуде працювати, як і на ATtiny2313, але потрібно підправити код (змінити назви констант) і перекомпілювати. Для інших МК AVR порівняння не проводилося.

Транзистори VT1-VT4 – будь-які слаботочні, що працюють у режимі ключа.

Принцип роботизаснований на підрахунку кількості імпульсів отриманих від оптопари за одну секунду та перерахунок їх для відображення кількості обертів за хвилину. Для цього використаний внутрішній лічильник Timer/Counter1, що працює в режимі підрахунку імпульсів, що надходять на вхід Т1 (висновок PD5 ніжка 9 МК). Для забезпечення стабільності роботи, увімкнено режим програмного придушення брязкоту. Відлік секунд виконує Timer/Counter0 плюс одна змінна.

Розрахунок оборотів, на чому хотілося б зупинитися, відбувається за такою формулою:
M = (N / 20) * 60,
де M – розрахункові обороти за хвилину (60 секунд), N – кількість імпульсів від оптопари за одну секунду, 20 – кількість отворів у реперному диску.
Разом, спростивши формулу, отримуємо:
M = N * 3.
Але! У мікроконтролері ATtiny2313 відсутня функція апаратного множення. Тому було застосовано підсумовування зі зміщенням.
Для тих, хто не знає суть методу:
Число 3 можна розкласти як
3 = 2+1 = 2 1 + 2 0 .
Якщо ми візьмемо наше число N посунемо його вліво на 1 байт і приплюсуємо ще одне N зсунуте вліво на 0 байт – отримаємо наше число N помножене на 3.
У прошивці код AVR ASM для двобайтної операції множення виглядає наступним чином:

Mul2bytes3:
CLR LoCalcByte //очищаємо робочі регістри
CLR HiCalcByte
mov LoCalcByte,LoInByte //вантажимо значення отримані з Timer/Counter1
mov HiCalcByte,HiInByte
CLC // Чистимо побут переносу
ROL LoCalcByte // зрушуємо через біт перенесення
ROL HiCalcByte
CLC
ADD LoCalcByte,LoInByte //сумуємо з урахуванням біта перенесення
ADC HiCalcByte,HiInByte
ret

Перевірка працездатності та замір точностіпроводився так. До вентилятора комп'ютерного кулера був приклеєний картонний диск із двадцятьма отворами. Оберти кулера моніторилися через BIOS материнської платита порівнювалися з показниками тахометра. Відхилення становило близько 20 оборотів на частоті 3200 оборотів/хвилину, що становить 0,6%.

Цілком можливо, що реальна розбіжність не перевищує 20 оборотів, т.к. вимірювання материнської плати округляються не більше 5 оборотів (за особистими спостереженнями однієї конкретної платы).
Верхня межа вимірювання 9999 оборотів в хвилину. Нижня межа виміру, теоретично від ±10 оборотів, але практично не замірявся (один імпульс від оптопари на секунду дає 3 обороти на хвилину, що, враховуючи похибку, теоретично має правильно вимірювати швидкість від 4 оборотів на хвилину і від, але у практиці даний показник необхідно завищити щонайменше вдвічі).

Окремо зупинюся на питанні харчування.
Вся схема живиться джерела 5В, розрахункове споживання всього пристрою вбирається у 300 мА. Але, за умовами ТЗ, тахометр конструктивно повинен перебувати всередині блоку керування оборотами двигуна, а до блоку від ЛАТРу надходить постійна напруга 36В., щоб не тягнути окремий провід живлення, всередині блоку встановлена ​​LM317 в паспортному включенні, в режимі зниження живлення до 5В (з резистором, що обмежує, і стабілітроном для захисту від випадкового перенапруги). Логічніше було б використовувати ШІМ-контролер у режимі step-down конвертера, на кшталт МС34063, але у нас у місті купити такі речі проблематично, тому застосовували те, що змогли знайти.

Фотографіїплати тахометра та готового пристрою.


Ще фотографії







На жаль, зараз немає можливості сфотографувати на верстаті.

Після компонування плат і першого пробного складання коробка з пристроєм вирушила на фарбування.

Якщо у Вас тахометр не заробиввідразу після включення, при заздалегідь правильному монтажі:

1) Перевірити роботу мікроконтролера, переконається, що він працює від внутрішнього генератора. Якщо схема зібрана правильно – на циферблаті має відображатись чотири нулі.

2) Перевірити рівень імпульсів від оптопари, за необхідності підібрати номінал резистора R12 або замінити схему підключення оптопари. Можливий варіант зворотного підключенняоптотранзистора з підтяжкою до мінуса, з увімкненим чи ні внутрішнім підтягуючим резистором МК. Також можна застосувати транзистор у ключовому режимі роботи, що інвертує.
оптопара

  • AVR
  • Додати теги