Ещё один ваттметр на Arduino
- Войдите на сайт для отправки комментариев
Ср, 26/03/2014 - 01:27
Вот набросал LCD ваттметр:
#include <LiquidCrystal.h> |
#define interval 330 // обновление дисплея мс |
LiquidCrystal lcd(2, 3, 4, 5, 6, 7); // подправьте под свою схему |
long previousMillis = 0; |
void setup () { |
lcd.begin(16, 2); |
lcd.print( " Wattmetr" ); // приветствие |
lcd.setCursor(0,1); |
lcd.print( " V0.3" ); // версия 0.3 |
delay(1000); |
lcd.clear(); |
} |
void loop () { |
////////////////////////////////////////////////////// |
int Voltmeter = analogRead(A0); // A0 вольтметр |
int Ampermeter = analogRead(A1); // A1 амперметр |
float Volt = Voltmeter * (20.0 / 1023.0); // 20 В макс |
float Amp = Ampermeter * (10.0 / 1023.0); // 10 А макс |
float Watts = Volt * Amp; |
////////////////////////////////////////////////////// |
|
unsigned long currentMillis = millis(); |
if (currentMillis - previousMillis > interval) { |
previousMillis = currentMillis; |
lcd.clear(); // очистим лсд дисплей |
lcd.setCursor(0, 0); |
lcd.print(Volt); |
lcd.print( " V" ); |
lcd.setCursor(9,0); |
lcd.print(Amp); |
lcd.print( " A" ); |
lcd.setCursor(0,1); |
lcd.print(Watts); |
lcd.print( " W" ); |
} |
} |
Может потом добавлю несколько плюшек.
Видео роботы:
http://www.youtube.com/watch?v=PYt_gBaUVVY
Ищу тестера, так как мне собирать схему леньки, да и датчика тока нету, а делать свой - леньки.
Вообщем если кого заинтересует пишите тут.
Ищу тестера, так как мне собирать схему леньки, да и датчика тока нету, а делать свой - леньки.
У меня есть датчик тока
http://www.aliexpress.com/item/Brand-New-3-5mm-Output-AC-Current-Sensor-Transformer-SCT-013-030-Built-in-Diode-ST038/548288665.html
и токовый трансформатор
http://www.aliexpress.com/item/Free-Shipping-5A-scale-AC-current-transformer-module-current-sensor-module/1305018612.html
ненужные, если надо - обращайся.
Спасибо, но эти датчики для переменного тока, а у меня первоприоритетный постоянный.
Проверка на железе:
http://www.youtube.com/watch?v=LKyh8LfCorg
Код пока дорабатываю.
01
#include <LiquidCrystal.h>
02
#define interval 330 // обновление дисплея мс
03
04
LiquidCrystal lcd(2, 3, 4, 5, 6, 7);
// подправьте под свою схему
05
long
previousMillis = 0;
06
int
Voltmeter;
// A0 вольтметр
07
int
Ampermeter;
// A1 амперметр
08
float
Volt;
09
float
Amp;
10
float
Watts;
11
12
void
setup
() {
13
lcd.begin(16, 2);
14
lcd.print(
" Wattmetr"
);
// приветствие
15
lcd.setCursor(0,1);
16
lcd.print(
" V0.3"
);
// версия 0.3
17
delay(1000);
18
lcd.clear();
19
}
20
21
void
loop
() {
22
//////////////////////////////////////////////////////
23
Voltmeter = analogRead(A0);
24
Ampermeter = analogRead(A1);
25
Volt = Voltmeter * (20.0 / 1023.0);
// 20 В макс
26
Amp = Ampermeter * (10.0 / 1023.0);
// 10 А макс
27
Watts = Volt * Amp;
28
//////////////////////////////////////////////////////
29
30
unsigned
long
currentMillis = millis();
31
if
(currentMillis - previousMillis > interval) {
32
previousMillis = currentMillis;
33
lcd.clear();
// очистим лсд дисплей
34
lcd.setCursor(0, 0);
35
lcd.print(Volt);
36
lcd.print(
" V"
);
37
lcd.setCursor(9,0);
38
lcd.print(Amp);
39
lcd.print(
" A"
);
40
lcd.setCursor(0,1);
41
lcd.print(Watts);
42
lcd.print(
" W"
);
43
}
44
}
Думаю эсли сделать переменные глобальными это только скушает больше памяти.
Используя функцию analogReference() если использовать мегу 328/168-ю то там можно выставить опорное напряжение в 1.1 В, это даст точность в 1 мВ + оферсемплинг для повышения битносни АЦП(хотябы до 11 бит) дадут шаг АЦП в пол миливольта(если я всё верно подсчитал), что в свою чергу позволит обходится без каких либо ОУ и измерять падение напряжение непосредственно дуиной.
Проверка на железе:
http://www.youtube.com/watch?v=LKyh8LfCorg
Код пока дорабатываю.
На сколько я понимаю, амперметр у Вас подключен не к АКБ а к другому источнику? При токе в 30 ампер практически отсутствует просадка по напряжению...
Амперметра нету, вместо него просто ручка потенциометра. Протсто тестировал.
Zdrastvui HWman
Menia zovut Bazar i hotel svami prokonsultirovatsia. Ia hotel izmerit mownost moiego rezervnogo istochnika toka zavisimo ot vremeni ili energiu s pomowiu arduino. Izvesno amper i volt . Problema takaia . U plati Arduino skorost obrabotka informasii namnogo medlenne i ne vozmojno obrabotat informasiu . Esli prinimat signalov (amper i volt ) s pomowiu arduino i otpravit PC(computer) vozmojno li izmeriat mownost ili energiu rezervnogo istochnika toka ?
Mne kajetsia zdes nado napisat programmu ne tolko dlia arduina no i dlia kompuitera toje. Potomu wto v komputere idet proses obrabotki informassi . Kak vi dumaete /? ia zhdu ot vas kritiki ili soveta . Zaranee spasibo
Зачем измерять то что известно? Зная ток и напряжение не сложно вычислить мощность.
Медленнее чего? Почему не возможно? Сколько раз в секунду нужно выводить информацию о мощности? Ардуине не хватает разрядности АЦП для повышения точности и ширины диапазона измерений. Часто возникает желание мерять токи от мили(микро)ампера до десятков ампер. И как раз погрешность при минимальных и максимальных токах в данном случае не позволяет корректно рассчитать мощность.
Spasibo za otveta . Vi mne chem to pomogli .
Схемотехнику и кое какие решения заимствовал отсюда http://easymcu.ru/publ/10-1-0-117
Скоро соберу в железе.
Слежу за направлением ибо мастерю лабораторный блок питания.
В основе БП ATX от ПК на 450 Ватт, и такой пластиковый корпус:
Терморегуляция и вентиляция были в блоке питания штатно, но пришлось заменить кулер. Защиты от КЗ встроены. Запускается без нагрузочных сопротивлений. Наиболее востребованные напряжения 3.3, 5, 12 вольт являются основными для блока. Вывел эти напряжения на бананах по нижней линии лицевой панели. Справа разместил зажимные разъёмы (как в аккустических колонках). Слева поставил тумблер питания, под ним в круглое отверстие вывел провода с молексами разных видов. В угол затолкал USB разъём дежурки, для зарядки различных гаджетов. Кроме того сколхозил зарядное устройство для Li-Ion, Li-Polymer аккумуляторов на MCP73831T-2ACI/OT. Отлично заряжает акумы крокодилами с индикацей процесса.
Когда начинал курить идею мыслил о микропроцессорным управлением изменения ВАХ от нагрузки на каждую линию питания, индикацию потребления каждой линии, защиты по току (так как токами в 20А легко все дорожки пожечь на подопытных) и прочее. Но суровая действительность и сжатые сраки как обычно упростили задачу. Конечно сделал последовательно/параллельный провод с бананами по середине и PLD в термоусадке для макетки, втыкая который в старый мультиметр и выбирая предел всё удобно измерить. Кстати место по центру блока как раз оставил под индикатор 1602 для будущих идей.
Теперь же на досуге подумываю о динамической индикации нагрузок. Как раз сегодня от 12 вольт запитывал автомобильный телевизор и видеокамеру. В сумме потребляли польше ампера, при этом плата телевизора оставалась холодной, а камера обжигала пальцы. На практике оказалось что тв лопал 1.8А, камера 0.15А.
Как думаете - сильно усложнится схема если будет три контролируемых линии?
Мощности кстати сами по себе мало информативны. Если речь идёт о нагрузке то чаще контролируешь токи и напряжения. Если разработывается аккумуляторное устройство, то скорее будет интересна таблица потребеления в различных режимах. Если есть переходные процессы - нужны графики. Про замер емкости аккума - отдельная статья. Конечно хорошо бы точно знать что сколько нагрузки на 3.3 вольта не повесь - останется 3.3, при этом ограничил схему расчётным током (скажем 150 мА) и спокоен что схема не выгорит, отладил и прикидываешь по приборам сколько хавает энергии в разных режимах и какие бывают пиковые токи (тут уже таблица и график) - удобнее к компу подключить и на мониторе в релтайме сравнивать с даташитами изменяя режимы модулей схемы.
Как думаете - сильно усложнится схема если будет три контролируемых линии?
Если делать как я хочу то надо будет 3 делителя напряжения 3 ОУ или 2 сдвоеных, например LM358N.
Пару штук LM358 и несколько smd резисторов звучит уже интересно. Кстати четвертая линия - как раз для контроля зарядки литиевых батарей.
А что скажете по сохранению таблицы значений на флеш и представление их графически, как тут?
Хотя по прежнему думается что оперативно нужны только текущие показатели, а толковый график потребует дисплея от 0 до 15 вольт с шагом 00.01 для напряжений, а токи придётся показывать 00.001 , что в общем то уже задача для excel.
А что скажете по сохранению таблицы значений на флеш и представление их графически, как тут?
Если я правильно понял то данные сначала записываются в оперативку а потом уже считываются оттуда и выводятся на дисплей, не вижу тут ничего необычного.
Если честно я тут ничего посоветовать не могу, опыта не хватает, да и знаний.
при 9А какое напряжение на выходе операционника?
при 0А какое?
при 9А какое напряжение на выходе операционника?
при 0А какое?
9 А должно быть при 2.56 В.
При нуле я хз, пока ещё не собирал в железе, но у меня есть корректировка, даже если и больше нуля то пофиг.
на всякий случай, вдруг забыл
на всякий случай, вдруг забыл
В протеусе напряжение 0.01 В а в железе хз.
к нулю ближе. там попроще. а вот к напряжению питания опреционника хуже, если бы операционник питал от 5В и при 9А должно было быть 5В на выходе
А если использовать операционник LM358P?
[DIP-8] ОУ общего применения 1 МГц, 2 мВ, 3...32В
А если использовать операционник LM358P? [DIP-8] ОУ общего применения 1 МГц, 2 мВ, 3...32В
У меня в закромах только LM358N.
16рублей/штука. Главного не понимаю: как без шунта померять текущий в схеме ток и напряжение? Сравнить можно операционником, а измерить как?
Главного не понимаю: как без шунта померять текущий в схеме ток и напряжение? Сравнить можно операционником, а измерить как?
Чёт у меня плохой день сегодня, не совсем понял о чём Вы.
Измерить ток без шунта довольно таки проблематично, так как нужна разница напряжений, то есть падение напряжение на выходе относительно входа. А как я хочу делать корректировку? Я просто при старте замеряю напряжение без нагрузки, то есть то которое будет давать сам ОУ - константа, которую я потом вычитаю при расчётах тока.
Пока не соберу, в железе, то не уверен что я делаю так как хочу, так что держите руку на пульсе этой темы...
Вот это поворот да?
Быстрый тест:
https://www.youtube.com/watch?v=oXgvUM9U2ng
Думается в моём случае уместно будет применить 20 символьный индикатор MT-20S4, ибо за раз можно будет вывести все показатели по трем цепям и ещё доп.строку, например с показаниями температуры.
Хотя в таком (как выяснилось весьма сложном) вопросе всегда найдётся что добавить по исследуемой цепи: например интересно знать сопротивление цепи
молчу про ёмкость и индуктивность, а понимание направления ЭДС при включении электродвигателя/генератора или заряде/разряде включенной в цепь батареи даст представление о протекающих в цепи процессах. И это хорошо что речь идёт только о постоянном токе.А надписи по строкам слева "Напряжение U, Ток I, Мощность P" и справа "Вольт, Ампер, Ватт" можно выгравировать на лицевой части корпуса, разместив экран как раз над кругдыми разъёмами (banana).
К слову сказать девайс получился недорогим, простым и удобным как топор. Плата из старого системного блока as is, произвольный корпус, пригоршня разъёмов и выключатель. Имеем 3.3, 5, 12 вольт с токами по 20, 15, 10 ампер; защиту от КЗ; защиту от перегрева с градусником и вентилятором; и как бонус usb на контрольке (когда БП включен в сеть, но выключен тумблер на передней панели). Ещё бы ограничители тока..., но пока юзаю провод с smd-самовостанавливающимся в разрыв питаемой цепи на нужный ток. Хорошо бы сделать отдельно из 12В регулируемую по напряжению линию, для полного фарша. А добавив вышеописанный контроллер с дисплеем можно будет смело считать его универсальным блоком питания для отладки любых схем на любых МК, в том числе с управлением силовыми нагрузками, например двигателями и пр.
P.S.: Мне в радиомагазине tixer.ru желательно купить железяк на 1000р. Если там есть что для проекта - с удовольствием закажу.
Дороговат такой дисплей... я думал конечно же про него...
А что за прога в которой происходит эмуляция лсд?
Думал поискать аналог. Основная цена за руссификацию контроллера нашими производителями.
Прога называется MS Paint. Шрифт точечный в командной строке. Копипастом поверх тестовой картинки экрана. Хотя на проги для эмуляции натыкался...
Вот еще проект: ATMEGA328 DIY USB Line Power Meter Stick
Схему можно упростить забрав усилитель тока и используя встроенную опору
Практиковал я оверсемплинг, очень даже неплохо получаеться. http://arduino.ru/forum/programmirovanie/povyshenie-razresheniya-atsp-s-...
Вот еще проект: ATMEGA328 DIY USB Line Power Meter Stick
Схему можно упростить забрав усилитель тока и используя встроенную опору
Там всё продумано, без усиления при шунте 0,01Ом и опоре 1,1в полная шкала будет 110 ампер. 1 LSB будет 0,1А. Без усиления можно измерять только микроамперы, увеличив сопротивление шунта до сотни ом.
Придется подкорректировать сопротивление шунта и код
Если увеличить сопр. шунта, то упадёт напряжение на выходе. При сопротивлении шунта 1 ом и токе 1а на выходе будет уже 4 вольта вместо пяти. Какие-то устройства могу отказаться работать. Зарядки начнут заряжать не за час, а за два.. И это не считая потерь в проводах.
Приветствую, аццы. А где можно посмотреть электрическую схему сего ваттметра?
Такое устроиство сколько стоить, интересно ? Если я закажу у Вас?.
Мне нужен ватметр . Хочу заказать.
Заказывайте: http://www.ebay.com/itm/DC-90V-30A-Amp-Volt-Combo-Meter-Battery-Capacity-Power-Charge-Discharge-Monitor-/151573667969
Только не путайте погрешность и разрешение......
Spasibo Trembo !!!!
я нашел ватметр и стоит он примерно $ 12. Высылаю сылку:
http://www.ebay.com/sch/i.html?_odkw=wattmeter+for&_osacat=92074&_from=R...
Поделитесь проектом в протеусе пожалуйста!