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

Измеритель уровня топлива

...
...
switch(digits[1])  // в led[] и led1[] храняться коды индикаторов.
{
case 0: PORTD=led[0]; break;
case 1: PORTD=led[1]; break;
case 2: PORTD=led[2]; break;
case 3: PORTD=led[3]; break;
case 4: PORTD=led[4]; break;
case 5: PORTD=led[5]; break;
case 6: PORTD=led[6]; break;
case 7: PORTD=led[7]; break;
case 8: PORTD=led[8]; break;
case 9: PORTD=led[9]; break;
default: PORTD=0xBF;break;
}
switch(digits[0])
{
case 0: PORTB=led1[0]; break;
case 1: PORTB=led1[1]; break;
case 2: PORTB=led1[2]; break;
case 3: PORTB=led1[3]; break;
case 4: PORTB=led1[4]; break;
case 5: PORTB=led1[5]; break;
case 6: PORTB=led1[6]; break;
case 7: PORTB=led1[7]; break;
case 8: PORTB=led1[8]; break;
case 9: PORTB=led1[9]; break;
default: PORTB=0xBF;break;
}

 

не лучьше ли сдалать так:

// старшее знакоместо
if (digits[1] < 10)
  PORTD = led[digits[1]];
else
  PORTD = 0xBF;

// младшее знакоместо
if (digits[0] < 10)
  PORTB = led1[digits[0]];
else
  PORTB = 0xBF;

 

кстати зачем заводить два массива-знакогенератора?

лучше сделать подключение сегментов одинаково на обоих портах.

Поделиться сообщением


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

>> Вот как это красиво организовать?

Дык написано ж было... "В цикле путём сравнения значений таблицы с out находишь номер члена таблицы меньше или больше out, как удобнее, и уже его выводишь на экран." Или надо код написать? Может стоит хотя б какую-нить книжку по Си почитать, там обычно примеров разных циклов предостаточно. В книгах однозначно основы разжеваны куда более чётко и методично, чем наши несвязные советы.

 

По процедуре вывода, сорри, был неправ, вроде бы работать должно. Про оптимизацию кода уже подсказали выше.

 

После увеличения паузы между измерениями и фильтра "мин/макс" изменилось ли что-то? Или всё равно показания скачат?

Поделиться сообщением


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

После увеличения паузы между измерениями и фильтра "мин/макс" изменилось ли что-то? Или всё равно показания скачат?

С показаниями все отлично! Спасибо.

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

Читаю Шпак Ю.А. Программирование на языке С для AVR и PIC микроконтроллеров.

 

Наверное ненадолго я перестану вас мучать глупыми вопросами...на выходных доделаю датчик и проведу эксперимент, сниму зависимость литры/ацп...

 

Кстати никто не подскажет как поведет себя пепроволочный переменный резистор в баке? Бензин резистивный слой не погубит?

Поделиться сообщением


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

Прикрутил я переменник СП-3 :) Качесто сего резистора неприятно удивило...показывает все что хочет. Все-таки надо датчик какой-то хитрый делать. Либо емкостный, либо кучу герконов с резисторами :) От поплавка с резистором получается Указатель, а не Измеритель :(

Поделиться сообщением


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

Недавно видел схему простого емкостного уровнемера - идея датчика следующая - (генератор на 555) задающий конденсатор представлят собой цепочку последовательнго включенных конденсаторов, располагаемых на планке, ну а с другой стороны отводы типа иголочек.

И мне кажется, что опорный генератор (конденсатор) нужен, если его пластина также есть часть сенсора, но в неосушаемой области.

Посмотрите по линкам - может что покажется интересным

http://www.merl.com/projects/iGlassware/

http://www.discovercircuits.com/PDF-FILES/capgage.pdf

Поделиться сообщением


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

sensor_ua, спасибо за ссылки. Жаль с английским туго :) Как я понял датчик в баке является частью генератора. Изменение емкости датчика влияет на частоту генерации...

Буду смотреть проекты частотомеров на МК чтоб эту частоту измерить и оценить уровень жидкости. В МК я все еще ламер :)

Поделиться сообщением


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

А вот такая мысля появилась: почему бы не использовать датчик давления? Его поставить на дно бензобака и сделать так, что бы ничего кроме бензина не касалось мембраны датчика. А насколько я знаю такие дачтики довольно таки химическостойкие...

Поделиться сообщением


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

А если по ямкам машинка ехать будет, то центр тяжести топлива будет менятся тоже. Тогда лучше поплавок))

Поделиться сообщением


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

Изменение емкости датчика влияет на частоту генерации...

Буду смотреть проекты частотомеров на МК чтоб эту частоту измерить и оценить уровень жидкости. В МК я все еще ламер :)

Чем Вам уст-во из "Схемотехники" не глянулось- на том же принципе.

Поделиться сообщением


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

А если машина будет по ямкам прыгать, то среднее арифметическое решит эту проблему...

Поделиться сообщением


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

Скажите а где взять прошивку для решения датчика из журнала Схемотехника 1,2007 . Их сайт dian.ru не отвечает.

Поделиться сообщением


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

Я вот тоже не понял, почему автору не понравился штатный датчик уровня топлива? Допустим, по Вашему мнению, показания прыгают - Вам это не нравится...

А почему тогда показания не прыгают у стрелки на табло? Потому что у неё время интегрирования чуть ли не 10 секунд. И даже если топливо плещется на кочках, то всё успевает сгладиться. Я уверен, что увеличение времени интегрирования до десятков секунд решит любую проблему непостоянности показаний.

Добавлю ещё, что существует множество ботовых компьютеров, в которых вход измерителя топлива цепляется к штатному датчику. И всё нормально показывает. Имеется в них и калибровка. Доливаешь в бак литр - нажимаешь кнопку. И так пока весь не откалибруешь.

Поделиться сообщением


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

о каких точностях вы говорите -0,25 литра - так она не достижима даже если через себя перепрыгнуть.

не даром на штатном приборе 1/2 и 4/4

 

такие вопросы можно решить только с датчиком расхода

Поделиться сообщением


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

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

Скачки показаний действительно на многих машинах убираются за счет инерционочсти показометра.

Поделиться сообщением


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

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

Скачки показаний действительно на многих машинах убираются за счет инерционочсти показометра.

 

попробуй на ниве убери скачки

при правом повороте с полным баком может загореться лампочка - заправься

Поделиться сообщением


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

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

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

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

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

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

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

×
×
  • Создать...