• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

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

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Вольтамперметр на ATtiny13

  • Автор темы Автор темы alex117
  • Дата начала Дата начала

alex117

Новые
Регистрация
14 Июл 2014
Сообщения
627
Реакции
44
Баллы
0
Вольтамперметр на ATtiny13

Здравствуйте.
Есть кучка Attiny13 дисплей на контроллере HD44780 2х16 и желание собрать вольтамперметр для зарядного стройства. Вроде нашел схему АмперВольтметр на attiny13 » Меандр - занимательная электроника, но там непонятно, как подключать дисплей, куда подавать измеряемое напряжение и цеплять шунт для измерения тока.
Может кто-то повторял схему?
 
Там все понятно. Питается устройство от акума, вывод V+ к плюсу аккума, V- к минусу, шунт 0,1 Ом между выводами GND-In и GND-Out. Дисплей подсоединять в той же последовательности что и на схеме, притом JP3 - это D7, D6, D5, D4, а JP4 - это E, R/W, RS, VLS, Vcc, Vss (все расписано с лева на право как в схеме).
Схему не проверял, можешь проверить в протеусе.
 
А не в курсе, как поправить прошивку, чтобы вместо LCD 16x2 использовать LCD 08x2 ?
Мне нужно убрать датчик температуры и сделать так, чтобы на первой строке выводилось напряжение, а на второй - ток.
Есть похожая схема для LCD 08x2, но там attiny26, которая дико дорогая, в отличие от 13-й тиньки.
 
Вот его исходник (жирным выделил, как я думаю, то, что касается дисплея):
'------------------------------------------------------------------------------'
'Program: miniaturowy miernik do zasilacza na attiny13 i LCD '
'Wersja z 64 próbkami i wyœwietlaniem œredniej '
'kompilator: bascom 1.11.9.0 data: 23.12.2009 autor: Manekinen '
'strona domowa projektu: mdiy.pl | wolno? wariacie w swoim warsztacie '
'wszelkie modyfikacje dozwolone, publikuj¹c nale¿y zachowaæ ten nag³ówek '
' WY£¥CZNIE DO U¯YTKU NIEKOMERCYJNEGO '
'------------------------------------------------------------------------------'

Const Pullup = 6 'ile mV b³êdu wprowadza pullup wyœwietlacza pod³¹czony do gnd poprzez 100ohm... troche nieeleganckie ale proste i skuteczne :)

$regfile = "attiny13.dat"
'$regfile = "m8def.dat"
$crystal = 1200000
'$crystal = 2000000
$hwstack = 8
$swstack = 16
$framesize = 16

'$noramclear
'$sim

Dim Pomiar As Word
Dim Pokaz As String * 4
Dim Pokaz2 As String * 4
Dim Znak As Byte
Dim Licz As Byte
Dim Petla As Byte

Declare Sub Mierz
Declare Sub Formuj
Declare Sub Wyswietl

Config Adc = Single , Prescaler = Auto , Reference = Internal 'off
Start Adc

Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portb.2 , Db5 = Portb.4 , Db6 = Portb.3 , Db7 = Portb.5 , E = Portb.1 , Rs = Portb.0

Cursor Off
Cls


Do

Upperline 'od nowa dla napiêcia i pr¹du
Licz = 1 'adc dla napiecia
Mierz 'mierzy i formuje napiêcie
'Moc = Pomiar 'kopia dla obliczeñ mocy
Znak = 86 'znak dla napiêcia
Wyswietl 'wyœwietla napiêcie

Licz = 3 'adc dla pr¹du ------- ??????
Mierz 'mierzy i formuje pr¹d
'w pomiar zostaje pr¹d
Pokaz2 = Format(pokaz , "0.00") 'forumje pr¹d drugi raz
Znak = 65 'znak dla pr¹du
Wyswietl 'wyœwietla pr¹d

'Lowerline 'od nowa dla temperatury i mocy
'Mnozenie
'Pomiar = Moc * Pomiar 'liczy moc
'Pomiar = Pomiar / 100
'Formuj
'Znak = 87 'znak dla mocy
'Wyswietl 'wyœwietla moc

Licz = 0 'adc dla temperatury
Mierz 'mierzy i formuje temperaturê
Znak = 42 'znak dla temperatury
Wyswietl 'wyœwietla temperaturê


Loop
'_______________________
Mierz:
Pomiar = 0
Petla = 0

Do
Incr Petla
Pomiar = Pomiar + Getadc(licz) 'sumuje pomiary
Pomiar = Pomiar - Pullup 'za ka¿dym razem odejmuje napiêcie pullupa
Loop Until Petla = 64 '64 próbki

Shift Pomiar , Right , 6 '6/64
If Pomiar > 999 Then Pomiar = 0 'granica do 99.9


Formuj:

Pokaz = Str(pomiar)
Pokaz2 = Format(pokaz , "00.0")
Return


Wyswietl:
Ddrb = &B111111
Lcd Pokaz2 ; Chr(znak) ; Chr(32)
Ddrb = &B010011
Return
Нужно сделать вот так:
 

Вложения

  • Безымянный.png.webp
    Безымянный.png.webp
    15.1 KB · Просмотры: 442
Последнее редактирование:
Назад
Сверху