Оптопара, світлодіод і фототранзистор, лежать в основі датчика Ось схема, що показує, як залежить напруга на фототранзисторі від освітленості

Рис 413 Експеримент з оптопарою

Змінюючи положення повзунка потенціометра, ми змінюємо струм через світлодіод, тобто, освітленість фототранзистора оптопари При цьому АЦП по входу RA3 зчитує напруга на колекторі транзистора і відображає дані на РКІ Програма відображення напруги на РКІ використана від проекту глави 39

Завантажимо в цю програму hex-файл останньої програми

Рис 414 Повна версія останньої програми

І, дивно, на екрані зявиться нуль, АЦП не реагує на зміну струму через світлодіод потенціометром RV2 Спроба повернути настройку АЦП до тієї, що вказана в керівництві, успіху не приносить Але, якщо взяти рядок з програми глави 39 (ADCON0 = 0b11001101 ), то:

Рис 415 Робота програми руху робота з виявленням перешкод Мало того, програма реагує на зміну освітленості (за допомогою RV2):

Рис 416 Зміна роботи мотора при зміні освітленості

Мотори, нагадаю, підключені до висновків RD0-RD1 і RB1-RB2 (через мікросхему L293D, звичайно)

Так що ж означають ці налаштування АЦП

ADCON0 = 0b11001001 / / Працююча настройка ADCON0 = 0b11011101 / / Налагодження з керівництва ADCON0 = 0b11001101 / / Налагодження, при якій працює ISIS

У регістрах ADCON0 і ADCON1 задаються: у першому аналоговий вхід, у другому визначається формат вихідних даних і джерело опорної напруги

Різниця в пророблених експериментах виникає при записі різних чисел в регістр ADCON0 Ось що сказано в керівництві до IE-ROBOPIC про це регістрі:

7

6

5

4

3

2

1

0

ADCS1

ADCS0

CHS3

CHS2

CHS1

CHS0

GO/ DONE

ADON

Біти 7 і 6 – ADCS1, ADCS0: біти вибору частоти перетворення АЦП 00 = FOSC / 2

01 = FOSC/8

10 = FOSC/32

11 = FRC (частота, одержувана від спеціалізованого внутрішнього генератора = 500 кГц, максимум)

Біти від 5 до 2 – Від CHS3 до CHS0: біти Вибору Аналогового Каналу 0000 = AN0 (висновок RA0)

0001 = AN1 (висновок RA1)

0010 = AN2 (висновок RA2)

0011 = AN3 (висновок RA3)

0100 = AN4 (висновок RA5)

0101 = AN5 (висновок RE0)

0110 = AN6 (висновок RE1)

0111 = AN7 (висновок RE2)

1000 = AN8 (висновок RB2 – зарезервовано для схеми керування двигуном постійного струму плати управління Роботом RBX-877V20)

1001 = AN9 (висновок RB3 – зарезервовано для світлодіодного індикатора плати управління Роботом RBX-877V20)

1010 = AN10 (висновок RB1 – зарезервовано для схеми керування двигуном постійного струму плати управління Роботом RBX-877V20)

1011 = AN11 (висновок RB4 – зарезервовано для виходу сервомотора плати управління Роботом RBX-877V20)

1100 = AN12 (висновок RB0 – альтернативна функція як вхід зовнішнього переривання і вимикача плати управління Роботом RBX-877V20)

1101 = AN13 (висновок RB5 pin – зарезервовано для виходу сервомотора плати управління Роботом RBX-877V20)

1110 = CVREF

1111 = Fixed Ref (фіксоване опорна напруга 0,6 В)

Біт 1 – GO / DONE: біт стану АЦП

1 = цикл аналого-цифрового перетворення в процесі виконання Установка цього

біта запускає цикл аналого-цифрового перетворення Цей біт автоматично очищається мікроконтролером після закінчення циклу аналого-цифрового перетворення

0 = цикл аналого-цифрового перетворення / НЕ запущений

Біт 0 – ADON: ADC біт дозволу роботи АЦП 1 = робота АЦП дозволена

0 = робота АЦП, і він не споживає електричний струм

Розберемо наш випадок: біти 7 і 6 однакові у всіх настройках, біти 1 і 0 теж Залишимо їх Випишемо залишилися біти: 0010 – використовується висновок RA2 0111 – використовується висновок RE2 0011

– Використовується висновок RA3 Тобто, для читання АЦП значення напруги використовуються різні канали, тільки і всього Так, у робота датчик включений в розєм (дотримуючись інструкції), який

«Жорстко привязаний» до певного каналу, тому заміна каналу принесла користь А в програмі ISIS, що, до речі, можна перевірити, достатньо було змінити зєднання вихідного фототранзистора, підключивши його до іншого висновку мікроконтролера

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

Корисно тримати під рукою datasheet

Джерело: Гололобов ВН, – Самовчитель гри на паяльнику (Про електроніці для школярів і не тільки), – Москва 2012