|
преобразователь 0...5v-0...5v |
|
|
|
Oct 20 2010, 04:54
|
Участник

Группа: Участник
Сообщений: 59
Регистрация: 20-10-10
Пользователь №: 60 279

|
привет друзья прошу сильно не пинать , в ацп и цап не силен ,требуется преобразователь с 0...5v на 0...5v как реализовать? надо так чтоб например при входном 1.1в а на выходе было 1.6в и.т.д очень прошу помогите новичку
|
|
|
|
|
 |
Ответов
(1 - 68)
|
Oct 20 2010, 05:15
|
Участник

Группа: Участник
Сообщений: 59
Регистрация: 20-10-10
Пользователь №: 60 279

|
тогда по порядку , есть сигнал от 0 до 5 вольт надо на выходе МК получит опят таки от 0 до 5 вольт но нелинейно
например
вход = выход 0 = 0 1 = 1.1 2 = 2 2.7 = 3 4 = 3.5
Сообщение отредактировал ARAM.S - Oct 20 2010, 05:16
|
|
|
|
|
Oct 20 2010, 05:27
|

Частый гость
 
Группа: Свой
Сообщений: 85
Регистрация: 17-12-08
Из: Украина
Пользователь №: 42 556

|
Цитата(ARAM.S @ Oct 20 2010, 09:15)  тогда по порядку , есть сигнал от 0 до 5 вольт надо на выходе МК получит опят таки от 0 до 5 вольт но нелинейно
например
вход = выход 0 = 0 1 = 1.1 2 = 2 2.7 = 3 4 = 3.5 Код на выходе АЦП будет являться адресом для памяти в которой будут зашиты коды для ЦАП. Нелинейность получите какую захотите. При разрядности АЦП и ЦАП в 8 бит. потребуется памяти всего 256 байт, можно использовать память программ МК.
|
|
|
|
|
Oct 20 2010, 05:35
|
Участник

Группа: Участник
Сообщений: 59
Регистрация: 20-10-10
Пользователь №: 60 279

|
дорогой QingTing спасибо тебе, но я совсем новичок , суть я понял но реализовать сам точно не смогу не подскажите похожи проект с схемой и прошивкой
|
|
|
|
|
Oct 20 2010, 05:41
|

Частый гость
 
Группа: Свой
Сообщений: 85
Регистрация: 17-12-08
Из: Украина
Пользователь №: 42 556

|
Цитата(ARAM.S @ Oct 20 2010, 09:35)  дорогой QingTing спасибо тебе, но я совсем новичок , суть я понял но реализовать сам точно не смогу не подскажите похожи проект с схемой и прошивкой Похожих проектов у меня нет и подобное к сожалению не встречал. Если вы будете работать с AVR и на ассемблере то могу кусок кода написать.
|
|
|
|
|
Oct 20 2010, 05:47
|
Участник

Группа: Участник
Сообщений: 59
Регистрация: 20-10-10
Пользователь №: 60 279

|
Цитата(QingTing @ Oct 20 2010, 09:41)  Похожих проектов у меня нет и подобное к сожалению не встречал. Если вы будете работать с AVR и на ассемблере то могу кусок кода написать. можно кусок кода и схемы на тини 2313?
|
|
|
|
|
Oct 20 2010, 05:53
|

Местный
  
Группа: Участник
Сообщений: 228
Регистрация: 4-06-09
Пользователь №: 49 940

|
Если на Си и если решите делать с таблицей значений (можно например и функциями описать, если аппроксимировать) то массив в памяти программ можно реализовать следующим образом Код #include <avr/pgmspace.h>
const prog_char MyArray[] PROGMEM = {0x11, 0x12, 0x23, 0x53, 0xC2 .......}
|
|
|
|
|
Oct 20 2010, 06:07
|
Участник

Группа: Участник
Сообщений: 59
Регистрация: 20-10-10
Пользователь №: 60 279

|
увы знание не хватает, друзья а заказ на такой проект не возьмете ? и сколько будет это стоит ?
|
|
|
|
|
Oct 20 2010, 06:32
|

Частый гость
 
Группа: Свой
Сообщений: 85
Регистрация: 17-12-08
Из: Украина
Пользователь №: 42 556

|
Цитата(ARAM.S @ Oct 20 2010, 10:07)  увы знание не хватает, друзья а заказ на такой проект не возьмете ? и сколько будет это стоит ? Вы откуда? В смысле страна, город?
|
|
|
|
|
Oct 20 2010, 06:57
|
Участник

Группа: Участник
Сообщений: 59
Регистрация: 20-10-10
Пользователь №: 60 279

|
Армения Ереван, плато через банк, например moneygram
|
|
|
|
|
Oct 20 2010, 07:06
|

Частый гость
 
Группа: Свой
Сообщений: 85
Регистрация: 17-12-08
Из: Украина
Пользователь №: 42 556

|
Цитата(ARAM.S @ Oct 20 2010, 10:57)  Армения Ереван, плато через банк, например moneygram Далеко! Если будете делать сами охотно помогу, чем смогу. Просто такие вещи дистанционно сложно делать.
|
|
|
|
|
Oct 20 2010, 09:03
|
Участник

Группа: Участник
Сообщений: 59
Регистрация: 20-10-10
Пользователь №: 60 279

|
Цитата(QingTing @ Oct 20 2010, 11:06)  Далеко! Если будете делать сами охотно помогу, чем смогу. Просто такие вещи дистанционно сложно делать. ок. а на каком МК лучше это делать ? тини 2313 подойдет?
|
|
|
|
|
Oct 20 2010, 10:19
|

Частый гость
 
Группа: Свой
Сообщений: 85
Регистрация: 17-12-08
Из: Украина
Пользователь №: 42 556

|
Цитата(ARAM.S @ Oct 20 2010, 13:03)  ок. а на каком МК лучше это делать ? тини 2313 подойдет? Подойдет, у него 2К памяти программ и 128 байт ОЗУ, этого для данной задачи вполне достаточно. Необходимо выбрать АЦП и ЦАП. ЦАП можно взять AD5310, АЦП AD7477. Можно сделать еще проще взять МК Atmega8 у него есть встроенный АЦП, а ЦАП сделать на R2R матрице.
|
|
|
|
|
Oct 20 2010, 13:15
|
Участник

Группа: Участник
Сообщений: 59
Регистрация: 20-10-10
Пользователь №: 60 279

|
вот нашел похожий проект, схема+прошивка+исходник , не подскажите будет ли оно работать, и что менять в исходнике , чтобы получит такую линейность который мне нужен
Прикрепленные файлы
pic.rar ( 58.04 килобайт )
Кол-во скачиваний: 64
|
|
|
|
|
Oct 20 2010, 15:15
|
Участник

Группа: Участник
Сообщений: 59
Регистрация: 20-10-10
Пользователь №: 60 279

|
Цитата(rezident @ Oct 20 2010, 18:41)  Еще раз спрашиваю, нелинейность описывается аналитически или ее форма есть результат экспериментальных данных? Эти данные уже известны? Графический вид нелинейности можно увидеть? С какой точностью нужно повторить преобразование? С какой скоростью или с каким временным разрешением нужно выдавать результат преобразования? Какое выходное сопротивление источника сигнала? Какой выходной ток от преобразователя требуется? Ответы на вопросы дадут представление о требуемых ресурсах и подвигнут на более правильный выбор компонентов. да данные уже есть, но не в этом суть , надо с разными датчиками иметь разную линейность, то есть возможность перепрошить плату, в датчике оу , сопротивление не знаю, ток максимум 15 ма
|
|
|
|
|
Oct 21 2010, 09:01
|
Гуру
     
Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847

|
Цитата(ARAM.S @ Oct 20 2010, 17:15)  вот нашел похожий проект, схема+прошивка+исходник , не подскажите будет ли оно работать, Будет, но делать будет не то, что вам надо. Цитата и что менять в исходнике , Все менять Какие частоты у вас на входе? Какая нужна точность?
|
|
|
|
|
Oct 21 2010, 10:42
|
Участник

Группа: Участник
Сообщений: 59
Регистрация: 20-10-10
Пользователь №: 60 279

|
Цитата(XVR @ Oct 21 2010, 13:01)  Будет, но делать будет не то, что вам надо. Все менять Какие частоты у вас на входе? Какая нужна точность? частота максимум 3Гц, погрешность максимум +/- 100мв Цитата(ILYAUL @ Oct 21 2010, 13:30)  Вы главное нас не путайте, мы сами запутаемся
У Вас есть N датчиков с которых Вы сняли их характеристики и так как идеальных датчиков нет , то Вы компенсируете их нелинейность добавляя константу для каждого датчика свою. Так? Что, в итоге , должно сделать Ваше устройство? Что у него на выходе? на выходе Эбу машины
|
|
|
|
|
Oct 21 2010, 10:51
|
Гуру
     
Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847

|
Цитата частота максимум 3Гц, погрешность максимум +/- 100мв В таком случае вам подойдет любой МК с АЦП (8ми битов хватит) и ШИМом (8 битов тоже хватит). На выходе фильтр на RC цепочки и повторитель на ОУ. Массив констант можно зашить прямо в программу и заливать результирующую прошивку (для каждого девайса она будет своя) в МК. МК желательно 5ти вольтовый Если будет несколько каналов АЦП и несколько ШИМов можно сделать многоканальный девайс
|
|
|
|
|
Oct 21 2010, 13:54
|
Участник

Группа: Участник
Сообщений: 59
Регистрация: 20-10-10
Пользователь №: 60 279

|
Цитата(XVR @ Oct 21 2010, 14:51)  В таком случае вам подойдет любой МК с АЦП (8ми битов хватит) и ШИМом (8 битов тоже хватит). На выходе фильтр на RC цепочки и повторитель на ОУ. Массив констант можно зашить прямо в программу и заливать результирующую прошивку (для каждого девайса она будет своя) в МК. МК желательно 5ти вольтовый
Если будет несколько каналов АЦП и несколько ШИМов можно сделать многоканальный девайс одного канала вполне хватит, ели пропашу не поможете схемой паршивкой очень надо  , в замен готов помочь с любимы вопросами связной с машинами , диагностика , схема адаптеров+прошивки софт для самостоятельной диагностики
|
|
|
|
|
Oct 21 2010, 14:18
|
Участник

Группа: Участник
Сообщений: 59
Регистрация: 20-10-10
Пользователь №: 60 279

|
Цитата(DpInRock @ Oct 21 2010, 18:02)  Огласите марку машины, пожалста. Госномер, цвет. Место дислокации. Предупрежден - значит вооружен. причом тут это ? Opel Vectra B
|
|
|
|
|
Oct 21 2010, 15:24
|
Гуру
     
Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847

|
Цитата(ARAM.S @ Oct 21 2010, 17:54)  одного канала вполне хватит, ели пропашу не поможете схемой паршивкой очень надо  Если нужна готовая 'паршивка' - то это в раздел 'Предлагаю работу'. Даже если совсем все 'пропашете' Выбрать МК поможем - Tiny13 Tiny44 (*) Tiny24 Tiny26 Tiny861 (*) Tiny461 (*) Tiny261 ATMega16/32/64 (*) AT90PWM??? (*) и 13 штук у Microchip'а: PIC12F615 PIC12F617 PIC12F683 PIC12F1822 (*) PIC16F616 PIC16F716 PIC16F684 PIC16F785 PIC16F818 PIC16F819 PIC16F72 PIC18F2221 (*) PIC18F2220 (*) Выбирайте PS. Звездочками помечены МК в которых таблицу коррекции можно хранить в EEPROM'и и оперативно изменять прямо в устройстве (без программатора)
|
|
|
|
|
Oct 21 2010, 15:32
|
Участник

Группа: Участник
Сообщений: 59
Регистрация: 20-10-10
Пользователь №: 60 279

|
Цитата(XVR @ Oct 21 2010, 19:24)  Если нужна готовая 'паршивка' - то это в раздел 'Предлагаю работу'. Даже если совсем все 'пропашете' Выбрать МК поможем - Tiny13 Tiny44 (*) Tiny24 Tiny26 Tiny861 (*) Tiny461 (*) Tiny261 ATMega16/32/64 (*) AT90PWM??? (*) и 13 штук у Microchip'а: PIC12F615 PIC12F617 PIC12F683 PIC12F1822 (*) PIC16F616 PIC16F716 PIC16F684 PIC16F785 PIC16F818 PIC16F819 PIC16F72 PIC18F2221 (*) PIC18F2220 (*) Выбирайте PS. Звездочками помечены МК в которых таблицу коррекции можно хранить в EEPROM'и и оперативно изменять прямо в устройстве (без программатора) дорогой XVR вы возметесь за данную работу если попрашу ? конечно за не бесплатно!
|
|
|
|
|
Oct 22 2010, 03:46
|
Участник

Группа: Участник
Сообщений: 59
Регистрация: 20-10-10
Пользователь №: 60 279

|
Цитата(XVR @ Oct 21 2010, 22:52)  Я очень 'дорогой' У меня тут ремонт машины, тыщ так на 60 рублей наклевывается, оплатите?  извините но это для меня очень дорого ....
|
|
|
|
|
Oct 22 2010, 18:53
|
Участник

Группа: Участник
Сообщений: 59
Регистрация: 20-10-10
Пользователь №: 60 279

|
Цитата(Herz @ Oct 22 2010, 11:04)  Дорогой ARAM.S! Судя по вопросам, знаний в электронике и программировании у Вас совсем мало. Тут и рады бы помочь, но готового решения предложить не получится. Или наберитесь терпения и продвигайтесь по ступенькам, изучая предмет по книгам и интернету. Задавая более осмысленные вопросы на форуме. Полезно для самосовершенствования, но времени займёт немало. Или поищите у себя в округе специалиста, неужели в Ереване электронщиков нет? Иначе получится: пойди туда, не знаю куда, принеси то, не знаю что. насчет знаний вы правы я электроникой занимался 10 лет назад , сейчас я сетевой администратор Linux и диагност по машинам, паять могу ,платы травит собирать , прошит МК тоже, по этому тут спросил может поможете потом мне на русском очень трудно правильно излагать свой мысли , я пишу транслитом кстати я на форуме nag.ru многим помогал готовыми решениями не думал что просит что то готовое не хорошо извините друзья если что не то.
Сообщение отредактировал ARAM.S - Oct 22 2010, 19:08
|
|
|
|
|
Oct 22 2010, 19:43
|

Гуру
     
Группа: Модераторы
Сообщений: 10 983
Регистрация: 23-11-05
Пользователь №: 11 287

