Микроконтроллеры AVR - применение и Краткий Курс - часть 9

 
1 8 9 10 11 12 47

pokos

аксакал

temp&=0x7FF0; - тут знак уже потерян.
te=(temp*(-1))*0.0625; - тут вычисления дают уже чёрте что, число становится отрицательным, т.е. после маскирования в старших четырёх разрядах - теперь все единицы.

Не надо забывать, что отрицательные числа кодируются в ДОПОЛНИТЕЛЬНОМ коде! Маскировать надо после смены знака, а не до.
 
RU termostat #12.04.2006 13:15
+
-
edit
 

termostat

аксакал

регулируется переменным резистором на 5 КОм (это я уже разобрал и посмотрел). Как бы этот резистор заменить на управление с компьютера?

Кажется есть такие резисторы, сопротивлением которых можно управлять с МК. А МК с компьютером я уж как-нибудь свяжу ;^))
 


Если на выходе у него напряжение не зависящее от других факторов - то просто ЦАП поставить - они на нужную разрядность есть.

Если на концах потенциометра напряжение гуляет то поставить цифровой потенциометр - есть до 1024 шагов по моему.

analog.com - пришлют образцы.

еще maxim-ic.com
+
-
edit
 

Serge77

модератор

Если на выходе у него напряжение не зависящее от других факторов - то просто ЦАП поставить - они на нужную разрядность есть.
 


Ясно, проверю напряжение.

цифровой потенциометр - есть до 1024 шагов по моему.
 


Он так и называется - цифровой потенциометр ?

NoS

новичок
temp&=0x7FF0; - тут знак уже потерян.
te=(temp*(-1))*0.0625; - тут вычисления дают уже чёрте что, число становится отрицательным, т.е. после маскирования в старших четырёх разрядах - теперь все единицы.

Не надо забывать, что отрицательные числа кодируются в ДОПОЛНИТЕЛЬНОМ коде! Маскировать надо после смены знака, а не до.
 


Напиши, пожалуйста, как это должно выглядеть. Для наглядности полученных данных положу кусочек даташита.

TEMPERATURE REGISTER
The Temperature Register of the TMP121 and TMP123 is
a 16-bit, signed read-only register that stores the output of
the most recent conversion. Up to 16 bits can be read to
obtain data and are described in Table 1. The first 13 bits
are used to indicate temperature with bits D2 = 0, and D1,
D0 in a high impedance state. Data format for temperature
is summarized in Table 2. Following power-up or reset, the
Temperature Register will read 0°C until the first
conversion is complete.
D15| D14| D13| D12| D11| D10| D9| D8| D7 |D6 |D5| D4| D3 |D2 |D1 |D0
T12| T11| T10| T9 | T8 | T7 | T6| T5| T4 |T3 |T2| T1| T0 |0 |Z | Z (Только у меня D4 тоже=0)
Table 1. Temperature Register

T°C DIGITAL OUTPUT(1)
(BINARY) HEX
150 0100 1011 0000 0000 4B00
125 0011 1110 1000 0000 3E80
25 0000 1100 1000 0000 0C80
0.0625 0000 0000 0000 1000 0008
0 0000 0000 0000 0000 0000
−0.0625 1111 1111 1111 1000 FFF8
−25 1111 0011 1000 0000 F380
−55 1110 0100 1000 0000 E480
 
RU termostat #12.04.2006 13:30
+
-
edit
 

termostat

аксакал

Чет не хочет работать как следует. В общем вот ключевые фрагменты программы:
 


во первых какой датчик? наверно под него тонна кода в интернете есть ???

ВСЕГДА ПИШИТЕ КАКИЕ ПРИБОРЫ ИСПОЛЬЗУЕТЕ !
какой компилер и прочие подробности - легче будет помочь.


ты я вижу софтверный SPI написал - ну так хоть в цикл его запихни, а то 16 раз писать чтение очередного бита жутко как-то.

После ситывания по SPI для отладки сам задай temp_value тестовое значение и отладь в начале индикацию.

Когда убедишся что индикация идет правильно, тогда отлаживай SPI.

Опять же с temp мудришь с масками чтоб 15 бит посмотреть... зачем? вот фо?

тыж на Си пишешь !

вот и напиши на Си:

if(temp<0){

}
else{

}

такой пример есть в примерах к CodeVisionAVR
RU termostat #12.04.2006 13:51
+
-
edit
 

termostat

аксакал

Для наглядности полученных данных положу кусочек даташита.
 


