Агуулгын хүснэгт:

Подключаем Ардуино К Счётчику / Arduino -г цахилгаан тоолуураас импульсийн өгөгдлийг уншихад холбох: 20 алхам
Подключаем Ардуино К Счётчику / Arduino -г цахилгаан тоолуураас импульсийн өгөгдлийг уншихад холбох: 20 алхам

Видео: Подключаем Ардуино К Счётчику / Arduino -г цахилгаан тоолуураас импульсийн өгөгдлийг уншихад холбох: 20 алхам

Видео: Подключаем Ардуино К Счётчику / Arduino -г цахилгаан тоолуураас импульсийн өгөгдлийг уншихад холбох: 20 алхам
Видео: #ArduBlock 2.0 - Счётчик людей на Arduino 2024, Арваннэгдүгээр
Anonim
Подключаем Ардуино К Счётчику / Arduino -г холбож цахилгаан тоолуураас импульсийн өгөгдлийг уншина уу
Подключаем Ардуино К Счётчику / Arduino -г холбож цахилгаан тоолуураас импульсийн өгөгдлийг уншина уу

Энэ нь интересно посмотреть как меняется мощность в домашней электро-цепи в разное время суток и при разном потреблении. Складывать ватты всех лампочек - скучно и, увы, не факт, что точно. Во всяком случае, что там думает себе счётчик - всегда не очень наглядно. Висит на стене. Мигает. Барабаны крутятся очень медленно, чтобы ощутить разницу в 100 W. I ут у меня нашлась свободная плата arduino nano, час та натхнення.:)

Алхам 1: Теория / онол

Теория / онол
Теория / онол

Astrei -ийн үндсэн зарчмын дагуу ажилладаг цахилгаан станцууд. Принцип его работы до смешного прост - энэ нь электродвигатель, ротором которлох является алюминиевый диск, вращающий циферблат. Чем больте потребляемый ток- тем быстрее крутится диск. Устройство чисто аналоговое. Однако сегодня индукционные счетчики сдают свои позиции, мастер своим более десевым электронным собратьям.

Принцип работы не сильно изменился - в днем дисковые диск заменен электроники, вопросы импульси в соответствии потребляемой электроэнергии. Кав правило, в большинстве приборов эти импульсы показывает светодиодный индикатор. Соответственно, чем быстрее мигает эта лампочка - тем больше сжигается драгоценных кВт. Кром того, на лицевой панели любого устройства есть передаточное соотношение счетчика А - число импульсов на 1 кВт*ц.

Алхам 2: Электро-механический Счётчик / Цахилгаан механик тоолуур

Электро-механический Счётчик / Цахилгаан механик тоолуур
Электро-механический Счётчик / Цахилгаан механик тоолуур

"Сеть" и рядом указано, 1kW*h набегает за 6400 импульсов импульсов импульсов.

Это значит, что 1 импульс равен 1/6400 кВт эсвэл 1000/6400 = 0, 015625 W*H.

Если я сосчитаю время между двумя импульсами, то могу узнать среднюю нагрузку на сеть за этот үе.

Алхам 3: Материальная База / Миний хэрэглэж байсан зүйлс

Материальная База / Миний ашигласан зүйлс
Материальная База / Миний ашигласан зүйлс

Для макетинг ба отладки устройства и использовал:

  1. Arduino нано
  2. Дисплей аналог Hitachi LCD 20x2
  3. Светодиод с резистором для индикации считывания и буззер с генератором для оповещения о слишком высоком потреблении.
  4. Фоторезистор
  5. Макетная плата breadboard и всякие проводки/перемычки, резистор, конденсаторы, чтобы это всё соеденить.

Алхам 4: 1. Arduino Nano

1. Ардуино Нано
1. Ардуино Нано

1. Яг использовал arduino nano потому что она очень маленькая, дешёвая, имэйт встроенный USB драйверууд нь маш их ашиг тустай байдаг. Ну а так же, поскольку именно такая плата у меня освободилась от прошло проекта.:)

Алхам 5: 2. Дисплей / Дэлгэц

2. Дисплей / Дэлгэц
2. Дисплей / Дэлгэц

2. Дисплей Бартон BT22005VSS-09 является аналогом дисплея Hitachi LCD 20x2 и отличается лишь расположением выводов в гребёнке 8х2.

Алхам 6: Подключение Дисплея / Дэлгэцийн утас

Подключение Дисплея / Дэлгэцийн утас
Подключение Дисплея / Дэлгэцийн утас

Ялгаварлан гадуурхах ардуино 5-р хувилбарыг үзнэ үү, энэ бол ЗДЕСЬ. Линю данных D4-7 к контактам D5-2 arduino, RS к D12, EN к D11, а R/W на GND.

LiquidClystall програмыг IDE -ийн стандартын дагуу ашиглах боломжтой болно.

