Например TDA7294

Форум РадиоКот • Просмотр темы - индикатор уровня постоянного напряжения на Attiny13 (bascom)
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Вт окт 21, 2025 01:58:39

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 30 ]  1,  
Автор Сообщение
Не в сети
 Заголовок сообщения: индикатор уровня постоянного напряжения на Attiny13 (bascom)
СообщениеДобавлено: Сб апр 16, 2022 16:57:56 
Собутыльник Кота
Аватар пользователя

Карма: 14
Рейтинг сообщений: 121
Зарегистрирован: Сб май 21, 2016 11:04:52
Сообщений: 2977
Откуда: Беларусь
Рейтинг сообщения: 0
Урок 20. Подключение семисегментного индикатора по трём проводам (74HC595)
https://cxem.net/mc/mc235.php


Урок 9. Работа с АЦП на примере ATtiny13 в BASCOM-AVR
https://cxem.net/mc/mc128.php

изучив эти уроки решиль объединить их в один проект и сделать индикатор уровня
т.е 9 градаций заданного напряжения.

поставил Bascom avr, Написал программу (скорее объединил код с двух уроков)

Но что-то у меня не выходит ни черта. Хочу попросить знатоков посмотреть код на наличие
грубых логических ошибок. Код комплируется отлично но толком не работает.


Код:
$regfile = "attiny13.dat"
$crystal = 9600000

   $HWSTACK=40
   $SWSTACK=8
   $FRAMESIZE =8


Config Adc = Single , Prescaler = Auto , Reference = Internal
Config Portb.0 = Output
Config Portb.1 = Output
Config Portb.2 = Output

Ds Alias Portb.2
Sh_cp Alias Portb.0
Const St_cp = 1

Dim Level As Integer

Start Adc

Do
If Getadc(2) >= 100 and Getadc(2) < 200 Then
   R1 = Lookup(1 , Numbers)
End If


If Getadc(2) >= 200 and Getadc(2) < 300 Then
   R1 = Lookup(2 , Numbers)
End If


If Getadc(2) >= 300 and Getadc(2) < 400 Then
   R1 = Lookup(3 , Numbers)
End If

If Getadc(2) >= 400 and Getadc(2) < 500 Then
   R1 = Lookup(4 , Numbers)
End If


If Getadc(2) >= 600 and Getadc(2) < 700 Then
   R1 = Lookup(5 , Numbers)
End If


If Getadc(2) >= 800 and Getadc(2) < 900 Then
   R1 = Lookup(6 , Numbers)
End If

If Getadc(2) >= 900 and Getadc(2) <1000 Then
   R1 = Lookup(7 , Numbers)
End If


If Getadc(2) >= 1000  Then
   R1 = Lookup(8 , Numbers)
End If

Shiftout Ds , Sh_cp , R1 , 1
Pulseout Portb , St_cp , 5

Loop
End


Numbers:
Data &B10000001                                             '0
Data &B11110011                                             '1
Data &B01001001                                             '2
Data &B01100001                                             '3
Data &B00110011                                             '4
Data &B00100101                                             '5
Data &B00000101                                             '6
Data &B10110001                                             '7
Data &B00000001                                             '8
Data &B00100001                                             '9


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: индикатор уровня постоянного напряжения на Attiny13 (bas
СообщениеДобавлено: Сб апр 16, 2022 17:23:09 
Друг Кота

Карма: -1
Рейтинг сообщений: 68
Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 8690
Откуда: .ru
Рейтинг сообщения: 3
Зачем bascom (язык высокого уровня Basic) ?
Его нико не знает)) Устарел...
Это надо сидеть разбираться... в этих каракулях))

Пишите как все нормальные люди на Си (самый популярный язык на сегодняшний день).
CodeVisionAVR и AVR Studio (две самые популярные среды разработки программ для микроконтроллеров семейства Atmel AVR).
А для всяких извращенцев (вроде меня :))) ) есть ещё ассе́мблер))

