Отговори на тема  [ 6 мнения ] 
PIC16F886 & DS1631 & Динамична индикация ? 
Автор Съобщение
Ранг: Новодошъл
Ранг: Новодошъл
Аватар

Регистриран на: Сря Ное 10, 2004 1:06 am
Мнения: 161
Местоположение: Нова Загора
Мнение PIC16F886 & DS1631 & Динамична индикация ?
Здравейте! Дали е възможна тази комбинация - процесора е PIC16F886, имам 3 разредна седемсегментна динамична индикация и температурен I2C сензор DS1631.
Идеята е да се изобразява температурата на седемсегментия дисплей, само ме притеснява дали е възможно, защото цикъла на четене на DS1631 при най голямата точност е 750мс, не знам дали ще успявам да опреснявам дисплея. Сорса за управлвнието на LED съм го написал, въпроса е през колко време да го опреснявам, за да не се получава много видимо мигане.

Благодаря!


Нед Мар 29, 2009 10:55 am
Профил
Ранг: Популярен
Ранг: Популярен
Аватар

Регистриран на: Сря Окт 11, 2006 8:19 pm
Мнения: 373
Местоположение: София/Edinburgh, UK
Мнение 
Ами принципно се смята че човешкото око различава максимум 24 кадъра в секунда, но когато аз съм пробвал повече от 15 пъти опреснение в секунда не се усеща съществено. За това от 15 нагоре би трябвало да ти върши работа :) А и нищо не пречи да експериментираш. Плюс това никой не е казал че трябва да опресняваш дисплея само когато прочетеш новата температура. Ти си го опреснявай примерно 15пъти в секунда, пък когато получиш нова стойност си я изобразявай. Но това ще стане разбира се само, ако ползваш хардуерно I2C .

_________________
Българският портал за РОБОТИКА


Нед Мар 29, 2009 11:42 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пон Яну 30, 2006 2:48 am
Мнения: 1248
Местоположение: София
Мнение Re: PIC16F886 & DS1631 & Динамична индикация ?
BONGO написа:
Здравейте! Дали е възможна тази комбинация - процесора е PIC16F886, имам 3 разредна седемсегментна динамична индикация и температурен I2C сензор DS1631.
Идеята е да се изобразява температурата на седемсегментия дисплей, само ме притеснява дали е възможно, защото цикъла на четене на DS1631 при най голямата точност е 750мс, не знам дали ще успявам да опреснявам дисплея. Сорса за управлвнието на LED съм го написал, въпроса е през колко време да го опреснявам, за да не се получава много видимо мигане.

Благодаря!

Направи си в програмата буфер, в който измерването да вкарва сметнатата температура, направо в сегментен код.
Самата визуализация я вкарай в едно таймерно прекъсване, приблизително 200 -250 пъти в секунда, и на всяко прекъсване въртиш поредния знак от дисплея. Двете функции (меренето и дисплея) ще си работят независимо една от друга.


Нед Мар 29, 2009 11:55 am
Профил WWW
Ранг: Новодошъл
Ранг: Новодошъл

Регистриран на: Чет Окт 02, 2008 10:24 pm
Мнения: 105
Мнение 
750 ms e convertion time.

т.е. стартирш конвертиране със съответната команда,
и след 750ms си прочиташ температурата,

Няма смисъл контролера да чака 750ms.
Примерно 1път в секунда комуникираш с датчика.
Първо прочиташ готовата температура,
след това стартираш ново конвертиране.


Нед Мар 29, 2009 12:34 pm
Профил ICQ
Ранг: Ориентиран
Ранг: Ориентиран

Регистриран на: Чет Ное 20, 2008 1:49 pm
Мнения: 276
Местоположение: Бургас
Мнение 
Нещо подобно правих и аз, само че ставаше въпрос за ШИМ и четене на АЦП. Аз го направих така - Въртя си цикъла за импулсите и през паузата между два импулса проверявам флага за готовност на АЦП. Ако е готов, прочитам стойността и я зареждам в променлива, където после ще я използвам, след което бутам АЦП отново да измерва. Това ми отнема 2-3 цикъла и не се забелязва, ако изобщо повлияе на импулса ми - процесорът работи на 4 МХц. Тази променлива по принцип се ползва преди всяко начало на цикъла на импулса, непосредствено след проверката и четенето на АЦП.
Нещо такова ще стане и при теб, ако използваш хардуерен интерфейс за комуникация със сензора. Доколкото разбирам, той е с И2С, а ПИК-овете имат такъв интерфейс. Така, след всяка смяна на фазата на индикацията проверяваш дали интерфейсът има нещо за теб и ако има, четеш.
Сега говоря малко наизуст, възможно е да изпускам значими неща относно И2С интерфейса на ПИК-овете...

_________________
Digitally yours: Optron


Пон Мар 30, 2009 3:13 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Сеп 26, 2004 9:21 pm
Мнения: 30686
Местоположение: София
Мнение 
Ами не виждам проблем, още повече ако I2C ти е хардуерно, както по горе казаха няма нужда да зацикляш в едно състояние и да не правиш нищо. Ако е като при one wireдатчиците им мисля че се полираше някакъв регистър за ADC complete, т.е това полиране може да го правиш през някакъв интервал. Освен това аз си мисля че времето зависеше и от това колко битов резултат искаш.


Пон Мар 30, 2009 9:01 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 6 мнения ] 

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 3 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни