У цій невеликій статті майстер-саморобник розповість нам, як можна використовувати ардуіно в якості осцилографа. Зрозуміло, що всі функції осцилографа ардуіно не замінить, але йому потрібно було протестувати 555 мікросхему. Як бонус, ця установка може показати, як резистори та конденсатори працюють при послідовному або паралельному підключенні.

Інструменти та матеріали:-arduino uno;-555 мікросхема;-перемички;-резистори (підійдуть будь-які номінали від 1 ком до 1 мом);-електролітичний конденсатор;-макетна плата; – proto shield для arduino (необов’язково);

Крок перший: про конденсаторахв проекті використовуються електролітичні конденсатори. Електролітичні конденсатори мають полярність, тому важливо, який електрод підключений до позитивної напруги, а який – до землі. На цих конденсаторах довший електрод є ” анодом» і повинен бути підключений до позитивної напруги. Коротший електрод є “катодом” і повинен бути підключений до нульової напруги (землі). Алюмінієвий корпус конденсатора має маркування у вигляді великої смуги на катодній стороні. І на цій смузі зазвичай є великі мінусові знаки. На зображенні представлені три конденсатора, один з великою білою смугою. Якщо ми підключимо конденсатор в зворотному напрямку або підключимо більшу напругу, ніж номінальне для цього конденсатора, то є велика ймовірність, що він «вибухне».

Крок другий: підключеннядля цього проекту майстер зробив всі з’єднання за допомогою плати розширення і макетної плати. На першому зображенні ми бачимо таймер 555 з назвами контактів і їх нумерацією. Тут важливо відзначити, що на мікросхемі є кругла виїмка між контактами 1 і 8. На наступних малюнках показаний креслення проводки, а потім, одне за іншим, зроблені з’єднання:зображення 1: терморегулятори таймера 555ізображеніе 2: підключення до 555 зображення 3: підключення заземлення (gnd) і 5 вольт arduino до контактів 1, 4 і 8 555ізображеніе 4: додавання резисторів a і візображеніе 5: додавання конденсатора і його 3 з’єднань: анод до контактів 2 і 6, катод до gndізображеніе 6: підключення вихідного контакту 3 до цифрового контакту 2 (d2) arduino

Більш детально підключення можна подивитися на відео.

Крок третій: принцип роботиколи arduino включений, струм проходить від його контакту 5в через обидва резистора для зарядки конденсатора. Це вимагає часу в залежності від номіналу резисторів і конденсатора. Коли заряд конденсатора досягне 2/3 від джерела 5 в, вихідний контакт таймера 555 стане низьким, тобто він буде знаходитися на рівні 0 вольт. І в цей момент конденсатор почне пропускати струм через резистор b. Знову ж таки, це вимагає часу, залежного від конденсатора і резистора b. Коли напруга знизиться до 1/3 від 5 в, вихідний контакт переключиться на 5в (високий), і цикл почнеться знову з зарядки конденсатора. Результатом повинен бути регулярний повторюваний сигнал високого-низького рівня від цього чіпа, який може бути використаний в електроніці, коли необхідний сигнал синхронізації.

Крок четвертий: відображення значень на arduinoщоб мати можливість бачити роботу різних комбінацій резисторів і конденсаторів, майстер використовував arduino для відображення часу на своєму комп’ютері. Ця функція в програмному забезпеченні arduino ide називається послідовним монітором (див.малюнок з усіма номерами) і являє собою спосіб зв’язку між arduino і комп’ютером під час роботи arduino.

Перші дві змінні коду є логічними змінними, що означає, що вони можуть бути рівні тільки нулю або одиниці, які в даній ситуації є синонімами низької або високої напруги, або синонімом 0в або 5в. Майстер назвав ці дві змінні “state” і “laststate” (“стан” і “останній стан”) і використовує їх для відстеження змін вихідного контакту. Аналогічно, для відстеження часу використовуються дві змінні, звані “currenttime” і”lasttime” (“поточний час”і” останній час”). І, нарешті, ще одна змінна використовується для збереження тривалості часу. Ця змінна називається “timedifference” (“різниця в часі”), так як вона буде різницею між поточним і минулим часом. Це змінна типу “float” (“з плаваючою комою”), що означає, що вона може відстежувати десяткові дроби.

По суті, код працює так: якщо вихідний контакт таймера 555 змінюється з низького на високий або з високого на низький, активується функція, звана “відмітка часу”. Це тип функції, який називається “підпрограмою обслуговування переривань”, тому що, незалежно від того, де arduino знаходиться в його коді, функція тимчасової мітки буде запущена, а потім arduino повернеться до вихідної точки. Під час тимчасової мітки arduino оновить змінну “стан” відповідно до того, чи є вихідний висновок високим або низьким, і оновить змінну “поточний час” за допомогою функції, званої “micros”. Це вбудована функція програмного забезпечення arduino, яка “повертає” кількість мікросекунд з моменту останнього включення або скидання arduino. Тепер, коли” стан “і” поточний час ” оновлені, arduino вирахує різницю в часі і виведе її на послідовний монітор комп’ютера. Потім він оновлює значення “laststate” і “lasttime” відповідно до “станом” і “поточним часом” відповідно, щоб вони були готові до наступної зміни вихідного pin-коду.

Код можна завантажити нижче.

Крок п’ятий: прогнозування формули, які можна виконати, щоб передбачити, скільки секунд буде відлік часу. Вони корисні, якщо задано конкретний час і потрібно з чого почати підбір номіналу. Формула призначена для розрахунку високого періоду, кількість часу, протягом якого вихідний контакт знаходиться у високому положенні (5в). Високий період = 0,7 *(резистор а + резистор в) * конденсатордругая формула призначена для розрахунку низького періоду, коли вихід низький (0в).низький період: = 0,7 * (резистор b) * (конденсатор) для того, щоб ці рівняння працювали, одиниці виміру повинні бути в омах для опору і в фарадах для конденсатора. Так, наприклад, 10 ком і 10 мкф становитимуть 10 000 ом і 0,00001 ф.отже, приклад з двома резисторами на 10 ком і конденсатором ємністю 10 мкф, високий період повинен становити 0,14 секунди, а низький-0,07 секунди.

Крок шостий: експериментитепер, коли все налаштовано, можна поекспериментувати з різними резисторами і конденсаторами, щоб перевірити, чи відповідає виміряний час розрахунками.

Що цікаво в цій схемі, можна побачити ефект від установки декількох резисторів або конденсаторів або для резистора a або b, або для конденсатора. Можна з’єднати компоненти послідовно або паралельно і подивитися, як конденсатори «поводяться» щодо резисторів. Більш детально у відео.

Крок сьомий: візуалізація рівня напруги за допомогою arduinoпоскольку використовується інтегроване середовище розробки arduino, також можна скористатися її послідовним плоттером. Це основна функція побудови графіків програмного забезпечення, яка може показати, як напруга змінюється з плином часу. Використовуючи наведений нижче невеликий код, можна побудувати графік напруги на вихідному контакті, підключивши його до висновку a0 arduino, і подивитися, як поетапно змінюється вихід.

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

Для перевірки підключаємо анод конденсатора (який підключений до контакту 6 з 555) до контакту arduino a0 і відображається класичний малюнок “зуб пили”, характерний для конденсаторів. Потім, щоб відкрити “послідовний плоттер”, переходимо в розділ “інструменти” і натискаємо “послідовний плоттер”. Відкриється вікно, і ми повинні побачити зміну напруги на графіку.

На цьому все. Як бачимо за допомогою даної схеми можна підібрати необхідний номінал резисторів і конденсаторів до таймера 555.джерело (source)