измерить сопративление с помощью мк

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 185
Зарегистрирован: Чт янв 22, 2009 14:03:25

Сообщение shtorm »

затея подключить датчик топлива в баке авто к мк (ATMega16), только не хватает знаний для реализации, известно что сопративление у датчика (в маем случае) колеблется от 300 Ом до 1,2 кОм обьем бака 50л. 1л в баке=18 Ом. как заставить мк чувствовать это?
Контактная информация:
Реклама
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 361
Зарегистрирован: Ср янв 21, 2009 00:45:33

Сообщение Lonleystranger »

Меряйте не сопротивление, а напряжение. Т.е. на один контакт датчика +5В, с другого микроконтроллером снимаете напряжение. Если будете ставить Мегу8,16, там уже есть АЦП, совсем просто...если Tiny2313, там есть компаратор, можно и спомощью него...
Реклама
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 185
Зарегистрирован: Чт янв 22, 2009 14:03:25

Сообщение shtorm »

Lonleystranger использую 16мегу, и с датчика по умолчанию идет "минус" на базовый прибор...вот это меня и вводит в заблужнение...
Контактная информация:
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 361
Зарегистрирован: Ср янв 21, 2009 00:45:33

Сообщение Lonleystranger »

Значит датчик в машине заземлен (один провод). Еще проще - значит на второй подаем через резюк +5В, и меряем напряжение после резюка (падение напряжения на датчике). Т.е. схема делителя на 2 резисторах, один из которых переменный.
Реклама
Эиком - электронные компоненты и радиодетали
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 185
Зарегистрирован: Чт янв 22, 2009 14:03:25

Сообщение shtorm »

Lonleystranger т.е. на мк +5 через резюк? а минус с тадчика? а какие номиналы? если можно приблезительно нарисовать, то буду благодарен :)

P.S. схема как в соседнем топике про термометр?
Контактная информация:
Реклама
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 361
Зарегистрирован: Ср янв 21, 2009 00:45:33

Сообщение Lonleystranger »

Вот примерно так, собственно действительно как и в термометре-принцип один.
Номинал резистора подбирается так, чтобы величина напряжения изменялась как можно более линейно в зависимости от уровня топлива, и в то же время детали схемы не грелись...
Вложения
Shem.jpg
Схемка делителя
(47.99 КБ) 448 скачиваний
Реклама
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 185
Зарегистрирован: Чт янв 22, 2009 14:03:25

Сообщение shtorm »

понял, спасибо большое :)
Контактная информация:
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 185
Зарегистрирован: Чт янв 22, 2009 14:03:25

Сообщение shtorm »

вобщем попробывал смоделировать, и появились вопросы. Вот что я сделал в программной части:

Код: Выделить всё

...
// Read the 8 most significant bits
// of the AD conversion result
unsigned char read_adc(unsigned char adc_input)
{
ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
// Delay needed for the stabilization of the ADC input voltage
delay_us(10);
// Start the AD conversion
ADCSRA|=0x40;
// Wait for the AD conversion to complete
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return ADCH;
}
...
      read_adc(0);
      sprintf(lcd_buffer,"ADC=%i",ADCH);
      lcd_clear();
      lcd_puts(lcd_buffer);
      delay_ms(500);
...
Все остальное сгенерировал CodeVision, ах да, я включи только 8битный режим, насколько я понял по статьям так проще...И в итоге на дисплее у меня число от 0 до 255. Если использовать схему которую предложил Lonleystranger, с номиналами: постоянный резюк 500 Ом переменный 1,2к то максимальное чило на ADCH=183. Теперь как правильно посчитать что чему эквивалентно? 183/1200(Ом)=0,1525 -это чему равен 1Ом -это правильное исчисление?
И еще вопрос как защитить стандартный прибор, ведь если к датчику подрубить +5В через резюк показанья будут неверными или нет?

P.S. если что не так не пинайте сильно, это моя первая попытка освоить АЦП :oops:
Контактная информация:
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 361
Зарегистрирован: Ср янв 21, 2009 00:45:33

Сообщение Lonleystranger »

Чтоб работало от 12 В, надо сделать другой делитель, как на схеме. И еще числа указывайте как в ASM 0x-16ричная система или HEX в конце либо в конце DEC,а то немного непонятно 183 Dec или Hex...В принципе 183 из 255 - очень неплохо для измерения. Но надо бы проверить линейность показаний в эксперименте, график начертить...а то ведь резисторы-то переменные есть со скачком в начале, в конце...
PS!!!Резисторы в схеме (2шт) подбирать так, чтобы при максимальном сопротивлении датчика на них напряжение было не более 5В!!!Подбирать без МК!!!
Вложения
Shem.jpg
Схемка делителя на 12 вольт
(76.76 КБ) 345 скачиваний
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 185
Зарегистрирован: Чт янв 22, 2009 14:03:25

Сообщение shtorm »

сделал такое (см. файл) вроде все работает погрешность гдето 20гр. :lol: и заодно сделал делитель для сьема бортового напряжения, опорное напряжение использовал внутренее 2,65(дабы было точнее) и еще поставил стабилизатор (7805) чтоб не скакала напруга при сьеме данных с бака...все правильно сделал?
Вложения
acp.JPG
схема делителя
(103.27 КБ) 395 скачиваний
Контактная информация:
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 361
Зарегистрирован: Ср янв 21, 2009 00:45:33

Сообщение Lonleystranger »

В принципе, пользоваться-то Вам :))) погрешность 20 грамм очень даже неплохо, штатный небось 1-2 литра? :) . Можно было бы конечно поставить стабилизатор именно на датчик (+12В---стабилизатор-----датчик), потому как смысл резистора R3 на схеме...
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»