Форум Микро-Чип
Поиск и заказ электронных компонентов
 

Вернуться   Форум Микро-Чип > Своими руками

Своими руками Завершенные и текущие проекты, хард & софт

Ответ
 
Опции темы Опции просмотра
Старый 31.08.2017, 05:10   #1
CocuckuH
Member
 
Аватар для CocuckuH
 
Регистрация: 27.05.2015
Возраст: 29
Сообщений: 50
Вес репутации: 103/18
CocuckuH will become famous soon enoughCocuckuH will become famous soon enough
По умолчанию Сенсорный ввод на PIC

Доброго всем!

Пытаюсь собрать сенсорную панельку на PIC18F2580. И теорию и схему взял из статьи на Хабре: https://geektimes.ru/post/256674/

Так вот, уже на этапе калибровки контроллер не хочет работать как задумано. Программа стопорится на первом же цикле while, будто никакого заряда ёмкости и не происходит вовсе:

Код:
void CallibrateButtons(void) {
TRISB &= 0b11111000;  // порт на выход
LATB  &= 0b11111000;  // в порт ноль
idle_millisec = 2; OSCCON = OSCCON_START_STATE; SLEEP(); // Ждём пока стечёт заряд
microsec = 0;              // Счётчик микросекунд, инкементируется таймером
TMR0H = TIMER0_H; TMR0L = TIMER0_L; // Установка таймера на прерывание каждые 5с
TMR0ON = 1;                                      // Включили таймер
TRISB |= 0b00000111;                         // Порт на вход
while ( RB0 == 0 ) { __delay_us(1); };    // Вот тут висиииим =(
TMR0ON = 0;
button_1_open_time = microsec + 10; }
На всякий случай: резистор 1.3 МОм, конденсатор 27 пФ.

Есть идеи у кого-нибудь, с чем это может быть связано?
CocuckuH вне форума   Ответить с цитированием
Старый 31.08.2017, 09:24   #2
pasha_zv
Senior Member
 
Аватар для pasha_zv
 
Регистрация: 17.04.2010
Адрес: Ставрополь
Возраст: 48
Сообщений: 413
Вес репутации: 689/46
pasha_zv is a splendid one to beholdpasha_zv is a splendid one to beholdpasha_zv is a splendid one to beholdpasha_zv is a splendid one to beholdpasha_zv is a splendid one to beholdpasha_zv is a splendid one to behold
По умолчанию Re: Сенсорный ввод на PIC

плату от флюса нормально то отмыл?
а то бывали чудеса.
__________________
я - кузнец. я не могу ни куя.
pasha_zv вне форума   Ответить с цитированием
Старый 31.08.2017, 12:34   #3
CocuckuH
Member
 
Аватар для CocuckuH
 
Регистрация: 27.05.2015
Возраст: 29
Сообщений: 50
Вес репутации: 103/18
CocuckuH will become famous soon enoughCocuckuH will become famous soon enough
По умолчанию Re: Сенсорный ввод на PIC

Цитата:
Сообщение от pasha_zv Посмотреть сообщение
плату от флюса нормально то отмыл?
а то бывали чудеса.
Да это ж ёмкостной датчик, ему флюс по боку должен быть...
CocuckuH вне форума   Ответить с цитированием
Старый 31.08.2017, 12:38   #4
DimaS
Senior Member
 
Регистрация: 05.04.2008
Адрес: Israel
Возраст: 46
Сообщений: 1,691
Вес репутации: 2423/83
DimaS has a reputation beyond reputeDimaS has a reputation beyond reputeDimaS has a reputation beyond reputeDimaS has a reputation beyond reputeDimaS has a reputation beyond reputeDimaS has a reputation beyond reputeDimaS has a reputation beyond reputeDimaS has a reputation beyond reputeDimaS has a reputation beyond reputeDimaS has a reputation beyond reputeDimaS has a reputation beyond repute
По умолчанию Re: Сенсорный ввод на PIC

Цитата:
Сообщение от CocuckuH Посмотреть сообщение
Да это ж ёмкостной датчик, ему флюс по боку должен быть...
А утечка?
DimaS вне форума   Ответить с цитированием
Старый 31.08.2017, 13:42   #5
CocuckuH
Member
 
Аватар для CocuckuH
 
Регистрация: 27.05.2015
Возраст: 29
Сообщений: 50
Вес репутации: 103/18
CocuckuH will become famous soon enoughCocuckuH will become famous soon enough
По умолчанию Re: Сенсорный ввод на PIC

Цитата:
Сообщение от DimaS Посмотреть сообщение
А утечка?
Утечка с чего и куда?
CocuckuH вне форума   Ответить с цитированием
Старый 31.08.2017, 18:31   #6
Guaho
Senior Member
 
Аватар для Guaho
 
Регистрация: 28.06.2013
Возраст: 47
Сообщений: 730
Вес репутации: 1674/47
Guaho has a brilliant futureGuaho has a brilliant futureGuaho has a brilliant futureGuaho has a brilliant futureGuaho has a brilliant futureGuaho has a brilliant futureGuaho has a brilliant futureGuaho has a brilliant futureGuaho has a brilliant futureGuaho has a brilliant futureGuaho has a brilliant future
По умолчанию Re: Сенсорный ввод на PIC

На мой взгляд, ёмкость конденсатора маловата. Чем меньше эта ёмкость, тем меньше влияние ёмкости тела человека на время заряда. Увеличьте ёмкость до 100 пФ, как в оригинальной схеме.
Guaho вне форума   Ответить с цитированием
Старый 31.08.2017, 18:46   #7
DimaS
Senior Member
 
Регистрация: 05.04.2008
Адрес: Israel
Возраст: 46
Сообщений: 1,691
Вес репутации: 2423/83
DimaS has a reputation beyond reputeDimaS has a reputation beyond reputeDimaS has a reputation beyond reputeDimaS has a reputation beyond reputeDimaS has a reputation beyond reputeDimaS has a reputation beyond reputeDimaS has a reputation beyond reputeDimaS has a reputation beyond reputeDimaS has a reputation beyond reputeDimaS has a reputation beyond reputeDimaS has a reputation beyond repute
По умолчанию Re: Сенсорный ввод на PIC

Цитата:
Сообщение от CocuckuH Посмотреть сообщение
Утечка с чего и куда?
Между входом проца и землей/питанием, между сконцами мегомного резистора, между обоими концами конденсатора.
Если флюс активный, и небыл прогрет до соотв. температуры, или просто дерьмовый флюс - оно все вполне может быть электропроводно, и для высокоимпедансных цепей может пагубно сказаться.
DimaS вне форума   Ответить с цитированием
Старый 31.08.2017, 20:58   #8
petrd
Senior Member
 
Регистрация: 09.02.2008
Адрес: Воронеж
Возраст: 48
Сообщений: 1,811
Вес репутации: 2217/84
petrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond reputepetrd has a reputation beyond repute
Отправить сообщение для petrd с помощью ICQ
По умолчанию Re: Сенсорный ввод на PIC

Цитата:
Сообщение от DimaS Посмотреть сообщение
А утечка?
А RB0 в цифровой режим переведен?
__________________
License MikroC, MikroC PRO and EasyPIC5 by mikroElektronika (the dead mikroICD replaced PICKit2 & PICKit3)
petrd вне форума   Ответить с цитированием
Старый 01.09.2017, 02:45   #9
CocuckuH
Member
 
Аватар для CocuckuH
 
Регистрация: 27.05.2015
Возраст: 29
Сообщений: 50
Вес репутации: 103/18
CocuckuH will become famous soon enoughCocuckuH will become famous soon enough
По умолчанию Re: Сенсорный ввод на PIC

Цитата:
Сообщение от petrd Посмотреть сообщение
А RB0 в цифровой режим переведен?
За состояние порта RB отвечают всего несколько регистров. Из них, кажется, три отвечают за прерывания. TRIS, LAT и PORT в коде видно.

Менять входной буфер ещё могут биты PCFG<3:0> в регистре ADCON1, но в моём случае есть

Код:
#pragma config PBADEN = OFF     // PORTB A/D Enable bit (PORTB<4:0> pins are configured as digital I/O on Reset)
Так как я их не меняю после старта, очевидно у меня
Код:
PCFG<3:0> = 0111
То есть RB0 должен быть настроен как цифровой, и я всё делаю как говорит автор оригинальной идеи.

Вероятно, дело действительно в малой ёмкости сенсора.
CocuckuH вне форума   Ответить с цитированием
Старый 31.08.2017, 12:39   #10
ampersant
Senior Member
 
Аватар для ampersant
 
Регистрация: 26.02.2008
Адрес: IgorV
Сообщений: 2,536
Вес репутации: 4887/117
ampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond repute
По умолчанию Re: Сенсорный ввод на PIC

Цитата:
Сообщение от CocuckuH Посмотреть сообщение
Да это ж ёмкостной датчик, ему флюс по боку должен быть...
ничего не получится. физика процесса не понята тс.
ampersant вне форума   Ответить с цитированием
Старый 31.08.2017, 12:50   #11
maagalex
Senior Member
 
Аватар для maagalex
 
Регистрация: 25.02.2007
Адрес: &Alex==Israel.BatYam
Возраст: 43
Сообщений: 4,500
Вес репутации: 2476/116
maagalex has a reputation beyond reputemaagalex has a reputation beyond reputemaagalex has a reputation beyond reputemaagalex has a reputation beyond reputemaagalex has a reputation beyond reputemaagalex has a reputation beyond reputemaagalex has a reputation beyond reputemaagalex has a reputation beyond reputemaagalex has a reputation beyond reputemaagalex has a reputation beyond reputemaagalex has a reputation beyond repute
Отправить сообщение для maagalex с помощью ICQ Отправить сообщение для maagalex с помощью MSN Отправить сообщение для maagalex с помощью Skype™
По умолчанию Re: Сенсорный ввод на PIC

Зачем так мучиться?
https://youtu.be/KmoG8AZ5bqg
maagalex вне форума   Ответить с цитированием
Старый 31.08.2017, 13:41   #12
CocuckuH
Member
 
Аватар для CocuckuH
 
Регистрация: 27.05.2015
Возраст: 29
Сообщений: 50
Вес репутации: 103/18
CocuckuH will become famous soon enoughCocuckuH will become famous soon enough
По умолчанию Re: Сенсорный ввод на PIC

Цитата:
Сообщение от maagalex Посмотреть сообщение
Зачем так мучиться?
https://youtu.be/KmoG8AZ5bqg
Дак можно вообще тогда ничё не делать, купить ардуину и скетчей накачать.
CocuckuH вне форума   Ответить с цитированием
Старый 31.08.2017, 18:52   #13
sdn_sdn
Senior Member
 
Регистрация: 18.10.2016
Сообщений: 107
Вес репутации: 386/16
sdn_sdn is just really nicesdn_sdn is just really nicesdn_sdn is just really nicesdn_sdn is just really nice
По умолчанию Re: Сенсорный ввод на PIC

Цитата:
Сообщение от CocuckuH Посмотреть сообщение
Доброго всем!

Пытаюсь собрать сенсорную панельку на PIC18F2580. И теорию и схему взял из статьи на Хабре: https://geektimes.ru/post/256674/

Так вот, уже на этапе калибровки контроллер не хочет работать как задумано. Программа стопорится на первом же цикле while, будто никакого заряда ёмкости и не происходит вовсе:

Код:
void CallibrateButtons(void) {
TRISB &= 0b11111000;  // порт на выход
LATB  &= 0b11111000;  // в порт ноль
idle_millisec = 2; OSCCON = OSCCON_START_STATE; SLEEP(); // Ждём пока стечёт заряд
microsec = 0;              // Счётчик микросекунд, инкементируется таймером
TMR0H = TIMER0_H; TMR0L = TIMER0_L; // Установка таймера на прерывание каждые 5с
TMR0ON = 1;                                      // Включили таймер
TRISB |= 0b00000111;                         // Порт на вход
while ( RB0 == 0 ) { __delay_us(1); };    // Вот тут висиииим =(
TMR0ON = 0;
button_1_open_time = microsec + 10; }
На всякий случай: резистор 1.3 МОм, конденсатор 27 пФ.

Есть идеи у кого-нибудь, с чем это может быть связано?
Реализуйте, вместо этой бороды, программный CVD на данном мк.
Так же во многих мк, у микрочипа, есть апаратные модули CVD.
sdn_sdn вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помехоустойчивость схем на PIC StrDm Вопросы начинающих 20 07.06.2014 09:36
PIC vs AVR - быстродействие на математике tem-ya Микроконтроллеры других производителей 121 11.04.2011 13:32
компаратор на PIC sergxxx Продукция MICROCHIP 6 25.11.2008 16:56


Часовой пояс GMT +3, время: 07:30.


Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd. Перевод: zCarot