по "Table 1. Temperature Register" выходит что считаный результат
если нужно то сделать положительным и умножать надо на 0.0078125 и соответственно результат уже будет типа float

Не надо забывать, что отрицательные числа кодируются в ДОПОЛНИТЕЛЬНОМ коде!
 


Ребят! если вы пишите на Си - нафига думать в каком коде кодируются числа ???

об это компилятор думает.

Просто не изображайте ассемблер с помощью Си - и все будет нормально!


pokos

аксакал

Напиши, пожалуйста, как это должно выглядеть.
 

В данном случае, эти строчки надо поменять местами. И вообще, сама необходимость маскирования тут совсем не очевидна. Кстати, вместо "*0,0625" надо бы писать ">>4", чтобы не плодить плавающие точки.
И в остальном, полностью поддерживаю termostat-a. Вредные привычки надо бросать!
 

SAA

втянувшийся

Мне кажется ты запутал себя вот этим: "12 разрядное двоичное число"

Переменная содержит просто "число" соответсвенно знаковый бит будет самый старший - 15-й а не 11-й
 


Ну не совсем так с 11 по 15 будут "1", это расширение знака до 16.
При арифметике учитываться будет все "1"!
Дебильно разговору нет ;)
 
RU Андрей Суворов #12.04.2006 16:24
+
-
edit
 

Андрей Суворов

координатор

На работе задача появилась. Есть у нас насос для хроматографа, хороший, но старый, управление ручное. Скорость подачи жидкости регулируется переменным резистором на 5 КОм (это я уже разобрал и посмотрел). Как бы этот резистор заменить на управление с компьютера?
 


А как включён этот резистор? Реостатом или делителем? Есть ли у него "заземлённый" хотя бы по сигналу конец, или на обоих что-то трепыхается?

Кажется есть такие резисторы, сопротивлением которых можно управлять с МК. А МК с компьютером я уж как-нибудь свяжу ;^))

Или есть другие решения?
 


Есть, конечно. Например, можно взять восемь обычных резисторов и коммутировать их с помощью 561КП2. Дело в том, что у многих "электронных резисторов" один выход обязательно заземлён. Можно взять один ключ и модулировать его ШИМом.
 

GOGI

координатор
★★★★
Он так и называется - цифровой потенциометр ?
 

Угу, по крайней мере у аналога. Их много разных, но что плохо у всех, напряжение на любом из концов потенциометра не может быть выше напряжения питания цифровой части (то есть 5,5 В) и ток они маленький терпят, около 20 мА. Но если такое подходит, то удобнее всего что-то вроде AD5220. У него управление очень простое, МК не понадобится.
1  
+
-
edit
 

Serge77

модератор

А как включён этот резистор? Реостатом или делителем?
 


А чем реостат отличается от делителя? Ты вопросы хоть слегка адаптируй ;^))

Есть ли у него "заземлённый" хотя бы по сигналу конец, или на обоих что-то трепыхается?
 


Землю сейчас проверить не могу, завтра принесу тестер и проверю.
Подключены к схеме все три вывода, на глаз по плате землю выследить не удалось.

можно взять восемь обычных резисторов и коммутировать их с помощью 561КП2.
 


С мультиплексорами я ещё не связывался ;^))
Наверно можно использовать восемь ног МК, на них полевики и резисторы?

Дело в том, что у многих "электронных резисторов" один выход обязательно заземлён. Можно взять один ключ и модулировать его ШИМом.
 


Не понял. Проясни.

SiNil

новичок
AD5280
Прикреплённые файлы:
 
 
+
-
edit
 

Serge77

модератор

SiNil, это ты мне? Для меня это слишком коротко ;^))

GOGI

координатор
★★★★
Сергей, а может имеет смысл не заменять один резистор цифровым, а просто поставить свою СУ. Там какой двигатель применен?
1  

SiNil

новичок
Вот с 3я выводами электронный резистор. Управление по и2ц.

256 Position
AD5280 – 1-Channel
AD5282 – 2-Channel (Independently Programmable)
Potentiometer Replacement
20K, 50K, 200K Ohm with TC < 50ppm/ºC
Internal Power ON Mid-Scale Preset
+5 to +15V Single-Supply; ±5.5V Dual-Supply Operation
I2C Compatible Interface

ЗЫ Респект SAA ;)

Вопрос. Как адрес на Ти.ком указывать? там только почтовый код спрашивают. Не приходят мне сэмплы:( А охота :)

Блин. Вот весь текст. От него только название микры осталось :(
 
+
-
edit
 

Serge77

модератор

Сергей, а может имеет смысл не заменять один резистор цифровым, а просто поставить свою СУ.
 


Ничего себе "просто" ;^))
Нет уж, я буду скромным и пока посягну только на резистор.

Двигатель с двумя щётками. Больше полезных подробностей могу сообщить только на дополнительные наводящие вопросы ;^))
+
-
edit
 

Serge77

модератор

Вот с 3я выводами электронный резистор. Управление по и2ц.
256 Position
AD5280 – 1-Channel
AD5282 – 2-Channel (Independently Programmable)
 


Да, спасибо, я уже нашёл список разных марок. Кстати, на 5 КОм попадаются очень редко.
RU Андрей Суворов #12.04.2006 17:51
+
-
edit
 

Андрей Суворов

координатор

Реостат - это тот, у которого отвод соединён с одним из концов (или один из концов вовсе не используется). Делитель (aka потенциометр) - это тот, у которого два конца являются фактически входом, а выходом является отвод (и один из концов, т.н. "холодный"). У реостата "холодного" конца нет (оба - "горячие") и заменить его электронным резистором сложнее.
 

GOGI

координатор
★★★★
А!!! Так он коллекторный или вообще ДПТ. Наверное коллекторный с симисторным управлением. Тогда на него вряд ли можно будет поставить цифровой потенциометр. Посмотри, есть ли на двигателе табличка с данными и на схему управления глянь, чем он управляется, должна быть самая большая трехвыводная деталь.
1  
+
-
edit
 

Serge77

модератор

Насчёт реостата и делителя понял ;^))
Похоже, что здесь делитель. Завтра всё померю и уточню.

На двигателе ничего не написано. Насос немецкий. Деталь с тремя выводами Т410 сидит на огромном радиаторе, с четверть кирпича.

GOGI, а почему нельзя поставить цифровой потенциометр ? Напряжение слишком высокое?
RU termostat #12.04.2006 18:13
+
-
edit
 

termostat

аксакал

Деталь с тремя выводами Т410 сидит на огромном радиаторе, с четверть кирпича.
 


ну это наверно фазовый регулятор - т.е. на потенциометере наверно большое напряжение. Хотя на 5 Ком пожалуй не очень большое.

Тогда можно будет сделать все на ЦАПе (например ШИМ АВРа прнимающего команды с ПК) и парочке ОУ с вольтодобавляющими транзисторами.

Боюсь там напряжения все импульсные и мультиметром ни фига не намеряешь надо осцилом посмотреть.

GOGI

координатор
★★★★
Дело не только и не столько в напряжении, сколько в том, как это напряжение и ток коммутируются. Блок силовой, токи импульсные, помехи страшные. Не уверен, что цифровой потенциометр захочет работать в таких условиях.
Кроме того, судя по размерам радиатора, блок управления на очень старой электронной базе, сейчас симисторы на такой ток в ТО-220 корпусе идут. А схема управления идет такая, как ты любишь (мне тоже такие нравятся) симистор, МК и... все :-). Ну раз у тебя двигатель, понадобится еще сетевой фильтр и резистор с конденсатором.
1  
+
-
edit
 

Serge77

модератор

Да, насос относительно старый, 85 года.

А схема управления идет такая, как ты любишь (мне тоже такие нравятся) симистор, МК и... все :-)
 


А как же обратная связь? Насос должен выдавать точный ток жидкости. Правда я не вижу в нём сейчас обратной связи. А вот на втором таком же насосе схема видимо чуть новее, там на двигателе зубчатое колесо с фотодиодом (или ещё чем-то фото-). А управление тоже ручное тем же резистором.

GOGI

координатор
★★★★
сразу надо писать, что там обратная связь есть. Правда, пока не найденная :-). С ОС регулятор это без меня, мне до сих пор кошмары снятся про то, как я в институте на ТАУ сижу.
1  
+
-
edit
 

Serge77

модератор

Как же я напишу "сразу", если я её не вижу ;^))
К двигателю идут 4 провода, больше на нём ничего не висит. Кажется по какой-то индукции бывает обратная связь. Надо будет проверить стабильность насоса, вдруг там и нет никакой обратной связи, тогда он мне не нужен. Буду работать с тем, что с колесом, на нём управление поставлю.
1 8 9 10 11 12 47

в начало страницы | новое
 
Поиск
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru