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

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

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

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


Вы здесь » Программирование ATMEL в BASCOM. » Дисплеи и индикация » Приборная панель для мото.


Приборная панель для мото.

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

1

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

*  _*_    *
* |  |  |  *
*  ----    *
* |  |  |  *
*  ----    *
*           *

Т.е. два столбца светодиодов, между ними цифровой семисегменый индикатор на 2 цифры и контрольная лампа.
Цифровой индикатор выводит скорость, один светодиодный столбец температуру, другой тахометр и контрольная лампа с зуммером.
И собственно вопросы:
1. Достаточно ли выводом на ATMEGA8 для организации управления 27 светодиодами или нужно обязательно через LED контроллер?
2. Лучше использовать аналоговый термодатчик или цифровой, если погрешность +- 5градусов устраивает, с точки зрения простоты программы?
3. Для тахометра и спидометра лучше использовать какие датчики, герконовые или датчики холла?

0

2

1. Если сделать динамическую индикацию, то вполне достаточно. Но светодиоды лучше братьс запасом по яркости и предусмотреть их регулировку в тёмное время суток (ШИМ), чтобы днём было видно, а ночью не слепило.
2. Как по мне так лучше DS1820 (цифра)
3. Подобного опыта нет. Необходимо посмотреть, с какой скорость срабатывает геркон и сопоставить со скоростью вращения колеса, чтобы небыло на максимуме провалов импульсов.

0

3

Переключение день/ночь как я понимаю лучше делать по фотоэлементу, существуют ли цифровые датчики или обычный фотоэлемент через АЦП проще?
Еще вопрос, как реагирует Atmega8 на помехи по питанию, критична или нет?

0

4

Trigger написал(а):

как реагирует Atmega8 на помехи по питанию

По питанию теперь Атмэлы не очень критичны, победили они таки детскую болезнь, а вот помехи с длинных проводов ловит на ура, причём бывает со сбоем программы. Так что думай как раскидывать это всё дело. Совет только один, по входам, везьде где можно (и нужно :) ) ставь оптроны, съэкономиш себе нервы.

Чуть не забыл, питание на стабилизатор обязательно нужно подавать через диод в прямом направлении, а после него поставить защитный диод, на землю, что нибудь типа P6KE22-P6KE27. Дело в том что даже на новом авто импульсные помехи по бортовой сети нормируются на уровне 160 вольт, как на мопеде и на мотоцикле мне не известно, подозреваю что этим никто не озадачивается.

Отредактировано krot (2008-03-14 09:08:25)

0

5

Фотоэлемента вполне хватит. Цифровые существуют, но в продаже не видел.

0

6

Встроенного генаратора 1мгц хватит или нужно внешний навешивать?
В принципе точность особая не нужна, часов же не будет.

0

7

Можно переключить на внутренний 8 МГц, если планируется регулировка яркости ШИМом, а если нет, то и 1 МГц достаточно.

0

8

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

0

9

Герконы максимум 100гц, так что не подходят.
Цифровые датчики холла попались, но в даташите не описан тип выходного сигнала, кто что знает по этому поводу?

0

10

Trigger написал(а):

кто что знает по этому поводу

Цифра и есть цифра, 1 или 0. Они все с отрытым коллектором, или стоком, так что нужно подтянуть к + питани резистором, 5ма при 5в по выходу держат все.

http://www.chip-dip.ru/library/DOC000050445.pdf
http://www.chip-dip.ru/library/DOC000054708.pdf
http://www.chip-dip.ru/library/DOC000074922.pdf

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

Отредактировано krot (2008-03-14 20:25:13)

0

11

Накидал схемку, посмотрите, может где то напортачил.
Датчики холла решил использовать пока аналоговые для простоты.
Добавил так же в схему фотодиод, кстати я так и не смог его найти в Протеусе!
И добавил реле включения габаритов/фар, раз уж будет коррекция яркости подсветки, то почему не воспользоватся доп. функцией.
Кстати вопрос про эмуляцию в протеусе, накидал мелкую прогу что бы зажгла все индикаторные светодиоды, а они светятся разной яркостью, нормально ли это?

0

12

Не лезет схема в полный размер, хотя объем в 30кб.

