Администрация форума не несёт ответственности за достоверность информации и оставляет за собой право редактировать или в особых случаях даже удалять посты без предупреждения. Спасибо за понимание.

Программирование ATMEL в BASCOM.

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

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Программирование ATMEL в BASCOM. » Готовые конструкции » Стенд для диагностики и чистки форсунок бензиновых двигателей


Стенд для диагностики и чистки форсунок бензиновых двигателей

Сообщений 1 страница 9 из 9

1

Навеяло отсюда : Первоисточник  .  Доработал схему, так же добавил функционал.

Все файлы проекта можно скачать здесь: https://yadi.sk/d/8JZ7K5f3mRNLd

Справка

Не большое видео по функционалу устройства:
Видео

Это мое первое ( не считая светодиодных моргалок ) устройство, так что по поводу кода больше чем уверен что он не оптимален, ну что уж получилось.
Печатные платы заказывал в Китае. Было изготовлено десять устройств.
p.s проект не коммерческий !

Отредактировано angald (2016-01-14 18:59:33)

0

2

Давай замутим универсальный бенз/дизель.

0

3

Предупреждаю, что из меня программист ни какой - пытаюсь кропать чисто для себя, ну и в качестве дальнейшего развития ( обучения ). Вообщем как завещал В.И.Л - «учиться, учиться и учиться»

0

4

Когда то давно один чел попросил реанимировать сгоревший приборчик для чистки форсунок.
Ну и как всегда, после написания программы и опробовании в железе исчез, наверное чистит  :D
Денег по сути копейки, для него бы не было убытка, и для меня приобретения. Зато опыт получил бесценный - отдавать только демопрошивку!

Выкладываю, может кому пригодиться. Если что есть симуляция в протеусе.

Код:
 'нужен генератор прямоугольного импульса с частотой от 1го до 500 герц и длительностью 2мс.
 'Регулировка частоты переменным резистором. Частота разбита на четыре диапазона: 1-125,125-259,250-375 и 375-500.
 'Индикация 4 светодиода, переключение диапазонов одной кнопкой по кругу.

  '2мс = 0,002 сек
  '1/0,002=500Гц

$regfile = "m8def.dat"                                      'Используем ATmega8
$crystal = 8000000                                          'Частота 8 МГц

$hwstack = 54
$swstack = 54
$framesize = 54

'-----Настройка портов-----
'4 светодиода
Config Portd.0 = Output                                     '1-500 Hz
Set Portd.0
Config Portd.1 = Output                                     '500-1000 Hz
Config Portd.2 = Output                                     '1000-1500 Hz
Config Portd.3 = Output                                     '1500-2000 Hz
'Выход генератора
Config Portb.1 = Output
'Кнопка
Config Portc.2 = Input
'Set Portc.2                                                 'включить внутренний подтягивающий резистор
'Переменный резистор
Config Portc.1 = Input



'-----Настройка таймера-----

Config Timer0 = Timer , Prescale = 1                        ' 1, 8, 64, 256, 1024
On Timer0 Tik
'Compare1a = 350
Enable Timer0
Start Timer0

'-----Настройка АЦП-----
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Enable Adc
Start Adc
'Adc – режим считывания значения: Single – единичное считывание, также может быть Free (режим постоянной работы преобразователя)
'Prescaler = 128 – выбираем частоту дискретизации путем деления частоты кварца на определенное число (также может быть 2,4,8,16,32,64 или Auto).
'Если выбрать Auto, то компилятор сам выберет подходящую частоту работы АЦП
'Reference – выбор источника опорного напряжения. Aref – внешний источник, Avcc – напряжение питания схемы, Internal – внутренний ИОН на 2,56 в.

Enable Interrupts                                           'Разрешаем все прерывания
Config Debounce = 30                                        'Настройка задержки опроса кнопок

'-----Переменные-----
Dim Diapaz As Byte                                          'Рабочий диапазон
Dim Rezadc As Word                                          'значение АЦП
Dim Freq As Word                                            'установленная частота переменным резистором
Dim Period As Word                                          'периода импульсов
Dim Dlitel As Word                                          'длительности импульсов
Dim Pulse As Word                                           'Счётчик для формирования импульсов
Dim Temp As Word

'-----Значения переменных-----
Diapaz = 1
Dlitel = 61
Period = 30000

'=============================Начало главного цикла=============================
Do

'Опрос кнопки
   Debounce Pinc.2 , 0 , Diapazon , Sub

'Опрос переменного резистора
   Rezadc = Getadc(1)


   If Diapaz = 1 Then                                          '1-125 Hz
   '30000-250
      Temp = 30000
      If Rezadc > 100 Then Temp = 250
      If Rezadc > 150 Then Temp = 324
      If Rezadc > 200 Then Temp = 416
      If Rezadc > 250 Then Temp = 536
      If Rezadc > 300 Then Temp = 689
      If Rezadc > 350 Then Temp = 886
      If Rezadc > 400 Then Temp = 1140
      If Rezadc > 450 Then Temp = 1466
      If Rezadc > 500 Then Temp = 1885
      If Rezadc > 550 Then Temp = 2424
      If Rezadc > 600 Then Temp = 3118
      If Rezadc > 650 Then Temp = 4010
      If Rezadc > 700 Then Temp = 5157
      If Rezadc > 750 Then Temp = 6632
      If Rezadc > 800 Then Temp = 8529
      If Rezadc > 850 Then Temp = 10968
      If Rezadc > 900 Then Temp = 14105
      If Rezadc > 950 Then Temp = 18140
      If Rezadc > 1000 Then Temp = 23328
      Period = Temp

   End If

   If Diapaz = 2 Then                                          '125-250 Hz
   '250-125
      Temp = Rezadc / 8
      Period = 125 + Temp
   End If

   If Diapaz = 3 Then                                          '250-375 Hz
   '125-83
      Temp = Rezadc / 24
      Period = 83 + Temp
   End If

   If Diapaz = 4 Then                                          '375-500 Hz
   '83-61
      Temp = Rezadc / 46
      Period = 61 + Temp
   End If


Loop
'=============================Конец главного цикла=============================


'Выбор диапазона
Diapazon:
'Следующий диапазон
   Incr Diapaz
   If Diapaz = 5 Then Diapaz = 1
'Выключим все светодиоды
   Reset Portd.0
   Reset Portd.1
   Reset Portd.2
   Reset Portd.3
'Включим светодиод выбранного диапазона
   If Diapaz = 1 Then Set Portd.0
   If Diapaz = 2 Then Set Portd.1
   If Diapaz = 3 Then Set Portd.2
   If Diapaz = 4 Then Set Portd.3
Return



'Основное прерывание таймера
'http://bascomavr.3bb.ru/viewtopic.php?id=661
'Генератор должен быть настроен на частоту 0,5 мс
Tik:
'Timer0 = 254
   Incr Pulse
   If Pulse > Period Then Pulse = 0                            'формирование периода

   If Pulse < Dlitel Then                                   'формирование длительности
      Set Portb.1
        'Portb.1 = 1
   Else
      Reset Portb.1
        'Portb.1 = 0
   End If

Return

0

5

Вот "Этим" форсы можно только "подрюкать"... чистить конечно получится, но не на 5с+

0

6

Да  мне как бы без надобности, заказчик такие параметры заказал.

0

7

Люди вон умудряются через понижающий мыть форсы - вот тут точно только " подрюкать " , да еще не известно к чему приведет такое новаторство.

0

8

Я года два уже обхожусь без "дрюканий" на постоянку открываю секунд на 10 при давлении 2 - 3кг несколько раз, нормально моются.

0

9

У каждого свои секреты и жидкости для промывки)))

0


Вы здесь » Программирование ATMEL в BASCOM. » Готовые конструкции » Стенд для диагностики и чистки форсунок бензиновых двигателей