AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR... |
08.10.2022, 20:07
|
|
Вид на жительство
Регистрация: 24.08.2011
Сообщений: 381
Сказал спасибо: 5
Сказали Спасибо 4 раз(а) в 4 сообщении(ях)
|
скачал и установил программу Bascom Avr, но не могу понять как скомпилировать hex файл. Нажимаю F7 не чего не происходит. Насколько я понял прошивка заливается прямо в МК через программатор.
И снова задам вопрос, на скрине заводские фьюзы для атмега 8?
mike-y-k
В общем скомпилировал прошивку проверил в протеусе и почему то красный светодиод мигает и бузер подает прерывистый сигнал, при отсутствии напрсжения на входе вывод 23. Может что то не то с программой?
Код:
|
$regfile = "m8def.dat"
$crystal = 1000000
$baud = 1200
'конфигурация АЦП
Config Adc = Single , Prescaler = Auto , Reference = Internal
'подключение светодиодов
Config Portb.1 = Output
Config Portb.2 = Output
Config Portb.3 = Output
Config Portb.4 = Output
Config PORTB.5 = Output
Dim W As Integer 'для хранения значения полученного с АЦП
Dim BAT As Integer
Do 'для хране значения напряжения батареи, полученного с АЦП
'запуск и считывание показаний с датчика
Start Adc
W = Getadc(0) 'датчик подключён к PortC.0
BAT = Getadc(1) 'делитель от батареи подключён к PortC.1
If BAT ‹ 99999 Then 'пора менять батарею
PORTB = &B00110000
Wait 1
PORTB = &B00000000
Wait 1
PORTB = &B00110000
Wait 1
PORTB = &B00000000
Wait 1
End If
'в зависимости от значения показаний зажгем светодиоды индикации
If W ‹ 700 Then
Portb = &B00000000 'значение меньше порога срабатывания, все гуд
End If
If W › 700 And W ‹ 750 Then 'низкий уровень загазованности
Portb = &B00000010
End If
If W › 750 And W ‹ 800 Then 'средний уровень
Portb = &B00000110
End If
If W › 850 And W ‹ 900 Then 'загазовано чуть меньше чем полностью
Portb = &B00001110
End If
If W › 900 Then 'караул!
Portb = &B00111110
End If
Print W 'отсылаем показания в UART
Print BAT 'отсылаем показания в UART
Wait 1
Loop
End |
Сообщение от mike-y-k
|
На выводы 2 и 3 подключить адаптер UART и посмотреть в терминале измеренное напряжение, по нему поправить константу порога для нижнего порога напряжения батареи.
|
Не чего не понял. Что за Приблуда адаптер UART? Что за терминал, смотреть где на ПК? Править константу где здесь?
Код:
|
If BAT ‹ 99999 Then 'пора менять батарею
Portb = &B00110000
Wait 1
Portb = &B00000000
Wait 1
Portb = &B00110000
Wait 1
Portb = &B00000000 |
В какой строке?
Последний раз редактировалось mike-y-k; 08.10.2022 в 22:57.
Причина: 6.6, code
|
|
|
|
09.10.2022, 02:18
|
|
Модератор
Регистрация: 04.08.2010
Адрес: Москва СЗАО
Сообщений: 11,258
Сказал спасибо: 11,170
Сказали Спасибо 3,859 раз(а) в 2,929 сообщении(ях)
|
Re: сигнализатор утечки газа
Результат измерения напряжения на ноге 24 - часть напряжения батареи, нужно поправить константу 9999 в if (первая строка во втором окне кода)
Адаптер UART - устройство с USB на одном конце и выходами RX/TX на другом конце, посередине чип типа FT232/MCP220x/CP2102/…
При подключении к плате позволяет на терминале компьютера (программа типа putty, terminal) увидеть выводимые из МК данные.
Это выполняют команды Первое число - измерение с датчика, второе - измерение с делителя от батареи…
Они будут появляться каждую секунду
Можете добавить еще один порт и светодиод для индикации низкого уровня батареи
В отношении работы в proteus сейчас ничем не помогу - это уже к знатокам программы
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…
|
|
|
|
09.10.2022, 16:58
|
|
Вид на жительство
Регистрация: 24.08.2011
Сообщений: 381
Сказал спасибо: 5
Сказали Спасибо 4 раз(а) в 4 сообщении(ях)
|
можно ли заменить датчик газа mq-4 на mq-5, и нужны ли изменения в прошивке? Причина, он есть в доступности, и он дешевле.
http://mini-tech.com.ua/download/dat...nsors/MQ-5.pdf
http://mini-tech.com.ua/download/dat...nsors/MQ-4.pdf
И ещё вопрос, можно ли обойтись без uart adapter? Поскольку так проект удорожается, смысл то делать самостоятельно не только получить удовольствие от процесса изготовления.
в общем я так подумал, подумал, подсчитал расходы на приобретение газ датчика, юарт адаптера, аккумулятора и т. д. Получается сумма почти эквивалентная цене бытового сигнализатора в продаже. Решил пойти более простым и более дешёвым путем. Питание будет от платы зарядки 5 вольт, 1ампер, ( которая есть у меня) остается купить датчик и рассыпуху.
Последний раз редактировалось mike-y-k; 09.10.2022 в 20:08.
Причина: 6.6
|
|
|
|
09.10.2022, 20:11
|
|
Модератор
Регистрация: 04.08.2010
Адрес: Москва СЗАО
Сообщений: 11,258
Сказал спасибо: 11,170
Сказали Спасибо 3,859 раз(а) в 2,929 сообщении(ях)
|
Re: сигнализатор утечки газа
Andre_san, можно взять любой MQ
UART адаптер будет нужен для настройки прибора…
PS Для питания оптимальнее всего задействовать вариант PowerBank с работой на выход при заряде.
Формально портативный UPS для питания потребителя 5V.
Газ таки никак не связан с наличием напряжения в розетке и его лучше контролировать непрерывно…
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…
Последний раз редактировалось mike-y-k; 10.10.2022 в 14:04.
|
|
|
|
14.10.2022, 13:40
|
|
Вид на жительство
Регистрация: 24.08.2011
Сообщений: 381
Сказал спасибо: 5
Сказали Спасибо 4 раз(а) в 4 сообщении(ях)
|
Re: сигнализатор утечки газа
Собрал схему с изменениями.
Последний раз редактировалось Andre_san; 14.10.2022 в 14:01.
|
|
|
|
14.10.2022, 15:06
|
|
Модератор
Регистрация: 04.08.2010
Адрес: Москва СЗАО
Сообщений: 11,258
Сказал спасибо: 11,170
Сказали Спасибо 3,859 раз(а) в 2,929 сообщении(ях)
|
Re: сигнализатор утечки газа
Andre_san, разведите buzzer на 19 ногу МК и измените код для программы
Код:
|
$regfile = "m8def.dat"
$crystal = 1000000
$baud = 1200
'конфигурация АЦП
Config Adc = Single , Prescaler = Auto , Reference = Internal
'подключение светодиодов
Config Portb.1 = Output
Config Portb.2 = Output
Config Portb.3 = Output
Config Portb.4 = Output
Config Portb.5 = Output
Dim W As Integer 'для хранения значения полученного с АЦП
Do
Wait 1
Start Adc 'запуск ADC
W = Getadc 'чтение датчика - подключён к PortC.0
If W ‹ 700 Then 'значение меньше порога срабатывания
Portb = &B00000000
End If
If W › 700 And W ‹ 750 Then 'низкий уровень загазованности
Portb = &B00000010
End If
If W › 750 And W ‹ 800 Then 'средний уровень
Portb = &B00000110
End If
If W › 850 And W ‹ 900 Then 'загазовано чуть меньше чем полностью
Portb = &B00001110
End If
If W › 900 Then 'караул!
Portb = &B00111110 'Все светодиоды и buzzer
Wait 1
Portb = &B00011110 'Все светодиоды без buzzer
End If
'команду Print в окончательном варианте стоит удалить
Print W 'отсылаем показания в UART для настройки
Loop
End |
В таком варианте минимум писк будет прерывистым
И значения 700/750/800/850/900 - в Вашем варианте могут быть совсем иными. У этих датчиков весьма большой разброс, а на них еще оказывают влияние другие органические соединения, вызывая и ложные срабатывания, и плавание результатов.
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 18:49.
|
|