Урок 49. Работа с АЦП... Подключение чего угодно к чему угодно))
https://www.radiokot.ru/forum/viewtopic ... 8&t=148087
и т.д.
:tea:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: индикатор уровня постоянного напряжения на Attiny13 (bas
СообщениеДобавлено: Сб апр 16, 2022 19:01:31 
Собутыльник Кота
Аватар пользователя

Карма: 14
Рейтинг сообщений: 121
Зарегистрирован: Сб май 21, 2016 11:04:52
Сообщений: 2977
Откуда: Беларусь
Рейтинг сообщения: 0
фигова, я хотел ограничиться готовым кодом. В нем кстати, не так уж все и плохо и непонятно.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: индикатор уровня постоянного напряжения на Attiny13 (bas
СообщениеДобавлено: Сб апр 16, 2022 20:56:43 
Говорящий с текстолитом
Аватар пользователя

Карма: 16
Рейтинг сообщений: 233
Зарегистрирован: Пт дек 10, 2021 12:48:46
Сообщений: 1522
Откуда: Тюмень
Рейтинг сообщения: 0
Могу написать пример на АВ (Algorithm Builder https://cxem.net/mc/mc290.php) если есть желание поизучать данную среду программирования. Она намного проще. Правда есть ограничения, связанные с не поддержкой новых МК. :)


Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
Не в сети
 Заголовок сообщения: Re: индикатор уровня постоянного напряжения на Attiny13 (bas
СообщениеДобавлено: Сб апр 16, 2022 22:17:59 
Собутыльник Кота
Аватар пользователя

Карма: 14
Рейтинг сообщений: 121
Зарегистрирован: Сб май 21, 2016 11:04:52
Сообщений: 2977
Откуда: Беларусь
Рейтинг сообщения: 0
https://www.youtube.com/watch?v=bdeQ-nlYCFg

VNS, да тут смотрел подброный вариант вольтметра. Только если Вам не лень, я бы быстро включился в тему если бы пример был


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: индикатор уровня постоянного напряжения на Attiny13 (bas
СообщениеДобавлено: Вс апр 17, 2022 01:35:32 
Говорящий с текстолитом
Аватар пользователя

Карма: 16
Рейтинг сообщений: 233
Зарегистрирован: Пт дек 10, 2021 12:48:46
Сообщений: 1522
Откуда: Тюмень
Рейтинг сообщения: 0
Что хочется получить? Вольтметр с индикацией на четырёх разрядный семисегментный дисплей?
Если дисплей под динамическую индикацию, то понадобится 2 регистра сдвига (595_е), а если под статический вариант, то регистров необходимо будет 4. Какой вариант? И какие индикаторы, с ОА или ОК?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: индикатор уровня постоянного напряжения на Attiny13 (bas
СообщениеДобавлено: Вс апр 17, 2022 09:29:47 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 18
Рейтинг сообщений: 456
Зарегистрирован: Чт ноя 15, 2012 20:47:59
Сообщений: 2206
Откуда: Крымск
Рейтинг сообщения: 0
roman.com писал(а):
Зачем bascom ?

Это надо сидеть разбираться... в этих каракулях)
Пишите как все нормальные люди на Си

После каракулей на Си баском читается как детская книжка!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: индикатор уровня постоянного напряжения на Attiny13 (bas
СообщениеДобавлено: Вс апр 17, 2022 10:08:37 
Собутыльник Кота
Аватар пользователя

Карма: 14
Рейтинг сообщений: 121
Зарегистрирован: Сб май 21, 2016 11:04:52
Сообщений: 2977
Откуда: Беларусь
Рейтинг сообщения: 0
таки да, но никто не может мне помочь с этой детской книжкой. Где то я туплю , а где не понимаю

Добавлено after 10 minutes 18 seconds:
Re: индикатор уровня постоянного напряжения на Attiny13 (bascom)
VNS, вольтметр для диапазона 0.5-2.0 вольта , на одном 7seg .
например
1- 0.6в
2- 0.7в
.....
9- 1.9в

Добавлено after 46 seconds:
Re: индикатор уровня постоянного напряжения на Attiny13 (bascom)
индикаторы с общим плюсом (анодом)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: индикатор уровня постоянного напряжения на Attiny13 (bas
СообщениеДобавлено: Вс апр 17, 2022 11:20:32 
Говорящий с текстолитом
Аватар пользователя

Карма: 16
Рейтинг сообщений: 233
Зарегистрирован: Пт дек 10, 2021 12:48:46
Сообщений: 1522
Откуда: Тюмень
Рейтинг сообщения: 0
VNS, вольтметр для диапазона 0.5-2.0 вольта , на одном 7seg .

Понял. Только одно уточнение… если придерживаться данному значению:
Цитата:
например
1- 0.6в
2- 0.7в
.....
9- 1.9в

то цифре девять будет соответствовать напряжение 1,4 В, а не 1,9 В. Сделаю так:
1 = 0,21 В…0.40 В
2 = 0,41 В…0,60 В

9 = 1,81 В…2,00 В
При напряжении более 2 В засветится только сегмент А (Выход за максимум).
Так устроит?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: индикатор уровня постоянного напряжения на Attiny13 (bas
СообщениеДобавлено: Вс апр 17, 2022 11:38:26 
Мудрый кот

Карма: 25
Рейтинг сообщений: 462
Зарегистрирован: Сб май 05, 2012 20:24:52
Сообщений: 1702
Откуда: KN34PC, Болгария
Рейтинг сообщения: 0
olegue, попробуйте. На симуляторе работает.
(Должен признаться, это моя первая программа bascom. Очень вероятно, что вторая не будет :).
У него все ужасно и недружелюбно: от интерфейса до операторов. Личное первоначальное мнение конечно).
Код:
$regfile = "attiny13.dat"
$crystal = 9600000

$HWSTACK=40
$SWSTACK=8
$FRAMESIZE =8

Config Adc = Single, Prescaler = Auto, Reference = Internal
Config Portb.0 = Output
Config Portb.1 = Output
Config Portb.2 = Output

Ds Alias Portb.2
Sh_cp Alias Portb.0
Const St_cp = 1

Dim Level As Integer
Dim Volts As Integer

Start Adc

Do
Volts = Getadc(2)

If Volts >= 100 and Volts < 200 Then
   Level = 1
End If

If Volts >= 200 and Volts < 300 Then
   Level = 2
End If

If Volts >= 300 and Volts < 400 Then
   Level = 3
End If

If Volts >= 400 and Volts < 500 Then
   Level = 4
End If

If Volts >= 600 and Volts < 700 Then
   Level = 5
End If

If Volts >= 800 and Volts < 900 Then
   Level = 6
End If

If Volts >= 900 and Volts < 1000 Then
   Level = 7
End If

If Volts >= 1000  Then
   Level = 8
End If

R1 = Lookup(level, Numbers)
Shiftout Ds , Sh_cp, R1, 1
Pulseout Portb, St_cp, 5

Loop
End

Numbers:
Data &B10000001  '0
Data &B11110011  '1
Data &B01001001  '2
Data &B01100001  '3
Data &B00110011  '4
Data &B00100101  '5
Data &B00000101  '6
Data &B10110001  '7
Data &B00000001  '8
Data &B00100001  '9


Вложения:
1.zip [26.81 KiB]
Скачиваний: 122
prot.jpg [177.04 KiB]
Скачиваний: 80
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: индикатор уровня постоянного напряжения на Attiny13 (bas
СообщениеДобавлено: Вс апр 17, 2022 13:32:13 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 18
Рейтинг сообщений: 456
Зарегистрирован: Чт ноя 15, 2012 20:47:59
Сообщений: 2206
Откуда: Крымск
Рейтинг сообщения: 0
olegue писал(а):
но никто не может мне помочь

Вам бы сюда, здесь более специализированный портал!
http://bascomavr.3bb.ru/


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: индикатор уровня постоянного напряжения на Attiny13 (bas
СообщениеДобавлено: Вс апр 17, 2022 14:03:29 
Собутыльник Кота
Аватар пользователя

Карма: 14
Рейтинг сообщений: 121
Зарегистрирован: Сб май 21, 2016 11:04:52
Сообщений: 2977
Откуда: Беларусь
Рейтинг сообщения: 0
veso74, Adagumer, VNS, вы будете смеяться, но я все решил

проблема была в этой строке

Reference = Internal

а надо

Reference = Avcc

Теперь все отлично!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: индикатор уровня постоянного напряжения на Attiny13 (bas
СообщениеДобавлено: Вс апр 17, 2022 14:06:13 
Друг Кота

Карма: 67
Рейтинг сообщений: 1964
Зарегистрирован: Сб дек 18, 2021 19:25:32
Сообщений: 12867
Рейтинг сообщения: 0
хммм... так может точность быть хуже.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: индикатор уровня постоянного напряжения на Attiny13 (bas
СообщениеДобавлено: Вс апр 17, 2022 14:08:10 
Собутыльник Кота
Аватар пользователя

Карма: 14
Рейтинг сообщений: 121
Зарегистрирован: Сб май 21, 2016 11:04:52
Сообщений: 2977
Откуда: Беларусь
Рейтинг сообщения: 0
VNS, вольтметр для диапазона 0.5-2.0 вольта , на одном 7seg .

Понял. Только одно уточнение… если придерживаться данному значению:
Цитата:
например
1- 0.6в
2- 0.7в
.....
9- 1.9в

то цифре девять будет соответствовать напряжение 1,4 В, а не 1,9 В. Сделаю так:
1 = 0,21 В…0.40 В
2 = 0,41 В…0,60 В

9 = 1,81 В…2,00 В
При напряжении более 2 В засветится только сегмент А (Выход за максимум).
Так устроит?



Конечно, устроит. Но я и сам тут не сижу без дела. Поэтому надо теперь придуать делитель и нужна помощь как пересчитать ооцифрованные значения в Вольты

Добавлено after 1 minute:
Re: индикатор уровня постоянного напряжения на Attiny13 (bascom)
Martian, internal вообще не работает.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: индикатор уровня постоянного напряжения на Attiny13 (bas
СообщениеДобавлено: Вс апр 17, 2022 14:08:19 
Говорящий с текстолитом
Аватар пользователя

Карма: 16
Рейтинг сообщений: 233
Зарегистрирован: Пт дек 10, 2021 12:48:46
Сообщений: 1522
Откуда: Тюмень
Рейтинг сообщения: 0
:) Я тоже написал, но раз не надо, выкладывать не буду. :beer:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: индикатор уровня постоянного напряжения на Attiny13 (bas
СообщениеДобавлено: Вс апр 17, 2022 14:11:51 
Друг Кота

Карма: 67
Рейтинг сообщений: 1964
Зарегистрирован: Сб дек 18, 2021 19:25:32
Сообщений: 12867
Рейтинг сообщения: 0
просто internal = 1.1 В опорное напряжение. Я думал, побольше... да, вариант с Avcc тут лучше


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: индикатор уровня постоянного напряжения на Attiny13 (bas
СообщениеДобавлено: Вс апр 17, 2022 14:29:06 
Говорящий с текстолитом
Аватар пользователя

Карма: 16
Рейтинг сообщений: 233
Зарегистрирован: Пт дек 10, 2021 12:48:46
Сообщений: 1522
Откуда: Тюмень
Рейтинг сообщения: 0
Поэтому надо теперь придуать делитель

Зачем делитель? Измеряемое напряжение больше 5 В? Тогда да, делитель нужен. А какое входное напряжение?
Цитата:
нужна помощь как пересчитать ооцифрованные значения в Вольты

В даташите есть формула перевода значений АЦП в напряжение.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: индикатор уровня постоянного напряжения на Attiny13 (bas
СообщениеДобавлено: Вс апр 17, 2022 15:15:21 
Собутыльник Кота
Аватар пользователя

Карма: 14
Рейтинг сообщений: 121
Зарегистрирован: Сб май 21, 2016 11:04:52
Сообщений: 2977
Откуда: Беларусь
Рейтинг сообщения: 0
чет , я опять поплыл

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

ну да ладно

я методом тыка установил, что при 1.27в у меня adc от 250 до 300

Добавлено after 8 minutes 11 seconds:
Re: индикатор уровня постоянного напряжения на Attiny13 (bascom)
1.27 в -это между 250 и 260, можно принять 255 , а как дальше считать?
сколько принимать напряжение Avcc?

Добавлено after 36 seconds:
Re: индикатор уровня постоянного напряжения на Attiny13 (bascom)
5в?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: индикатор уровня постоянного напряжения на Attiny13 (bas
СообщениеДобавлено: Вс апр 17, 2022 15:32:05 
Друг Кота

Карма: 67
Рейтинг сообщений: 1964
Зарегистрирован: Сб дек 18, 2021 19:25:32
Сообщений: 12867
Рейтинг сообщения: 0
ну, упрощённо говоря, если AЦП 10 бит, то это 1024 значений.
Если опорное Avcc, то есть равно питанию, а питание 5 вольт, то 5/1024 = 4.88 мВ. То есть, 1 значения АЦП - 4.88 милливольт. если 1.27 разделить на 0.00488, то получается 260.

отсюда видно, что показания, помимо погрешностей преобразования, зависят от опорного напряжения. если питание просадится до 4.9 В, то AЦП при измерении 1.27 покажет уже 265


Последний раз редактировалось Martian Вс апр 17, 2022 15:34:46, всего редактировалось 1 раз.

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: индикатор уровня постоянного напряжения на Attiny13 (bas
СообщениеДобавлено: Вс апр 17, 2022 15:33:59 
Говорящий с текстолитом
Аватар пользователя

Карма: 16
Рейтинг сообщений: 233
Зарегистрирован: Пт дек 10, 2021 12:48:46
Сообщений: 1522
Откуда: Тюмень
Рейтинг сообщения: 0
:) А про АЦП читал? Или всё методом тыка?

Так нужен мой вариант на АВ или ну его? :))
Могу просто прошивку кинуть для попробовать, вот такая схема:
Вложение:
olegue.png [27.7 KiB]
Скачиваний: 107


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 30 ]  1,  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 40


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y