Алхам 7: 3. Светодиод И Буззер / LED ба BUZZER

3. Светодиод И Буззер / LED ба BUZZER
3. Светодиод И Буззер / LED ба BUZZER
3. Светодиод И Буззер / LED ба BUZZER
3. Светодиод И Буззер / LED ба BUZZER

3. К ножке D13 arduino я подключил светодиод индикации с последовательным резистором на GND. высокого потребления.

Алхам 8: 4. Фото-сенсор / Гэрэл мэдрэгч (фоторезистор)

4. Фото-сенсор / Гэрэл мэдрэгч (фоторезистор)
4. Фото-сенсор / Гэрэл мэдрэгч (фоторезистор)
4. Фото-сенсор / Гэрэл мэдрэгч (фоторезистор)
4. Фото-сенсор / Гэрэл мэдрэгч (фоторезистор)

4. Фоторезистор ФСК-1 я подключил к аналоговому входу A1 и к +5в. При этом, прижав ножку входа A1 к GND резистором 10k.

Без это резистора потенциал на входе спадал очень медленно, что мешало снимать показания.

Алхам 9: Arduino програм / Ардуиног кодлох

Image
Image

При считывании данных с аналогового пина я столкнулся с проблемой уровней сигнала. Ведь напряжение на входе зависит от сопротивления фоторезистора, которое меняется в зависимости от освещённости. Корпус счётчика не позволяет установить сенсор так, чтобы комнатный свет не попадал на сенсор, поэтому в тёмной комнате показания сенсора будут существенно отличаться от показаний в светлой. Гэсэн хэдий ч програмист биш, харин столкнульсяны хувьд ямар ч асуудалгүй болно.

Алхам 10: Начнём Со Статистического Поиска Ширины Окна / Цонхны өргөнийг эхлүүлэх

Определим Состояние Индикатора / Логикийг харна уу
Определим Состояние Индикатора / Логикийг харна уу

Чобы найти момент перехода (начальо загорания или потухания индикаторана счётчике) болон привязать к нему таймер для думум одинаковыми переходами (далее - длина импульса), шаардлагатай бол.

Вакестве такой опоры нааписал функции инициализации initWindow, визывая её единожды в цикле setup ().

При старте микроконтроллер сперва 5 секундын турш показаниями сенсор, запоминая его предельные верхний и нижний уровни показани соответствующие переменные порогов окна winHi и winLo.

Алхам 11: Определим Состояние Индикатора / Логикийг харна уу

Определим Состояние Индикатора / Логикийг харна уу
Определим Состояние Индикатора / Логикийг харна уу

Теперь я могу сравнивать текущее значение с этими порогами и написать функции определения состояния индикатора checkLogic, орчуулгын сэдвүүд, мөн чанар, мэдлэг, цэвэрлэгээний сенсора к пороговым значениям при сбор. Төрийн функцууд нь ҮНЭН при показаниях сенсора више верхнего порога с припуском (минус 30% ширины окна), ХУУРАМ, когда показания сенсора ниже чем нижний порог (плюс. 30% ширины окна).

Алхам 12: Loop ()

Гогцоо ()
Гогцоо ()

Таким образов, в основном цикле програмы и сперва считываю значение сенсора, затем, на всякий случай, расширяю окно до его значения, старое состояние индикатора ledState копирую в буфер ledStateOld, ивизо

Алхам 13: Переход Вверх Или Начало Импульса / Импульсийн толгой

Переход Вверх Или Начало Импульса / Impulse Head
Переход Вверх Или Начало Импульса / Impulse Head

Если идикатор горел и вдруг погас (его обычное состояние - гореть, а начало импульса - это кратковременное погасание) - значит, счётчик сообщил о начале импульса.

Хязгаарлагдмал таймер, пост функцууд нь микро. Оно возвращает количество микросекунд, прошедших с момента старта arduino. Осталось только из “текущее времени” вычесть “время прошло перехода” болон получить количество микросекунд между переходами, а это и есть длина импульса.

Энэ нь 1kW жинтэй импульсовын хувьд 1 кВт -ын жинтэй импульс юм.

В случае, если нагрузка выше некоторой пороговой, я включал буззер.

Так же в момент перехода “вверх” эсвэл привязал функцууд нь дансны дисплей, полькольк сильно мерцал при большой частоте обновления данных на нём.---

“Но ведь в одном час 3’600’000’000 микросекунд, а не 3’600’000’000’000” - заметят мне внимательные. Би үүнийг ойлгосон. Лишние три нуля - эго то самое умножение на 1000, для перевода из кВ в W. Иначе компилятор ругается на сликом большее величины, компилирует, но в итоге програм не сообщает значения. Пришлось как-то выкручиваться.

