Yanshun

протеус особености работы цифровых моделей

22 сообщения в этой теме

Yanshun    354

Добрый вечер.

Один и тот-же проект в протеусе работает по разному, а именно: Первая схема подключения, индикатора, к UL2003 разряды не имеют на выходе подтягивающих резисторов к питанию, а вторая схема имеет. Вопрос заключается в том, что первая схема при запуске, в протеусе, загораются все сегменты и ни чего не отображается  корректно, а вот вторая схема отображает корректно цифры. Почему так происходит?

Приложил файлы для протеуса.

Благодарю. 

Схема.jpg

Тест 2.jpg

Тест.rar

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
mvkarp    3 747

Потому, что резисторы там не нужны. UL должна поочередно подключать катоды индикатора к минусу. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Yanshun    354

@mvkarp Добрый вечер.

Но без этих резисторов, почему-то, не хочет корректно отображать цифры, просто горят все сегменты и все, а с этими резисторами все хорошо. В реали тоже придется ставить эти резисторы на разряды? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
mvkarp    3 747
53 минуты назад, Yanshun сказал:

Добрый вечер.

Спасибо! Он добрый. И Вам того же.

Какой индикатор используете? Здесь должен стоять индикатор с общим катодом каждого разряда. Если индикатор именно такой, то мне непонятно, почему у Вас так происходит. 
Если индикатор с общими анодами, то можно ждать чего угодно. В том числе и правильного отображения.

@Mayder , генераторы не "загенерят". Для 155 совсем другие номиналы нужны.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
mvkarp    3 747

Тогда или я чего не понимаю, или одно из двух. :)
Есть, как я недавно только узнал ( :umnik2: ) индикаторы и с другим соединением ног. 
Как реализуется динамическая индикация изучали? Это чтобы проще разговаривать было. И, может, если не получается, свою тему откройте. Или в личку мне как-нидь напишите. С Протеусом не знаком, по схемотехнике пройдемся.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
colorad    377

@Yanshun   @mvkarp  Можно так сделать .  Вывести статически  в одном разряде цифру 1 например .  И выложить картинку симуляции . Там будет понятно . Красные квадраты на выводе  "1" , синие "0" .

Изменено пользователем colorad

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Yanshun    354

@mvkarp  Сам проект я подробно не изучал, исходный код имеется, но в программирование я пока не разбираюсь, смотрю разные уроки по этому поводу.

Проект взят отсюда https://pwmccs.wordpress.com/2012/08/21/pic16f876a-max6675-display-termokupl-termostat/ там можно скачать все файлы.

Сейчас у меня пока нет контроллера, заказал с Китая, я бы тогда на макетке все проверил бы. А запустил протеус, хотя я ему не очень доверяю, симуляторам этим, и столкнулся с такой "проблемой" я бы конечно забил бы на это, но я думаю собрать данное устройство и хотелось узнать больше про него, пока не поздно. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
mvkarp    3 747

Я в нынешних кодах не разбираюсь. Очень давно писал на Ассемблерах. Нынешние лень изучать за ненадобностью. Так что в этом я Вам не помощник.
Про динамическую индикацию почитайте. Используется повсюду. Нужно разобраться и запомнить.

15 минут назад, colorad сказал:

Можно так сделать .

Я понимаю, как нужно делать. Но все уже описал чуть выше. :) Спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
colorad    377

Я вывести предлагал @Yanshun . Но если он не может , тогда не подходит  .

Вариант  запасной . @Yanshun уберите процессор с платы и принудительно подайте нужные уровни и проследите сигналы . 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Yanshun    354

@mvkarp @colorad  Сделал анимацию проекта в тротеусе, чтобы было все наглядно видно. Буду пробывать разбираться  

Спасибо

 

Скрытый текст

Animation 1.gif

 

 

Скрытый текст

Animation 0.gif

 

Изменено пользователем Yanshun

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
mvkarp    3 747

@colorad , самый первый метод проверки. И самый простой. И самый надежный. Принудительные сигналы. :)

 

@Yanshun , разместите, чтобы мне не мучиться с преобразованиями, архив с файлами, из которых делали анимацию. 

Изменено пользователем mvkarp

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
IMXO    1 223
12 часа назад, Yanshun сказал:

Почему так происходит?

так и должно быть. вы выбрали цифровую модель индикатора, оная работает только при наличии цифровых уровней на выходах, UIN2003 - модель аналоговая с выходом ОК и создать высокий уровень на входе индикатора не может, подтягивающие резисторы решают эту проблему.

10 часов назад, Yanshun сказал:

чтобы было все наглядно видно

правильную обработку кнопок вы не увидите, костыль лежит тут

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
ARV    327
1 час назад, IMXO сказал:

вы выбрали цифровую модель индикатора, оная работает только при наличии цифровых уровней на выходах, UIN2003 - модель аналоговая с выходом ОК и создать высокий уровень на входе индикатора не может, подтягивающие резисторы решают эту проблему.

Не совсем так. Цифровой индикатор - это не означает, что ему требуются "цифровые уровни", это означает, что у него "цифровая логика" работы, т.е. как бы двоичная - светит/не светит. Цифровой индикатор не создает ток в своей цепи, поэтому отлично обходится без резисторов токоограничительных, не меняет свою яркость от тока через себя и т.д. То есть ведет себя совсем не так, как должен вести светодиод. В этом его отличие от "аналогового" индикатора.

Что касается ULN, то она не может создать высокий уровень на своей выходе не потому, что она аналоговая, а потому, что там открытый коллектор, который вообще уровня напряжения не создает, это токовый выход для втекающего тока. И создавать этот втекающий ток надо внешней цепью - резистором или еще чем-то.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
IMXO    1 223
Только что, ARV сказал:

Не совсем так.

именно так. можете аксперементы с моделями светодиодов провести , у них переключалка вида модели имеется.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
ARV    327

Я в курсе про переключалку. И в цифровом режиме они как раз ведут себя не как диоды, у которых прямое падение зависит от тока, а так, как сказал я - светят независимо от "расчетного" тока в цепи. Или не светят.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
IMXO    1 223

еще раз для тех кто в танке: цифровая модель светит при наличии на ее аноде уровня  лог.1, те напряжения => 3,5v , падения напряжения на ней нет

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Бронюс    26

Простите, не в тему и наверное глупый вопрос:  Что с моим протеусом ?  Пробую открыть фаилы из архива  @Yanshun   и вот какие ошибки предявляет:

Скрытый текст

5960980962b94_Ekranonuotraukai2017-07-0811-21-05.png.4acdd0071ac4b16ae4f9f3a328795328.png

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
IMXO    1 223

пишет что протез урезанный и не активированы модели

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
KomSoft    247

Похоже, что у вас протеус типа trial или demo, и не поддерживает все (или полные) модели. А у @Yanshun pro версия (или честно купленный, или правильно крякнутый) и поддерживает все.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Yanshun    354

