Перейти к содержанию

Еще Раз Про Термометр


my504

Рекомендуемые сообщения

my 504:

Прошу ОГРОМНОЕ прощение за беспокойство :unsure: ,с проблемой справился.

Всё дело в моих корявых руках,прошивка тут совсем НЕПРИЧОМ :D ,всё дело в делителях в базах КТ315,поставил на 150 Ом,и ВСЁ!,прибор ожил,моргание исчезло. Теперь наслаждюсь спокойной работой прибора :D , БОЛЬШОЕ СПАСИБО :) .

Вот собсно мой вариант:

post-47061-0-24280300-1316560755_thumb.jpg

post-47061-0-43973900-1316560775_thumb.jpg

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

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

  • Ответов 199
  • Создана
  • Последний ответ

Топ авторов темы

Топ авторов темы

Изображения в теме

бедные транзисторы, если это были КТ315-е !!! без резисторы в базе??? там надо больше для биполярных, 1..5кОм. На схеме-то нарисованы полевики...

Учение - изучение правил. Опыт - изучение исключений.

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

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

  • 3 месяца спустя...

Особенности хранения литиевых аккумуляторов и батареек

Потеря емкости аккумулятора напрямую зависит от условий хранения и эксплуатации. При неправильном хранении даже самый лучший литиевый источник тока с превосходными характеристиками может не оправдать ожиданий. Технология, основанная на рекомендациях таких известных производителей литиевых источников тока, как компании FANSO и EVE Energy, поможет организовать правильный процесс хранения батареек и аккумуляторов. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Переделал под 630 с ОА попробуи этот 16f630_termo.rar, да транзисторы придется заменить на другую проводимость, п-н-п.

А еще исправленный исходник впридачу.16f630_termo_ASM.rar

Здраствуйте, можно выложить прошивку под датчик ds1820. на собранной прошивке пишет 00С. без датчика вообще индикатор не светиться. в протеусе с датчиком ds18b20 берет температуру только при запуске. может не понимает паразитное питание.

проект в протеусеtermometr pic16f630.rar

Изменено пользователем sergromn2005
Ссылка на комментарий
Поделиться на другие сайты

  • 1 месяц спустя...

Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов

 Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Прив! Ура программатор работает .Я успешно прошил пик16ф630 ! Теперь осталось спаять схему . Вопрос : можно ли использовать или вернее будет ли работать схема , если использовать 2 индикатора вместо трёх ( 13 ножка никуда не выводит и просто болтается , никуда не подключается ) ? Индикатор у меня с общим анодом - поэтому придётся поменять транзики на пнп - в схеме эмиттер(как бы ) биполярного транзика подключён к земле , то есть к минусу , а в моём случае наверно к плюсу или как ? Как закинуть сюда картинку , чтобы показать свои труды?

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

Переделал под 630 с ОА попробуи этот 16f630_termo.rar, да транзисторы придется заменить на другую проводимость, п-н-п.

А еще исправленный исходник впридачу.16f630_termo_ASM.rar

Здраствуйте, можно выложить прошивку под датчик ds1820. на собранной прошивке пишет 00С. без датчика вообще индикатор не светиться. в протеусе с датчиком ds18b20 берет температуру только при запуске. может не понимает паразитное питание.

проект в протеусеtermometr pic16f630.rar

Я решил тоже проверить =). Наверно из-за прошивки не работает . В реале светодиоды гарят ! Тока не то показывают .

12.rar

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

А вот и мои труды . Качество не ахти , но если чё смогу скинуть рисунок с лэй аута 5 , плюс отсканировать смд резики с дорожками.0da31585c86f.jpg

9a50ad5d8568.jpg

f3625d420ad5.jpg

http://natahaus.ifolder.ru/28642379 - видео работы термометра ( пароль к архиву "27" ).

Изменено пользователем heruich
Ссылка на комментарий
Поделиться на другие сайты

heruich у тебя на каком дотчике работает схема.

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

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

Попробовал прошивку на 630 с ОА, не работает. Датчик DS18B20, на индикаторе 00С и больше никаких движений. Кто-нибудь кроме меня пробовал прошивку от Andrey_Ch8, как результаты?

Изменено пользователем Stasjuk
Ссылка на комментарий
Поделиться на другие сайты

Попробовал прошивку на 630 с ОА, не работает. Датчик DS18B20, на индикаторе 00С и больше никаких движений. Кто-нибудь кроме меня пробовал прошивку от Andrey_Ch8, как результаты?

У меня такаяже проблема .

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

heruich пробуй, вроде получилось у мну. txt убрать.Termo 630 OA.HEX.txt

И если у тебя выводит 00С, надо поменять местами разряды com 0 и com 2.

Изменено пользователем Stasjuk
Ссылка на комментарий
Поделиться на другие сайты

Это HEX ? В смысле , программатор примет такой формат ? А и можно ли прошивать мк непосредственно в схеме , а то у меня смд пик и выпаивать давольно проблематично и геморно , что не хотелось .

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

Да это HEX, просто убираешь .TXT и это готовая прошивка для мк. В схеме прошивать можно, но все используемые при программировании выводы необходимо отсоединить от схемы, к примеру просто перерезать дорожки, а потом соединить их припоем, иначе сдохнет COM-порт.

Я уже сегодня свой обкатал с этой прошивкой, усе гут, со спиртовым градусником показания одинаковые, корректно меряет отрицательную температуру и до 90 градусов тоже все ок, просто датчик дальше не стал греть.

Изменено пользователем Stasjuk
Ссылка на комментарий
Поделиться на другие сайты

Увалить USB еще хуже, ремонт ноута потом обойдется в целое состояние. Нет не все ноги, только 1,4,12,13,14 (ноги мк) - к ним же соответственно подключаеш программатор. Если что не ясно - спрашивай, иначе последствия могут быть плачевные. Чем шьеш?

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

Brenner8 . Год назад решил сделать программатор , на радиокоте хвалили brenner8 , за то что он почти всё семейство прошивает , плюс может как то лечит мк ( не знаю как , но там две схемы на выбор , я же выбрал , чтобы просто прошивать ).После того , как спаял схему и купил все дорогостоящие детальки ( 500 руб мк - пик18ф2550 ) узнал , что для того чтобы он заработал , нужно было его прошить , я же хотел при помощи его прошивать другие пики , а оказалось он сам нуждался в прошивке - короче замкнутый круг - нашёл решение - попросил препода прошить мой мк "казённым" программатором и решил проблему - прихожу домой - подключаю программатор - и ура ! комп ожил и увидел его ( попросил дрова на него) , чтобы проверить , работает (может ли он ваще прошивать ) решил сделать простенькую схемку - нашёл тут схемку про термометр , как раз про пик - а тут оказались новые проблемы , пик прошить отдельно удалось , мучался с фоторезистом - но всё таки сделал дорожки 0,15 мм под смд - индикатора такого найти не смог - купил какой есть - а там а б с д в расброс - короче гемор один да и только , а тут ещё и хекс не работает , надо было кроватку липить . Вот как то так я ответил на твой вопрос =)

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

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

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

Вот исправленная и рабочая схема.

за место мосфетов стоят КТ315Б, автор когда схему рисовал наверно торопился кудато....:rolleyes:

post-47061-0-92275200-1329444328_thumb.jpg

Изменено пользователем Pentium
Ссылка на комментарий
Поделиться на другие сайты

Pentium, какая прошивка с ОА корявая, та что я выложил? У меня нет никаких зависаний при переходе через 0, смотри датчик, попробуй не паразитное питание, какой длины провод, экранирован он или нет, поставить блокировочную керамику прям меж ног МК, либо проблема с питанием.

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

Господа.

Прошивка выложенная в теме по сабжу абсолютно рабочая и без всяких условностей. Изделие повторяли много раз. Разные люди.

Да и негде там косякам быть. Слишком все просто.

Так как выложена не только пршивка, но и исходный код, то всяк может перекомпилировать себе любые изменения.

Делать простейшие движения в этом направлении я не буду. У меня просто нет на это времени.

戦う前に相手のベルトの色に注目

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

heruich пробуй, вроде получилось у мну. txt убрать.Termo 630 OA.HEX.txt

И если у тебя выводит 00С, надо поменять местами разряды com 0 и com 2.

При перепрошивке нужно удалять старую программу с пика ? Ты под какой датчик сделал прогу? Выводит 88 градусов или 00 градусов или помехи .

Вот фотки http://ifolder.ru/28769621

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

Датчик DS18B20. Программа сама стирает pic перед записью, кстати константа из пика не удалена часом? Судя по фоткам 85 - инициализация датчика, 88 - датчик не подключен. КОНСТАНТУ в пике проверь.

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

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

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

  Разрешено использовать не более 75 эмодзи.

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

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

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

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Сообщения

    • Это еще где-то на рубеже 2013-2014 годов призошло, просто Вы поздновато присоединились к глобальному помешательству.
    • Этот вариант меня вполне устроит.  То есть тот инструмент, которым редко пользуемся, отключаем и убираем в коробку. При этом доставать и подключать нужный инструмент ИМХО удобнее, чем ставить еще один габаритный девайс с нужным инструментом на рабочий стол. 
    • Вашими бы устами да мед пить. А мозги топикстартеру пожаловать в качестве кешбека. Но suum cuique...
    • Данная тема к "импульсникам" не относится, поэтому всё "внетемное" удаляю. Не флудим. Для обсуждения других схем создавайте отдельные темы!
    • @READART Из практики. Даже 2в1 ухитряются путаться и мешать друг другу. Что за ад будет происходить с 4в1 я с трудом представлю. Вероятнее всего он будет низведен до банального 2в1 из-за неудобства.
    • нечего там смотреть, достаточно взглянуть на картинку- это похоже болячка этой деки- присоединяюсь к теме- у меня такая же проблема!
    • @donec Спасибо, но нет. Слишком всё как то всё сложно и запутано написано там в этом коде.  Я сейчас тем временем продолжаю разбираться с дисплеем. Выяснил причину артефактов на дисплее, а она кроется в коде, но это ещё нужно понять как исправить. Собственно в чём суть дела вывод по одному символу работает корректно и всё отображается правильно, но как только я пытаюсь вывести строку то на дисплее сразу появляются всяческие артефакты. Так что тут получается нужно каким то образом править код вывода строки. Вот весь код написанный под ATMEGA16. #define F_CPU 7372800UL #define BAUND 9600L #define UBRRL_value (F_CPU/(BAUND*16))-1 #include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> #include <stdlib.h> #define MAIN_H_ #define LCD_H_ #define LCD_DDR DDRA #define LCD_PORT PORTA #define LCD_PIN PINA #define DATA 0b11110000 #define RS PA2 #define E PA3 #define E1 LCD_PORT|=(1<<E) #define E0 LCD_PORT&=~(1<<E) #define RS1 LCD_PORT|=(1<<RS) #define RS0 LCD_PORT&=~(1<<RS) void lcd_ini(void); void lcd_str(char* str); void lcd_pos(uint8_t line, uint8_t pos); void lcd_num(uint8_t num, uint8_t line, uint8_t pos); uint8_t n=0; void write(uint8_t n) { n<<=4; E1; //линию Е в 1 LCD_PORT&=~DATA; //удалить предыдущую отправку LCD_PORT|=n; //выставить значение на пины управления дата битами asm("nop"); //пропуск такта E0; //линию Е в 0 } void send_byte(uint8_t byte, uint8_t tip) { if (tip) //если тип данные на линии RS 1 { RS1; } else //иначе тип команда и на линии RS 0 { RS0; } write(byte>>4); //передача старшего полубайта write(byte); //передача младшего полубайта } void lcd_ini(void) { LCD_DDR|=DATA | (1<<RS) | (1<<E); _delay_ms(20); RS0; write(3); _delay_ms(5); write(3); _delay_us(150); write(3); _delay_us(50); write(2); _delay_us(50); send_byte(40,0); _delay_us(50); send_byte(12,0); _delay_us(50); send_byte(1,0); _delay_ms(2); send_byte(6,0); _delay_us(50); } void lcd_str(char* str) { uint8_t n=0; while(str[n]) { send_byte(str[n],1); n++; } } void lcd_pos(uint8_t line, uint8_t pos) { uint8_t adress=(line*0x40+pos)|0x80; send_byte(adress,0); _delay_us(50); } void init_pin(void); #define C_PC0 (~PINC&(1<<PC0)) #define C_PC1 (~PINC&(1<<PC1)) #define LED_1_ON() PORTD|=(1<<PD2) #define LED_1_OFF() PORTD&=~(1<<PD2) #define LED_2_ON() PORTD|=(1<<PD3) #define LED_2_OFF() PORTD&=~(1<<PD3) #define FLAG_END_RX (1<<3) #define FLAG_ERR_RX (1<<4) #define BUF_SIZE 20 char rx_buf[BUF_SIZE]; char buf_index = 0; char rxb; volatile start=1, flags; ISR(USART_RXC_vect) { char rxb = UDR; if(!(flags & FLAG_END_RX)) { rx_buf[buf_index]=rxb; if(rx_buf[buf_index] == 0x0D) { flags |= FLAG_END_RX; return; } buf_index++; if(buf_index >= BUF_SIZE) { buf_index = 0; flags |= FLAG_ERR_RX; } } } void init_UART() { UBRRL = UBRRL_value; UBRRH = UBRRL_value>>8; UCSRB|=(1<<TXEN); UCSRB|=(1<<RXEN); UCSRC|=((1<<URSEL)|(1<<UCSZ0)|(1<<UCSZ1)); UCSRB|=(1<<RXCIE); sei(); flags = 0; } void send_UART(char value) { while(!(UCSRA&(1<<UDRE))); UDR=value; } int main(void) { init_pin(); init_UART(); _delay_ms(500); send_UART('O'); send_UART('K'); send_UART('!'); send_UART(0x0D); send_UART(0x0A); _delay_ms(10); flags = 0; DDRB = 0b10000000; PORTB = 0b11111111; lcd_ini(); while(1) { if (~PINB & (1<<1)) { send_UART('P'); send_UART('B'); send_UART('1'); send_UART(0x0D); send_UART(0x0A); _delay_ms(250); lcd_pos(0,0); send_byte('A',1); lcd_pos(1,0); lcd_str("PORT B1"); //lcd_str(" "); //lcd_pos(1,0); //lcd_str(" "); //lcd_pos(1,0); //lcd_str("GAMES AND SOFT"); //send_byte(0b01000001,1); //A //send_byte(0x41,1); //A //send_byte('A',1); //A } if (~PINB & (1<<2)) { send_UART('P'); send_UART('B'); send_UART('2'); send_UART(0x0D); send_UART(0x0A); _delay_ms(250); lcd_pos(0,0); send_byte('B',1); lcd_pos(1,0); lcd_str("PORT B2"); //lcd_pos(0,0); //lcd_str(" "); //lcd_pos(1,0); //lcd_str(" "); //lcd_str("TIFASO"); } if (~PINB & (1<<3)) { send_UART('P'); send_UART('B'); send_UART('3'); send_UART(0x0D); send_UART(0x0A); _delay_ms(250); lcd_pos(0,0); send_byte('C',1); lcd_pos(1,0); lcd_str("PORT B3"); //lcd_str(" "); //lcd_pos(1,0); //lcd_str(" "); //lcd_pos(1,0); //lcd_str("HELLO"); //lcd_pos(1,0); //lcd_str("PLAYER BT201"); } if (~PINB & (1<<4)) { send_UART('P'); send_UART('B'); send_UART('4'); send_UART(0x0D); send_UART(0x0A); _delay_ms(250); lcd_pos(0,0); send_byte('D',1); lcd_pos(1,0); lcd_str("PORT B4"); //lcd_pos(0,0); //lcd_str(" "); //lcd_pos(1,0); //lcd_str(" "); //lcd_str("FILE MUSIC MP3"); //lcd_pos(1,0); //lcd_str("USB PLAYER VOLL"); } char i = 0; if (rx_buf[i] == 'M'){ i++; if (rx_buf[i] == '1') { LED_1_ON(); LED_2_OFF(); } else if (rx_buf[i] == '2') { LED_1_OFF(); LED_2_ON(); } else if (rx_buf[i] == 'T') { LED_1_ON(); LED_2_ON(); } else if (rx_buf[i] == 'K') { LED_1_OFF(); LED_2_OFF(); } } if (C_PC0) { send_UART('P'); send_UART('C'); send_UART('0'); send_UART(0x0D); send_UART(0x0A); _delay_ms(250); lcd_pos(0,0); send_byte('E',1); lcd_pos(1,0); lcd_str("PORT C0"); } if (C_PC1) { send_UART('P'); send_UART('C'); send_UART('1'); send_UART(0x0D); send_UART(0x0A); _delay_ms(250); lcd_pos(0,0); send_byte('F',1); lcd_pos(1,0); lcd_str("PORT C1"); } } } void init_pin(void) { DDRC = 0b00000000; PORTC = 0b11111111; DDRD |= ((1<<2)|(1<<3)); PORTD &=~ ((1<<2)|(1<<3)); } Собственно за вывод символа отвечает send_byte она работает правильно, а за вывод строки отвечает lcd_str вот в ней как раз таки и вся проблема с артефактами. А что конкретно не так я пока ещё никак не пойму. Может кто более опытным глазом увидит и подскажет что нужно исправить.
×
×
  • Создать...