Алхам 14: Переход Вниз, Или Продолжение Отсчёта / Impulse Tail

Переход Вниз, Или Продолжение Отсчёта / Impulse Tail
Переход Вниз, Или Продолжение Отсчёта / Impulse Tail
Переход Вниз, Или Продолжение Отсчёта / Impulse Tail
Переход Вниз, Или Продолжение Отсчёта / Impulse Tail

К “переходу вниз” эсвэл привязал отключение диода индикации и буззера, бас образом, частота пищания буззера соответствует частоте мигания индикатора счётчика.

Так же туда была прикручена функцууд нь ойролцоо CloseAnalogWindow, энэ бол импульсын хувилбар юм. Тооцоолсон мэдээлэл нь "хүчин төгөлдөр бус" хүчин зүйлсийн нэг хэсэг юм.

Алхам 15: Индикация / Өгөгдөл харах

Индикация / Өгөгдөл харах
Индикация / Өгөгдөл харах

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

А цифровой дисплей нь 20x2 хэмжээтэй симулятор юм.:) Загварын статистик мэдээллүүдийг 3 -н хэсэгт оруулна уу: систем окна, значение сенсора ба верх окна. Эту эсвэл информацию отображаю во второй строке на шкале шириной в окно.

В рабочем цикле я в одну строку вывожу ток (ватт /220), мощность (ватт) ба ширину шкалы, а в другую строку - саму шкалу, масштаб которой изменяется в зависимости от того, не превышен ли порог. Та 1000 W ба стандарт 0-1000 горимд, 1000-2000 горимд шилжих боломжтой.

Алхам 16: Шкала От 0 До 99 На 20 Символьной Строке И Знакогенератор / Progressbar 100px

Шкала От 0 До 99 На 20 Символьной Строке И Знакогенератор / Progressbar 100px
Шкала От 0 До 99 На 20 Символьной Строке И Знакогенератор / Progressbar 100px

Цифры на дисплее довольно мелкие и их сложно разглядеть издалека. Поэтому на каком-то этапе я решил использовать одну из строк дисплея как шкалу. Дисплей имеет по 20 знакомест в строке. Каждое знакоместо может содержать в себе один символ: цифру, букву или знак. Таком случае я могу без труда разместить шкалу с ценой деления в одно знакоместо. Т.е. удалгүй 20 делени.

Энэ бол маш том баримт бөгөөд энэ нь 100 пикселийн нарийвчлалтай бөгөөд энэ нь 5 столбиковоос 7 пикселийн хэмжээтэй байх болно. Ийм байдлаар 100 столбиков. 1 кВт -ын багтаамжтай шкалу с ценой делени 10 W. А это уже довольно наглядное разрешение.

Я решил воспользоваться возможностью энэ нь дисплеяг бий болгоход туслах болно. V arduino IDE нь стандарт стандарт загвар, бүтээх произвольных символов юм. (и замечательное руководство по этой задаче я нашёл в интернете)

Алхам 17:

Зураг
Зураг
Зураг
Зураг

Энэ бол символы хувилбар юм.

Здесь можно увидеть, что один символ имеет вертикальную черту слева, а второй - уже две черты

Тооцоолоход шаардлагатай хамгийн том тохиргоо (), жишээ нь, 5-р сарын 5-ны өдөр хүртэл "палочкой" гэсэн нэр томъёог ашиглана уу.)

Алхам 18:

Зураг
Зураг

Написал функц, орчны помощи газрын зураг нь пропорцию для нахождения символа и его места на шкале.

Тайлбарыг буцааж англи (Америкийн Нэгдсэн Улс) руу хөрвүүлэх.

Алхам 19: Послесловие / Outro

Ялгаагүй работоспособность данного девайса, и когда убедился, что он работает как следует, изготовил печатную плату, которая вешается на дисплей, и в которой есть слот для установки arduino nano. Теперь я с лёгкостью могу использовать дисплей эсвэл arduino эсвэл өөр проектах, эсвэл өөр хувилбарууд, мөн получить сразу эсвэл работающий счётчик мощности.

Энэ бол өөр бусад мэргэжлийн байгууллагууд юм. Можно использовать фото-транзистор эсвэл фото диод. Или воспользоваться контактами, выдающими импульсы, если таковые имеются у счётчика.

Алхам 20: Хөтөлбөрийн програмууд / Arduino -д зориулсан эх код

Arduino IDE -д зориулсан полный код програмууд можно скачать здесь. Возможно, он претерпел небольшие изменения, покуда я писал этот обзор, но код часто коментирован и в нём не составит труда разобраться, особенно после коментариев из этой статьи.

Спасибо всем, кто дочитал до конца, надеюсь, энэ програм хангамж, аппарат хэрэгслийн стронами нь микроконтроллерууд дээр суурилсан болно.

Зөвлөмж болгож буй: