Подключение датчика давления от ВАЗ-2106 к ATmega8A


• О проекте
• Обратная связь
• Полезные ссылки
• Полезные программы
• Друзья сайта


Последние комментарии

Сергей: Работа с часами реального времени DS3231
Извините что проп...

Алексей: Осваиваем PCAD с нуля. Вывод на печать
Пикад уже умер. Я...




           

Библиотека для AVR





AXLIB Генератор





Помощь сайту


   
				

Подключение датчика давления от ВАЗ-2106 к ATmega8A

	
	
	

Дата: 16 Марта 2015. Автор: Алексей

	
	
Часть вторая))) Да да, это продолжение системы управления и контроля водоснабжением. Сегодня буду мучить датчик давления от Жигуля. Данный датчик установлен на моторе и подключен к стрелочному индикатору на панели приборов. Удобство этого датчика в том, что он должен измерять давление масла при температуре 90 градусов. То есть экстремальная среда. Я же его хочу поставить после насосной станции дабы не бегать к ней постоянно и не смотреть на манометр. Еще один плюс этого датчика, цена. Всего 280 рублей и у вас в руках датчик от 0 до 8 атмосфер. Я правда был немого озадачен. В магазине лежали на полке 9 датчиков. Кто только его не делает. Долго выбирая я спросил у продавца, какой из них лучше. Мне сказали что Завод "Автоприбор" самое то что надо. Ну чтож, берем.

Коробка от датчика давления.

Устройство датчика просто как валенок. Внутри подпружиненная мембрана двигает переменный резистор. Как заявляет производитель, сопротивление на выходе при нуле 290 - 320 Ом. Я на своем намерил 310 Ом.

Датчик давления.

Подключил тестер, дунул. Ничего. Еще сильнее дунул, ничего. Пошел в машину, включил компрессор и при давлении в 4 атмосферы датчик показал 130 Ом. Все ясно, при увеличении давления, падает сопротивление. Ну что ж, схема. За управляющий МК взял ATmega8A. На канал ACD0 посадил датчик. Резисторами выравнял напряжение ниже опорного. Опорное сделал 5 вольт как и питание всей схемы. Напряжение на делитель подал 12 вольт. То есть если кому захочется проабгрейдить отечественную ласточку, то можно примостырить как нефиг делать и лицезреть давление на ЖК дисплее. Для меня это лишь лабораторная работа с последующем исполнении в контроле водоснабжения. И так схема.

Схема.

Схема по крупнее
Резистор R2 нужен для более точной калибровки выходных данных. Так как это тестовая схема, то стабилизатор в нижнем левом углу оставляю на ваше усмотрение. Ставить 7805 не рекомендую, так как с 12 на 5 вольт очень лихо. Рекомендую импульсник или вообще отдельное питание. Короче поле для фантазии огромное, лишь бы пришло на МК 5 вольт. На порту D висит ЖК дисплей 16х2 с классической схемой подключения. Вот как это все выглядит на столе. АКБ для избавления от лишних помех, при включении в машине нужно будет подумать о хорошем фильтре.

Схема в сборе на столе.

Программа. Программа работает просто. Сначала инициализируем модуль АЦП, затем инициализируем ЖК дисплей, выводим текст. Далее стартуем АЦП на преобразование, забираем данные, проверяем на выпадание ниже нуля (это связано с тем что при 0 атмосфер датчик выдает ~4,5 вольт). После всех проверок, загоняем данные в интовую переменную заранее умножая результат на 100. Мне интересно давление с точностью до 2 знаков :) Правда с таким датчиком это не реально, но все же. После прогоняем данные через заранее написанную функцию для преобразования числа в символы и в конце выводим на ЖК не забывая поставить десятичную точку. Выборку проводил через каждые 200 мс. Если кому-то нужно чаще, то можно менять значение, либо вообще выкинуть задержку. Еще раз повторюсь, это лабораторка и решение велись в лоб. В основной системе я уже буду делать все на прерываниях. В итоге получается что данные выводятся 5 раз в секунду. И так, программа.