Добрый вечер.
Решил я протестировать проект (https://pwmccs.wordpress.com/2012/08/21/pic16f876a-max6675-display-termokupl-termostat) на макетной плате, как раз проверил ее работу.
Жаль что проект оказался не работоспособен. При каждой подаче питания на дисплее появляется значение 512 градусов. Можно сбросить данное значение трижды нажав на AYAR тогда термостат переходит в режим измерения температуры. Правда показания температуры в режиме реального времени не изменяются на дисплее, просто показывает измеренную температуру и все, если опять трижды нажать на AYAR, термостат опять покажет только что измеренную температуру. но цифры в реальном времени не меняются.
ULN 2003 я заменил на BC547, мне как-то проще с транзисторами.
Заметно мерцания цифр и довольно хорошо. Глаза быстро устают смотреть на дисплей.
Конденсаторы в параллель кнопок я не ставил, видимо отсюда мне не удается, при установки, делать шаги по 1 градусу единожды нажав на кнопку. При единичном нажатии показания скачут от 4 до 8 градусов, видимо в прошивке нет защиты от антидребезг  контактов, конденсаторы наверное выполняют эту роль.
При обесточивании и повторном включении устройство показания ранее записанные сохраняются.

Жаль конечно, а я так надеялся. 

SNC00783.jpg

SNC00784.jpg

SNC00786.jpg

SNC00788.jpg

SNC00789.jpg

SNC00790.jpg

SNC00791.jpg

SNC00792.jpg

SNC00793.jpg

SNC00794.jpg

SNC00795.jpg

SNC00796.jpg

SNC00797.jpg

SNC00798.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Yanshun    354

Код программы
 

Скрытый текст

'****************************************************************
'*  Name    : NAZMЭ BASAN                                      *
'*  Date    : 14.02.2012                                        *
'*  Version : 2.0                                               *
'*  compiler : proton basic v 3.5.2.7                           *
'*  Notes   : MAX6675 TERMOSTAD DEVRESЭ (test edilmedi)         *
'*          : pwm.c@hotmail.com                                 *
'****************************************************************
Device = 16F876A
Xtal= 4
@ CONFIG_REQ 
@ __config CP_OFF & CPD_OFF & WDT_OFF & XT_OSC & PWRTE_OFF & BODEN_OFF & WRT_OFF & LVP_OFF & DEBUG_OFF 

      
Symbol SO = PORTC.7 
Symbol CS = PORTC.5 
Symbol SCK = PORTC.6

Dim X As Word
Dim Z As Word
Dim Y As Word 
Dim T As Word 
Dim TOL As Word
Dim K As Byte
Dim ALSY As Byte
Dim VER As Byte
Dim HN1 As Byte
Dim HN2 As Byte 
Dim HN3 As Byte
Dim SAYAC As Byte 
X=1
Y=1
Z=1
T=1
TOL=1
K=0
SAYAC=0
TRISA=%00000111
PORTA=0
TRISB=0
PORTB=0
TRISC.0=0
TRISC.1=0
TRISC.2=0
TRISC.3=0
TRISC.4=0
PORTC=0
CMCON=7
ADCON1=6

KONTROL:
K=ERead 0  'KONTROL BAYRAРINI OKU
If K=1 Then HAZIRLA 'DEРER AYARLANMIЮSA HAZIRLA
GoTo AYARBAS   'YOKSA YENЭ AYAR
HAZIRLA:
Y=ERead 4
TOL=ERead 1

BASLA:
If PORTA.0=0 Then AYARBAS
'OKU
Low CS 
SHIn SO,SCK,0,[X\16]  
High CS 

'HESAP
X=((X>>2)/4)-24
HN1=Dig X,2
HN2=Dig X,1
HN3=Dig X,0
X=((HN1*100)+(HN2*10)+(HN3))

'GЦSTER
VER=HN1
GoSub TABLO
High PORTC.1
DelayMS 5
Low PORTC.1
VER=HN2
GoSub TABLO
High PORTC.2
DelayMS 5
Low PORTC.2
VER=HN3
GoSub TABLO
High PORTC.3
DelayMS 5
Low PORTC.3
VER=10' o
GoSub TABLO
High PORTC.4
DelayMS 5
Low PORTC.4

If X>=Y Then 
Low PORTC.0
EndIf
If X<=TOL Then 
High PORTC.0
EndIf
 
X=0
GoTo BASLA

AYARBAS:
Low PORTC.0
Low PORTA.3
High PORTA.5
GoSub SETGOSTER
If PORTA.0=0 Then AYARBAS

AYAR:
GoSub SETGOSTER
If PORTA.1=0 Then 
Y=Y+1
If Y=1000 Then 
Y=999
EndIf
EndIf
If PORTA.2=0 Then 
Y=Y-1
If Y=0 Then 
Y=1
EndIf
EndIf
If PORTA.0=0 Then TOLBASLA
GoTo AYAR

TOLBASLA:
High PORTA.3
Low PORTA.5
GoSub TOLGOSTER 
If PORTA.0=0 Then TOLBASLA

TOLAYR:
GoSub TOLGOSTER 
If PORTA.1=0 Then 
TOL=TOL+1
If TOL>Y-1 Then 
TOL=Y-1
EndIf
EndIf


If PORTA.2=0 Then 
TOL=TOL-1
If TOL=0 Then 
TOL=1
EndIf
EndIf


If PORTA.0=1 Then TOLAYR
KAYDET:
K=1
EWrite 0 ,[K]
DelayMS 10
EWrite 1 ,[TOL]
DelayMS 10
EWrite 4 ,[Y]
PORTB=0
High PORTA.3
High PORTA.5
DONGU:
High PORTB.7 'NOKTALAR
High PORTC.1
High PORTC.2
High PORTC.3
High PORTC.4
If PORTA.0=0 Then DONGU
DelayMS 3000
PORTB=0
PORTC=0
Low PORTA.3
Low PORTA.5
GoTo BASLA

SETGOSTER:
HN1=Dig Y,2
HN2=Dig Y,1
HN3=Dig Y,0
VER=11' C
GoSub TABLO
High PORTC.1
DelayMS 5
Low PORTC.1
VER=HN1
GoSub TABLO
High PORTC.2
DelayMS 5
Low PORTC.2
VER=HN2
GoSub TABLO
High PORTC.3
DelayMS 5
Low PORTC.3
VER=HN3
GoSub TABLO
High PORTC.4
DelayMS 5
Low PORTC.4
Return

TOLGOSTER:
HN1=Dig TOL,2
HN2=Dig TOL,1
HN3=Dig TOL,0
VER=13' R
GoSub TABLO
High PORTC.1
DelayMS 5
Low PORTC.1
VER=HN1
GoSub TABLO
High PORTC.2
DelayMS 5
Low PORTC.2
VER=HN2
GoSub TABLO
High PORTC.3
DelayMS 5
Low PORTC.3
VER=HN3
GoSub TABLO
High PORTC.4
DelayMS 5
Low PORTC.4
Return

TABLO:
PORTB=LookUpL VER,[63,6,91,79,102,109,125,7,127,111,99,88,64,80]
'                 [0 ,1,2 ,3 , 4 , 5 , 6 ,7, 8 , 9 ,o ,c ,- ,r ]
Return

End

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ваша публикация должна быть проверена модератором

Гость
Вы не авторизованы. Если у вас есть аккаунт, пожалуйста, войдите.
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Восстановить форматирование

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Загрузка...

  • Похожие публикации

    • Автор: Grampus
      Добрый день подскажите пожалуйста почему то в протеус не запускается программа
      пишет ошибки:
      -mixed model AVR2 DLL
      -Real Time Simulation failed to start