|
Цитата(ARAM.S @ Oct 22 2010, 20:53)  кстати я на форуме nag.ru многим помогал готовыми решениями не думал что просит что то готовое не хорошо извините друзья если что не то. Дело совсем не в том, что нехорошо. Если есть готовое, обычно поделиться не жалко. Ну, за исключением каких-то дорогостоящих коллективных проектов. А просто то, что именно Вам надо, в готовом виде вряд ли найдёте. И так, чтобы подправить что-то по-лёгкому (прошивку там какую), не получится, скорее всего. Легче и надёжнее сделать всё самому. Помогать вроде никто не отказывается. Зато опыт бесценный приобретается. Хотя, если бы Вы описали всю свою задачу более подробно, может и выяснилось бы, что тривиальные решения уже существуют.
|
|
|
|
|
Oct 22 2010, 20:04
|

Местный
  
Группа: Свой
Сообщений: 211
Регистрация: 6-08-07
Из: Приднестровье, Тирасполь
Пользователь №: 29 581

|
Когда то писал похожую вещь. Под таблицу переделать несложно... Если составите сами зависимость выходного от входного. Посмотрите здесь... Если требуется что-то подобное, могу отыскать исходник....
--------------------
Любой, заслуживающий внимания, опыт приобретается себе в убыток...
|
|
|
|
|
Oct 23 2010, 18:43
|
Участник

Группа: Участник
Сообщений: 59
Регистрация: 20-10-10
Пользователь №: 60 279

|
Цитата(Goodefine @ Oct 22 2010, 23:04)  Когда то писал похожую вещь. Под таблицу переделать несложно... Если составите сами зависимость выходного от входного. Посмотрите здесь... Если требуется что-то подобное, могу отыскать исходник.... по моему то, что надо а какая там разрядность сколько точек можно получить в диапазоне 0-5 в? таблица у меня имеется , а в исходнике подскажите какие значение отвечают за входное и какие за выходное напряжение ? и можно будет получить любое линейность изменяя только код?
|
|
|
|
|
Oct 23 2010, 19:12
|

Местный
  
Группа: Свой
Сообщений: 211
Регистрация: 6-08-07
Из: Приднестровье, Тирасполь
Пользователь №: 29 581

|
Цитата(ARAM.S @ Oct 23 2010, 21:43)  ..а какая там разрядность сколько точек можно получить в диапазоне 0-5 в? Хотите 256, а хотите и 1024 (С 10-и битным ШИМом)... Таблицу то Вам рисовать... Цитата(ARAM.S @ Oct 23 2010, 21:43)  ... а в исходнике подскажите какие значение отвечают за входное и какие за выходное напряжение ? и можно будет получить любое линейность изменяя только код? Конечно. Изменили, перекомпилировали, прошили... Таблица будет в виде Код flash unsigned char[256] //для 8-ми бит { 0, //0 1, //1 3, //2 ... 231 //255 } Первый столбец - выходное напряжение (в относительных единицах), второй - входное (указано ТОЛЬКО для наглядности - идет подряд)... Ее Вам придется составлять самому... И все..
--------------------
Любой, заслуживающий внимания, опыт приобретается себе в убыток...
|
|
|
|
|
Oct 24 2010, 06:20
|
Участник

Группа: Участник
Сообщений: 59
Регистрация: 20-10-10
Пользователь №: 60 279

|
Цитата(Goodefine @ Oct 23 2010, 22:12)  Хотите 256, а хотите и 1024 (С 10-и битным ШИМом)... Таблицу то Вам рисовать... Конечно. Изменили, перекомпилировали, прошили... Таблица будет в виде Код flash unsigned char[256] //для 8-ми бит { 0, //0 1, //1 3, //2 ... 231 //255 } Первый столбец - выходное напряжение (в относительных единицах), второй - входное (указано ТОЛЬКО для наглядности - идет подряд)... Ее Вам придется составлять самому... И все.. ок я все понял па моему разберусь , а исходник если очень пропашу дадите ?
|
|
|
|
|
Oct 25 2010, 17:42
|
Участник

Группа: Участник
Сообщений: 59
Регистрация: 20-10-10
Пользователь №: 60 279

|
Цитата(ARAM.S @ Oct 24 2010, 09:20)  ок я все понял па моему разберусь , а исходник если очень пропашу дадите ? я пытался конвертировать hex в asm но толку никакой не нашел там что то похожее что вы выше показали
Сообщение отредактировал ARAM.S - Oct 25 2010, 18:09
Прикрепленные файлы
upss.rar ( 781 байт )
Кол-во скачиваний: 34
|
|
|
|
|
Oct 25 2010, 17:53
|
Гуру
     
Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882

|
Цитата(ARAM.S @ Oct 25 2010, 23:42)  не хотите да наверное дать исходник ? Уважаемый, ARAM.S. На форуме ваших должников (надеюсь) нет, т.е. никто вам ничего не должен. Те люди, которые могут и желают вам помочь советами, сделают для вас это безвозмездно. Но за вас работу бесплатно никто сделает не будет. И пока вы сами не возьметесь за ее выполнение, то работа с месте не сдвинется. Начните делать и у вас появятся конкретные, а не абстрактные вопросы. Пускай даже если они поначалу будет наивными.
|
|
|
|
|
Oct 25 2010, 18:07
|
Участник