#define F_CPU 7372800UL
#define DDR_OUT DDRD	        // Имя порта для ЖК дисплея
#define PORT_OUT PORTD	// Имя порта для ЖК дисплея

#define CONST_PRESS 0.03433 // Коэфициент из расчета сопротивления датчика
#define CONST_LOW   790	   // Константа нулевого значения

#include <avr/io.h>
#include <util/delay.h>
#include <mylib/lcd.h>

int data;		// Данные из АЦП
int press;		// Преобразованное давление

char str[] = {0x30, 0x30, 0x30};	// Инициализация массива с нулями.

void digtoch(int data, char* str); // Объявления функции преобразования числа в строку

int main(void)
{
	// Настройка АЦП канал ADC0 PORTC.0
	ADCSRA = 0x00; // Если не обнулить, то будет безумие при оцифровке.
	ADMUX = 0; // Канал ADC0 и опорное напряжение тянем из внешнего вывода FREF
	ADCSRA |= (1 << ADPS1)| // Предделитель
			   (1 << ADPS2)| // на 64. Работа АЦП на 115200 Гц
			   (1 << ADEN);   // Включение АЦП Включение преобразования вручную.
	
	lcd_init(0);			// Инициализация дисплея.
	lcd_putsf("Press:");	// Вывод слова
	
    while(1)
    {
        _delay_ms(20);
		ADCSRA |= (1 << ADSC);			 // Старт преобразования
		data = ADCW;					 // Получение данных из регистра АЦП
		
		if(data < CONST_LOW) data = CONST_LOW;		// Для удержания нуля
                // Перевод значения АЦП в давление умноженное на 100
		press = (((float)data - CONST_LOW)*CONST_PRESS)*100;	 
		digtoch(press, str);	// Преобразование в символы
		_delay_ms(200);			// Задержка от скачков. Можно убрать вообще.
		lcd_xy(7,0);			// Установка курсора.
		lcd_putchar(str[0]);	// Вывод целого значения давления
		lcd_putchar('.' );		// Вывод точки
		lcd_putchar(str[1]);	// Вывод десятых
		lcd_putchar(str[2]);	// Вывод сотых
    }
}

void digtoch(int data, char* str) // Функция преобразование числа в массив знаков
{
	*str = 0x30;
	while(data > 99)
	{
		*str += 1;
		data -= 100;
	}
	str++;
	
	*str = 0x30;
	while(data > 9)
	{
		*str += 1;
		data -= 10;
	}
	str++;
	
	*str = 0x00;
	*str = ((char)data) + 0x30;
}

Для особо ленивых проект под AtmelStudio 6.2
И как всегда видео.

JW Player goes here



Фыва    16.03.15 22:22

Может так статься что как раз таки вода окажется для датчика агрессивной средой. Вряд ли его корпус имеет какую нибудь антикоррозийную защиту. К тому же под вопросом переходные резьбы на воду. Кстати датчик (реле) давления не обязательно ставить около насосной станции. Его для удобства обслуживания можно поставить и на трубе при вводе в дом. Главное между ним и станцией избегать запорной арматуры.

Алексей    16.03.15 23:28

Он похож по виду на те датчики что мы на работе ставим. Вроде ничего. В конце конов если его менять раз в год это не затратно. По поводу переходника. У меня есть токарный станок :) я уже прикупил метчик и плашку. А что касается места, то у меня под все это добро выделена комната. Там мега будет собирать данные, управлять релюшками, а в доме будет стоять пульт с тфт дисплеем и общаться с мегой по 485 интерфейсу.

Фыва    16.03.15 23:46

Кстати, движок скорее всего асинхронный, можно прикрутить к нему частотник и регулировать обороты по давлению. А не дрочить его вкл/выкл при поливе огорода.

Алексей    16.03.15 23:50

Я буду ставить 100 литровый гидро аккумулятор. А полив только из шланга что сидит на магистрали низкого давления.

АНОНИМ    16.03.15 23:58

>Я буду ставить 100 литровый гидро аккумулятор. Зачем такой монстр?! Если дебета насоса и скважины не хватит, то всё равно ста литрами огород не полить. А вот в плане качества воды не очень то хорошо такой объем в накопителе держать. По вкусу и бактериям (вода в баке без набора нагревается до окружающей температуры) она лучше не станет.

Алексей    17.03.15 07:15

Гидро аккумулятор нужно ставить обязательно. Он сглаживает скачки давления и минимизирует количество включения насоса. Расчет гидро аккумулятора идет из расчета максимального расхода воды. По поводу бактерий. На всасе стоит 20 мкм и он их не пропустит. Так же в отстойнике будет установлена УФ лампа, а ля озонатор. А на счет полива, то я повторюсь, поливочный шланг подключен к магистрали низкого давления и отношения к водоснабжению дома не имеет.

Фыва    17.03.15 16:19

>Расчет гидро аккумулятора идет из расчета максимального расхода воды. Заблуждение >На всасе стоит 20 мкм и он их не пропустит. На всасывающем патрубке не рекомендуется ставить сетку мельче 100 мкм. Будут большие потери в производительности. На выходе хоть угольный фильтр, но не на входе И 20 мкм это не то что бактерии, некоторые водоросли пройдут.

Алексей    17.03.15 18:12

Расчет гидроаккумулятора расход 10 л/м при 4 включениях в час. Читаем и вникаем. Та биологическая жизнь что в колодце не проходит через 20 мкм, а то что и просочиться сдохнет под УФ лампой. Для питья на раковине еще стоит трех колбовый фильтр, один из них антибактериальный (на всякий случай, так сказать контрольный выстрел). На всасе это фигурально, так как сначала вода поступает в 50 литровую бочку отстойник. На общей магистрале 0,8 атмосферы, что вполне для пропирания через фильтр. Я ребенку бассейн через 5 мкм наливаю и ничего. А из колодца воду гонит погружной дренажник. Ему 20 мкм как слону дробина. А вот из отстойника сосет уже насосная станция. Так что все ок.

Фыва    17.03.15 22:00

>Читаем и вникаем. Наверное сильно удивлю, если скажу что тот же грундфос имеет в своём модельном ряду насосные станции вообще без бака. С электронным прессконтролем. Мне казалось уж коль сайт позиционирует себя как пристанище электронщиков, то как раз при таких "или-или" не должно быть сомнений в предпочтениях. Впрочем хозяин барин. Бак так бак.

Алексей    17.03.15 22:08

Да без гидроаккомулятора насос вообще не выключится.

АНОНИМ    18.03.15 07:09

>Да без гидроаккомулятора насос вообще не выключится. Включением/отключением насоса управляет реле давления, оно как КРЕНка в БП.А гидроаккумулятор лишь сглаживает пульсацию (конденсатор). Современное реле давления с электронной начинкой имеет малое время инерции, поэтому уже существуют насосные станции с гидроаккумулятором объемом с теннисный мяч.

Алексей    18.03.15 18:44

На моей станции включение при 1,5 атм, а выключение при 3,5 атм. Если убрать гидро аккумулятор, то насос будет включаться при открытии любого крана. И будет молотить как будто где-то прорыв. И в конце концов вопросы гидравлики нужно обсуждать на другом сайте.

Фыва    18.03.15 21:47

И то верно. Пойду ка я на другой сайт. Удачи!

Ujine    24.03.17 00:28

Дело не во времени работы насоса, а в количестве его включений. Для многих насосов, особенно скважинных включение чаще чем 1 раз в минуту это смерти подобно.

Алексей    24.03.17 09:20

Дело как раз во времени, так как данная система предусматривает установку насосной станции, а насосные станции такого типа не могут долго работать. Для моторов данных НС правильный режим частых включений и малого периода времени работы мотора. У скважных насосов все по другому.




Чтобы вставить ссылку используйте форму вида[url]http://www.адрес.ru[/url][text]текст ссылки[/text]
Чтобы вставить код используйте форму вида[code]код[/code]

Имя:   





  







Рейтинг@Mail.ru Яндекс.Метрика