0

13

Закидуй схему на любой файлообменник, а сюда ссылку.

0

14

Вот накидал с помощью некоторых примеров чтение датчика температуры DS1820 и вывод на 2х сегментный LED индикатор, но почему то кажет одни нули, что не так?
И еще вопрос, при симуляции в Протеусе, периодически выскакивает ошибка Timestep, причем то работает, то вылетает, что это может быть?

Код:
$regfile = "m8def.dat"
$crystal = 1000000

Config Portd.0 = Output
Config Portd.1 = Output
Config Portd.2 = Output
Config Portd.3 = Output
Config Portb.0 = Output
Config Portb.1 = Output
Config Portb.2 = Output
Config Portb.3 = Output
Config Portb.4 = Output
Config Portb.5 = Output
Config Portb.6 = Output
Config 1wire = Portd.5

Portb = 127

Dim A As Word
Dim B As Word
Dim C As Word
Dim D As Word
Dim E As Word
Dim S As Word
Dim Byte0 As Byte
Dim Byte1 As Byte
Dim T1 As Byte
Dim T2 As Byte
Dim I As Integer

Dim X(10) As Byte
Restore Sigment
For I = 1 To 10
Read X(i)
Next

Sigment:
Data &H40 , &H79 , &H24 , &H30 , &H19 , &H12 , &H02 , &H78
Data &H00 , &H10

Do
1wreset
1wwrite &HCCH
1wwrite &H44H
1wreset
1wwrite &HCCH
1wwrite &HBEH

Byte0 = 1wread()
Byte1 = 1wread()
T1 = Byte0 / 16
T2 = Byte1 * 16
T1 = T1 + T2


S = T1
D = S Mod 100
B = D / 10
A = S Mod 10


Portd.1 = 1
Portb = X(a + 1)
Portd.0 = 0
Waitms 5
Portd.0 = 1
Portb = X(b + 1)
Portd.1 = 0
Waitms 5

Loop

0

15

Вроде понял суть проблеммы, датчик выдает двоичный код, а вывод цифр осуществляется в десятичном виде.
Вопрос поменялся, как перевести двоичный код в десятичный? Есть ли такая команда?

0

16

Ya delal termometr na DS18B20, smisl ya dumayu ещеоуб мще kak ya delal:
Snachala ya sdelal constanti dlya cifr:
Const pat0 = &B00111111                                    ' 0   ****A***
Const pat1 = &B00000110                                    ' 1   *           *
Const pat2 = &B01011011                                    ' 2   F           B
Const pat3 = &B01001111                                    ' 3   *           *
Const pat4 = &B01100110                                    ' 4   ****G***
Const pat5 = &B01101101                                    ' 5   *           *
Const pat6 = &B01111101                                    ' 6   E           C
Const pat7 = &B00000111                                    ' 7   *           *
Const pat8 = &B01111111                                    ' 8   ****D***
Const pat9 = &B01101111                                    ' 9

Samo chtenie dannih s DS18B20:

      1wreset                                                 ' Sbros
      1wwrite &HCCH                                      '
      1wwrite &H44H                                       'Convertirovat' dannie
'
      1wreset
      1wwrite &HCCH                                      '
      1wwrite &HBEH                                       ' Bayt chteniya
'
      Tlsb = 1wread()                                      ' Chtenie men'shego bayta
      Tmsb = 1wread()                                    ' Chtenie starshego bayta

eti dannie г nas uje v baytah a ne v bitah!!!!!!
Dopustim mi poluchili temperaturu 19.5C   (DS18B20 s tochnostyo do 0.125C, v vashem sluchae nujno posmotret' po datashitu)
v peremennoy Tlsb u nas poluchaetsya zapisani cifri 9.5  t.e. doli i edinici temperaturi
a v peremennoy Tmsb 1, t.e. desyatki!!!

Potom delaem podprogramku dlya polucheniya samoy cifri!!!
T.e. po datashitu nahodim gde i kak zapisivaetsya informaciya i rabotaem s nimi.
Tochno ne pomnyu kak, tak kak delal davno!!!

0


Вы здесь » Программирование ATMEL в BASCOM. » Дисплеи и индикация » Приборная панель для мото.