Группа: Участник
Сообщений: 59
Регистрация: 20-10-10
Пользователь №: 60 279

|
Цитата(rezident @ Oct 25 2010, 20:53)  Уважаемый, ARAM.S. На форуме ваших должников (надеюсь) нет, т.е. никто вам ничего не должен. Те люди, которые могут и желают вам помочь советами, сделают для вас это безвозмездно. Но за вас работу бесплатно никто сделает не будет. И пока вы сами не возьметесь за ее выполнение, то работа с месте не сдвинется. Начните делать и у вас появятся конкретные, а не абстрактные вопросы. Пускай даже если они поначалу будет наивными. извините ради Бога, я не то имел введу , просто автор сказал что даст исходник ....я по этому и спросил . просто одного не понимаю зачем надо било мне сбивать с пути я сам нашел похожий проект , а форумчане говорили не то , соврал я и все заработало ! вот проект может кому пригодится а Goodefine все равно огромное спасибо благодаря ему я многое понял
Сообщение отредактировал ARAM.S - Oct 25 2010, 18:08
Прикрепленные файлы
pic.rar ( 58.04 килобайт )
Кол-во скачиваний: 50
|
|
|
|
|
Oct 25 2010, 19:26
|

Местный
  
Группа: Свой
Сообщений: 211
Регистрация: 6-08-07
Из: Приднестровье, Тирасполь
Пользователь №: 29 581

|
Цитата(ARAM.S @ Oct 25 2010, 21:07)  ..просто автор сказал что даст исходник ....я по этому и спросил . просто одного не понимаю зачем надо било мне сбивать с пути... Ну а что Вам этот исходник дал бы в чистом виде? С НЕтабличной реализацией... Я ждал, когда же Вы выложите, наконец, свою зависимость в указанном виде, дабы соединить ее с исходником. В таком виде это было бы полезно. Кроме того, Вы не указали, какую таблицу все таки надо, 256 или 1024, на каком камне остановится.. Не сказали скоростные параметры системы - насколько быстро нужно отслеживать изменение входного сигнала и с какой точностью... Чтобы вы делали с ТЕМ демо исходником? CODE /***************************************************** CodeWizardAVR V2.03.4 Standard Chip type : ATtiny25 Clock frequency : 1,000000 MHz Memory model : Tiny External RAM size : 0 Data Stack size : 32 *****************************************************/ #include <tiny25.h> #include <delay.h>
#define ADC_VREF_TYPE 0xD0
unsigned int read_adc(unsigned char adc_input) { ADMUX=adc_input | (ADC_VREF_TYPE & 0xff); delay_us(10); ADCSRA|=0x40; while ((ADCSRA & 0x10)==0); ADCSRA|=0x10; return ADCW>>2; }
void main(void) { unsigned char v; // Crystal Oscillator division factor: 1 #pragma optsize- CLKPR=0x80; CLKPR=0x00; #ifdef _OPTIMIZE_SIZE_ #pragma optsize+ #endif
PORTB=0x00; DDRB=0x02;
// Timer/Counter 0 initialization // Clock source: System Clock // Clock value: 1000,000 kHz // Mode: Fast PWM top=FFh // OC0A output: Disconnected // OC0B output: Non-Inverted PWM TCCR0A=0x23; TCCR0B=0x01; TCNT0=0x00; OCR0A=0x00; OCR0B=0x155;
// Analog Comparator: Off ACSR=0x80; ADCSRB=0x00;
// ADC initialization // ADC Clock frequency: 125,000 kHz // ADC Voltage Reference: 2.56V, cap. on AREF // ADC Bipolar Input Mode: Off // ADC Reverse Input Polarity: Off // ADC Auto Trigger Source: None // Digital input buffers on ADC0: On, ADC1: On, ADC2: On, ADC3: On DIDR0&=0x03; DIDR0|=0x00; ADMUX=ADC_VREF_TYPE & 0xff; ADCSRA=0x83; ADCSRB&=0x5F;
while (1) { v=read_adc(1); if(v<0xDE) OCR0B=v-1; else{ if(v>0xFE) OCR0B=v-25; else OCR0B=0xD6; } delay_ms(10); } }
Легче от такого мега-исходника? Сами придти к такому не могли, с пользой для дела?...
--------------------
Любой, заслуживающий внимания, опыт приобретается себе в убыток...
|
|
|
|
|
Oct 26 2010, 00:43
|
Участник

Группа: Участник
Сообщений: 59
Регистрация: 20-10-10
Пользователь №: 60 279

|
Цитата(Goodefine @ Oct 25 2010, 23:26)  Ну а что Вам этот исходник дал бы в чистом виде? С НЕтабличной реализацией... Я ждал, когда же Вы выложите, наконец, свою зависимость в указанном виде, дабы соединить ее с исходником. В таком виде это было бы полезно. Кроме того, Вы не указали, какую таблицу все таки надо, 256 или 1024, на каком камне остановится.. Не сказали скоростные параметры системы - насколько быстро нужно отслеживать изменение входного сигнала и с какой точностью... Чтобы вы делали с ТЕМ демо исходником? CODE /***************************************************** CodeWizardAVR V2.03.4 Standard Chip type : ATtiny25 Clock frequency : 1,000000 MHz Memory model : Tiny External RAM size : 0 Data Stack size : 32 *****************************************************/ #include <tiny25.h> #include <delay.h>
#define ADC_VREF_TYPE 0xD0
unsigned int read_adc(unsigned char adc_input) { ADMUX=adc_input | (ADC_VREF_TYPE & 0xff); delay_us(10); ADCSRA|=0x40; while ((ADCSRA & 0x10)==0); ADCSRA|=0x10; return ADCW>>2; }
void main(void) { unsigned char v; // Crystal Oscillator division factor: 1 #pragma optsize- CLKPR=0x80; CLKPR=0x00; #ifdef _OPTIMIZE_SIZE_ #pragma optsize+ #endif
PORTB=0x00; DDRB=0x02;
// Timer/Counter 0 initialization // Clock source: System Clock // Clock value: 1000,000 kHz // Mode: Fast PWM top=FFh // OC0A output: Disconnected // OC0B output: Non-Inverted PWM TCCR0A=0x23; TCCR0B=0x01; TCNT0=0x00; OCR0A=0x00; OCR0B=0x155;
// Analog Comparator: Off ACSR=0x80; ADCSRB=0x00;
// ADC initialization // ADC Clock frequency: 125,000 kHz // ADC Voltage Reference: 2.56V, cap. on AREF // ADC Bipolar Input Mode: Off // ADC Reverse Input Polarity: Off // ADC Auto Trigger Source: None // Digital input buffers on ADC0: On, ADC1: On, ADC2: On, ADC3: On DIDR0&=0x03; DIDR0|=0x00; ADMUX=ADC_VREF_TYPE & 0xff; ADCSRA=0x83; ADCSRB&=0x5F;
while (1) { v=read_adc(1); if(v<0xDE) OCR0B=v-1; else{ if(v>0xFE) OCR0B=v-25; else OCR0B=0xD6; } delay_ms(10); } }
Легче от такого мега-исходника? Сами придти к такому не могли, с пользой для дела?... Вы правы с НЕ табличной реализацией мне нечего бы не дал , нужен 256, скорость отслеживания максимум 10 герц я просто думал что вы дадите исходник с табличной реализацией 5-6 строк как показали выше а дальше я сам бы продолжил , пока экспериментирую с pic- ом
|
|
|
|
|
Oct 26 2010, 20:34
|

Местный
  
Группа: Свой
Сообщений: 211
Регистрация: 6-08-07
Из: Приднестровье, Тирасполь
Пользователь №: 29 581

|
Цитата(ARAM.S @ Oct 26 2010, 03:43)  ...я просто думал что вы дадите исходник с табличной реализацией 5-6 строк как показали выше а дальше .... А 256 значений Вы предлагаете мне самому придумать?..
--------------------
Любой, заслуживающий внимания, опыт приобретается себе в убыток...
|
|
|
|
|
Oct 27 2010, 16:11
|
Участник

Группа: Участник
Сообщений: 59
Регистрация: 20-10-10
Пользователь №: 60 279

|
Цитата(Goodefine @ Oct 27 2010, 00:34)  А 256 значений Вы предлагаете мне самому придумать?.. нет конечно,  я же сказал 5-6 строк для примера приведите ,я сам продолжу таблицы разные для разных датчиков, мне нужен всего лишь пример
|
|
|
|
|
Oct 27 2010, 18:22
|

Местный
  
Группа: Свой
Сообщений: 211
Регистрация: 6-08-07
Из: Приднестровье, Тирасполь
Пользователь №: 29 581

|
Цитата(ARAM.S @ Oct 27 2010, 19:11)  ... я же сказал 5-6 строк для примера приведите ,я сам продолжу.. Дык мне ж проверить надо!  Или потом еще три страницы выяснять будете почему у Вас не работает?... Контроллер хоть какой?
--------------------
Любой, заслуживающий внимания, опыт приобретается себе в убыток...
|
|
|
|
|
Oct 28 2010, 07:09
|
Участник

Группа: Участник
Сообщений: 59
Регистрация: 20-10-10
Пользователь №: 60 279

|
Цитата(Goodefine @ Oct 27 2010, 22:22)  Дык мне ж проверить надо!  Или потом еще три страницы выяснять будете почему у Вас не работает?... Контроллер хоть какой? ок, а таблицу сделать на этом примере ? ------------------------------------------------------ flash unsigned char[256] //для 8-ми бит { 0, //0 1, //1 3, //2 ... 231 //255 } ------------------------------------------------------- а контроллер attiny2313
|
|
|
|
|
Oct 28 2010, 07:38
|
Участник

Группа: Участник
Сообщений: 59
Регистрация: 20-10-10
Пользователь №: 60 279

|
Цитата(XVR @ Oct 28 2010, 11:26)  У него нет встроенного АЦП, будете ставить внешний? а в attiny25 АЦП есть ?
|
|
|
|
|
Oct 28 2010, 08:24
|
Участник

Группа: Участник
Сообщений: 59
Регистрация: 20-10-10
Пользователь №: 60 279

|
Цитата(XVR @ Oct 28 2010, 12:11)  Нет. Я вам тут давал список МК с АЦП и ШИМом я хочу делать по схеме Goodefine, он тут все описал, все работает
|
|
|
|
|
Oct 28 2010, 15:12
|

Местный
  
Группа: Свой
Сообщений: 211
Регистрация: 6-08-07
Из: Приднестровье, Тирасполь
Пользователь №: 29 581

|
Цитата(ARAM.S @ Oct 28 2010, 10:09)  а таблицу сделать на этом примере?.. На этом...
--------------------
Любой, заслуживающий внимания, опыт приобретается себе в убыток...
|
|
|
|
|
Nov 23 2010, 14:03
|
Частый гость
 
Группа: Свой
Сообщений: 151
Регистрация: 11-01-06
Из: Украина Ровно
Пользователь №: 13 066

|
Цитата(ARAM.S @ Oct 20 2010, 07:54)  привет друзья прошу сильно не пинать , в ацп и цап не силен ,требуется преобразователь с 0...5v на 0...5v как реализовать? надо так чтоб например при входном 1.1в а на выходе было 1.6в и.т.д очень прошу помогите новичку  Е-мае!!! Год назад друг-авторемонтер попросил сделать именно то, что просит топикстартер. Причем ОЧЕНЬ СРОЧНО. В то время у меня было несколько свободного времени. Взялся и за около месяца слепил. Могу отдать в хорошие руки. Только не пинайте, поскольку все делалось слишком срочно. Сопровождать проект не буду. Нету свободного времени. Что это? Примочка на контроллере со входом(0..5) и выходом(0..5). На компе запускается программа, которая управляет примочкой. Функция соответствия выхода входу строится мышкой с возможностью сохранения в файл, загрузки из файла, графического редактирования, выгрузки в примочку, реалтайм-наблюдения за входом и выходом... Примочка подключается к компу через К-line адаптер. Выгруженная в примочку функция преобразования сохраняется в ЕЕПРОМ. Т.е. примочка выполняет свою функцию даже без подключения к компу. Поскольку АТМЕГА8 не очень дешева, то слеплена программулинка, которая по сохраненной функции преобразования генерирует файл прошивки под более дешевый контроллер АТТINY13.(уже без возможности внешнего ею управления). Короче, вот:
CONVERTER.rar ( 3.91 мегабайт )
Кол-во скачиваний: 2624
|
|
|
|
|
Nov 26 2010, 16:35
|
Участник

Группа: Участник
Сообщений: 59
Регистрация: 20-10-10
Пользователь №: 60 279

|
Цитата(aleksey_g @ Nov 23 2010, 18:03)  Е-мае!!! Год назад друг-авторемонтер попросил сделать именно то, что просит топикстартер. Причем ОЧЕНЬ СРОЧНО. В то время у меня было несколько свободного времени. Взялся и за около месяца слепил. Могу отдать в хорошие руки. Только не пинайте, поскольку все делалось слишком срочно. Сопровождать проект не буду. Нету свободного времени. Что это? Примочка на контроллере со входом(0..5) и выходом(0..5). На компе запускается программа, которая управляет примочкой. Функция соответствия выхода входу строится мышкой с возможностью сохранения в файл, загрузки из файла, графического редактирования, выгрузки в примочку, реалтайм-наблюдения за входом и выходом... Примочка подключается к компу через К-line адаптер. Выгруженная в примочку функция преобразования сохраняется в ЕЕПРОМ. Т.е. примочка выполняет свою функцию даже без подключения к компу. Поскольку АТМЕГА8 не очень дешева, то слеплена программулинка, которая по сохраненной функции преобразования генерирует файл прошивки под более дешевый контроллер АТТINY13.(уже без возможности внешнего ею управления). Короче, вот:
CONVERTER.rar ( 3.91 мегабайт )
Кол-во скачиваний: 2624Спасибо дорогой aleksey_g то что надо, уже собираю о результатах тут напишу , еще раз СПАСИБО
|
|
|
|
|
Nov 26 2010, 18:31
|
Частый гость
 
Группа: Свой
Сообщений: 151
Регистрация: 11-01-06
Из: Украина Ровно
Пользователь №: 13 066

|
Пожалуйста! Буду очень рад, если мой труд не пропал даром.
Подсказка: Если не особо нужна оперативная калибровка и Вы ТОЧНО знаете, какое напряжение нужно сопоставить какому, то можете собирать тот, который на ТИНИ13. Там уже есть исходник под ИАР. Нужно только ручками поменять таблицу замены. В таблице измеренное напряжение (в отсчетах АЦП) соответствует порядковому номеру числа таблицы. А то, что будет на выходе соответствует величине (в отсчетах АЦП) соответствующего числа в таблице.
Или же сформировать табличку моим графическим редактором, сохранить ее в файл, скормить ее с_code.exe и получить правильный исходник с нужной таблицей преобразования. P. S. В редакторе для графического изменения функции даблкликом поставьте левую(первым даблкликом) и правую(вторым даблкликом) границы редактирования. Метод деформации выберите пиктограмками с правой стороны. Только сейчас не помню, как изменить крайние левые и правые точки. Нужно вспоминать. По крайней мере табличным способом(пиктограмка с табличкой!) возможно сделать все, что хотите.
|
|
|
|
|
Nov 26 2010, 19:22
|
Участник

Группа: Участник
Сообщений: 59
Регистрация: 20-10-10
Пользователь №: 60 279

|
Цитата(aleksey_g @ Nov 26 2010, 22:31)  Пожалуйста! Буду очень рад, если мой труд не пропал даром.
Подсказка: Если не особо нужна оперативная калибровка и Вы ТОЧНО знаете, какое напряжение нужно сопоставить какому, то можете собирать тот, который на ТИНИ13. Там уже есть исходник под ИАР. Нужно только ручками поменять таблицу замены. В таблице измеренное напряжение (в отсчетах АЦП) соответствует порядковому номеру числа таблицы. А то, что будет на выходе соответствует величине (в отсчетах АЦП) соответствующего числа в таблице. ок спасибо еще раз ! утром будет готов протестирую
Сообщение отредактировал ARAM.S - Nov 26 2010, 19:31
|
|
|
|
|
Nov 26 2010, 19:31
|
Частый гость
 
Группа: Свой
Сообщений: 151
Регистрация: 11-01-06
Из: Украина Ровно
Пользователь №: 13 066

|
Цитата(ARAM.S @ Nov 26 2010, 21:22)  а с помощью графической утилити нельзя создать исходник для тини 13 так боле удобно будет Опередили. Пока Вы задавали вопрос, я уже писал на него ответ, редактируя свое сообщение на предыдущей странице. И еще один PS: В графике использован Дельфийский Tchart. Можно увеличивать масштаб отображения выделяя нужный фрагмент зажав левую кнопку мыши, выделяя его (таща мышу) вправо вниз. Сбросить увеличение можно таким же образом, но выделяя снизу влево. Передвигать область увеличенного отображения нужно зажав правую кнопку мыша.
|
|
|
|
|
Nov 26 2010, 19:54
|
Участник

Группа: Участник
Сообщений: 59
Регистрация: 20-10-10
Пользователь №: 60 279

|
вы настоящий гуру
Сообщение отредактировал ARAM.S - Nov 27 2010, 05:02
|
|
|
|
|
May 10 2013, 07:59
|
Группа: Новичок
Сообщений: 3
Регистрация: 9-05-13
Пользователь №: 76 786

|
Здравствуйте, понимаю что тема старая , но может кто помнит , какие настройки в IAR под мини конвертер на atini 13 , а то мучаюсь уже пару недель -результатов ноль. При компиляции исходника выдает 15 ошибок, как бороться не знаю.( я начинающий, если можно на пальцах)
|
|
|
|
|
May 15 2013, 17:35
|
Частый гость
 
Группа: Участник
Сообщений: 182
Регистрация: 14-09-10
Из: Уфа
Пользователь №: 59 479

|
Попробуйте порт под CodeVision 1.25.9. Программатор, надеюсь, в наличии имеется???
Прикрепленные файлы
conv.rar ( 26.37 килобайт )
Кол-во скачиваний: 50
|
|
|
|
|
May 16 2013, 10:10
|
Группа: Новичок
Сообщений: 3
Регистрация: 9-05-13
Пользователь №: 76 786

|
Добрый день. Вот спасибо! CodeVision у меня установлен, с программатором проблем нет, проблема с головой. Таблицу перепишу под свой датчик и проверю. Огромное спасибо , очень выручили!
|
|
|
|
|
May 19 2013, 07:15
|
Группа: Новичок
Сообщений: 3
Регистрация: 9-05-13
Пользователь №: 76 786

|
Здравствуйте. Проверил в железе, все работает, еще раз спасибо.
|
|
|
|
|
Sep 24 2018, 16:26
|
Группа: Новичок
Сообщений: 1
Регистрация: 24-09-18
Пользователь №: 107 689

|
Цитата(андрей пингвин @ May 19 2013, 08:15)  Здравствуйте. Проверил в железе, все работает, еще раз спасибо. Здравствуйте!!!!! А можете печаткой поделиться,??? Старый bmw e34, хочется смесь регулировать без сто, себе, никакой коммерции...
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|