Счетчик на arduino uno – Измеряем температуру, влажность и отслеживаем показания газового счетчика с использованием ThingSpeak. Часть 1. Используем Arduino Uno R3.

Эксперимент 14. Счётчик нажатий [Амперка / Вики]

Список деталей для эксперимента

Для дополнительного задания

Принципиальная схема

Схема на макетке

Обратите внимание

  • В этом эксперименте мы впервые используем микросхему, в данном случае — выходной сдвиговый регистр 74HC595. Микросхемы полезны тем, что позволяют решать определенную задачу, не собирая каждый раз стандартную схему.

  • Выходной сдвиговый регистр дает нам возможность «сэкономить» цифровые выходы, использовав всего 3 вместо 8. Каскад регистров позволил бы давать 16 и т.д. сигналов через те же три пина.

  • Перед использованием микросхемы нужно внимательно изучить схему ее подключения в datasheet’е. Для того, чтобы понять, откуда считать ножки микросхемы, на них с одной стороны есть полукруглая выемка. Если мы расположим нашу 74HC595 выемкой влево, то в нижнем ряду будут ножки 1—8, а в верхнем 16—9.
  • На принципиальной схеме нашего эксперимента ножки расположены в другом порядке, чтобы не вышло путаницы в соединениях. Назначения выводов согласно datasheet’у подписаны внутри изображения микросхемы, номера ножек — снаружи.

  • Напомним, что на изображении семисегментного индикатора подписаны номера его ножек и их соответствие сегментам.

Скетч

p140_seven_segment_clicker.ino
#define DATA_PIN    13 // пин данных (англ. data)
#define LATCH_PIN   12 // пин строба (англ. latch)
#define CLOCK_PIN   11 // пин такта (англ. clock)
#define BUTTON_PIN  10
 
int clicks = 0;
boolean buttonWasUp = true;
byte segments[10] = {
  0b01111101, 0b00100100, 0b01111010, 0b01110110, 0b00100111, 
  0b01010111, 0b01011111, 0b01100100, 0b01111111, 0b01110111
};
 
void setup()
{
  pinMode(DATA_PIN, OUTPUT);
  pinMode(CLOCK_PIN, OUTPUT);
  pinMode(LATCH_PIN, OUTPUT);
  pinMode(BUTTON_PIN, INPUT_PULLUP);
}
 
void loop()
{
  // считаем клики кнопки, как уже делали это раньше
  if (buttonWasUp && !digitalRead(BUTTON_PIN)) {
    delay(10);
    if (!digitalRead(BUTTON_PIN))
      clicks = (clicks + 1) % 10;
  }
  buttonWasUp = digitalRead(BUTTON_PIN);
  // для записи в 74HC595 нужно притянуть пин строба к земле
  digitalWrite(LATCH_PIN, LOW);
  // задвигаем (англ. shift out) байт-маску бит за битом,
  // начиная с младшего (англ. Least Significant Bit first)
  shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, segments[clicks]);
  // чтобы переданный байт отразился на выходах Qx, нужно
  // подать на пин строба высокий сигнал
  digitalWrite(LATCH_PIN, HIGH);
}

Пояснения к коду

  • Обратите внимание, что в этом эксперименте кодировки символов отличаются от кодировок из эксперимента «Секундомер».
  • Для того, чтобы передать порцию данных, которые будут отправлены через сдвиговый регистр далее, нам нужно подать LOW на latch pin (вход STcp микросхемы), затем передать данные, а затем отправить HIGH на latch pin, после чего на соответствующих выходах 74HC595 появится переданная комбинация высоких и низких уровней сигнала.

  • Для передачи данных мы использовали функцию shiftOut(dataPin, clockPin, bitOrder, value). Функция ничего не возвращает, а в качестве параметров ей нужно сообщить

    • пин Arduino, который подключен ко входу DS микросхемы (data pin),

    • пин Arduino, соединенный со входом SHcp (clock pin),

    • порядок записи битов: LSBFIRST (least significant bit first) — начиная с младшего, или MSBFIRST (most significant bit first) — начиная со старшего,

    • байт данных, который нужно передать. Функция работает с порциями данных в один байт, так что если вам нужно передать больше, придется вызывать ее несколько раз.

Вопросы для проверки себя

  1. Для чего нужны микросхемы? Для чего нужен выходной сдвиговый регистр?

  2. Как найти ножку микросхемы, на которую отправляются данные?

  3. Что нужно сделать до и после отправки собственно данных на 74HC595?

  4. Сколько данных можно передать с помощью shiftOut() и как управлять порядком их передачи?

Задания для самостоятельного решения

  1. Заставьте shiftOut() отправлять биты, начиная со старшего, и измените код так, чтобы счетчик по-прежнему показывал арабские цифры.

  2. Замените кнопку на датчик света (фоторезистор в схеме делителя напряжения) и переделайте программу так, чтобы индикатор цифрой показывал уровень освещенности.


← Секундомер | Оглавление | Комнатный термометр →

wiki.amperka.ru

Подключаем Arduino к счетчику электроэнергии / Хабрахабр

Нет, эта статья не об очередном способе обмануть этот злосчастный прибор. Здесь пойдет речь о том, как с помощью Arduino и среды LabView превратить свой счетчик электроэнергии в средство мониторинга потребляемой мощности или даже в амперметр!


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

Однако сегодня индукционные счетчики сдают свои позиции, уступая место своим более дешевым электронным собратьям. И как раз один такой и станет подопытным:

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

Кроме того, на лицевой панели любого устройства есть передаточное соотношение счетчика А — число импульсов на 1 кВт*ч. Как видно из фото, у подопытного А=12800. Из этой информации можно сделать следующие выводы:

— С каждым импульсом счетчик фиксирует потребление, равное 1/12800 части от 1 кВт*ч. Если включить к счетчику нагрузку и начать просто считать импульсы, то потом легко получить потребленное ею количество электроэнергии (кВт*ч), разделив количество импульсов на передаточное соотношение.

— Так как индикатор изменяет скорость своего моргания, то можно вывести зависимость между мощностью (кВт) и временем одного импульса счетчика, что позволит получить данные о мощности/токе.

Не будем загружать статью расчетами, но если нужно то

вот ониВоистину, передаточное число счетчика — великая вещь, так как зная ее можно выразить как мощность так и ток:
Составим пропорцию из нашего передаточного соотношения (А=12800 имп/кВт*ч) и неизвестного передаточного соотношения, которое будет при нагрузке X и за время одного единственного импульса (моргания лампочки):

Здесь X — неизвестная мощность, а t — время одного импульса. Выражаем отсюда неизвестную мощность и вот оно:

Ток считается с применением следующей пропорции передаточных соотношений и токов известных и неизвестных при нагрузке X.:


Что в общем-то приводит к идентичной формуле, но для тока (ток измеряется в Амперах а индексы означают нагрузку, при которой будет данный ток):

Тут можно заметить подводный камень — нужно знать ток при идеальной нагрузке в 1 кВт. Если необходима хорошая точность — лучше его измерить самостоятельно, а если нет- то приблизительно можно посчитать по формуле (напряжение и мощность известны), но будет более грубо, так как не учитывается коэффициент мощности.

Таким образом, все упирается в измерение времени одного импульса (моргания индикатора). В своих изысканиях я опирался на этот отличный проект. Некий итальянец сделал в среде Labview интерфейс для мониторинга мощности и придумал схему для измерения импульсов. Но в его проекте красовалась огромная недоработка — он подходил только лишь для счетчиков с передаточным соотношением 1000 имп/кВт*ч.

Верхний график — средняя мощность за 5 минут, нижний — в реальном времени. Интерфейс довольно гибкий и легко модифицируется под свои нужды. Если Вы еще не имели дела со средой LabView — рекомендую познакомиться.

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

Выглядит это следующим образом
Казалось бы просто, но до этого надо еще додуматься!

Итак, если Вы все-таки решите реализовать мониторинг мощности, то есть два варианта:

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

Схема будет выглядеть следующим образом:

Схема для бесконтактного снятия импульсов
Программа просто сравнивает значение сопротивления на фоторезисторе и потенциометре. Причем последний позволяет выставить чувствительность такого датчика во избежание ложного срабатывания и настроиться под яркость индикатора.

2. У Вас есть доступ к импульсному выходу счетчика. На многих моделях имеется импульсный выход, который дублирует мигания лапочки. Это сделано для того, чтобы была возможность подключать прибор к системе автоматизированного учета. Представляет собой транзистор, открывающийся при горящем индикаторе и закрывающийся при погасшем. Подключиться напрямую к нему не составляет труда — для этого потребуется всего один подтягивающий резистор. Однако прежде чем делать это, удостоверьтесь что это именно импульсный выход, а не что-либо иное! (в паспорте всегда есть схема)

Схема для подключения к телеметрическому выходу
В моем случае — доступ полный, поэтому заморачиваться я особо не стал. Устанавливаем LabView и вперед измерять! Все графики представляют собой мощность (Вт) в реальном времени.
Первым под раздачу попал многострадальный чайник. Крышечка гласит что мощность у него 2,2 кВт, однако судя по графику, исправно потребляет лишь 1700 Вт. Обратите внимание, что потребление более-менее постоянно во времени. Это означает что нагревательный элемент (скорее всего нихром) очень слабо изменяет свое сопротивление в течении всего процесса вскипячивания.

Совсем другое дело клеевой пистолет — заявленная мощность 20 Вт.Он ведет себя в соответствии с законами физики — при нагреве сопротивление нагревателя увеличивается, а ток соответственно уменьшается. Проверял мультиметром — все так и есть.

Старый радиоприемник «Весна». Здесь график ушел вверх в начале из-за того, что я запустил измерение во время импульса, соответственно это повлияло на данные. Горки на графике показывают, как я крутил ручку громкости. Чем громче — тем больше радио кушает.

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

А теперь самое интересное. Я провел небольшой эксперимент со своим стареньким ноутбуком, результат которого приведен на картинке:

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

(Трепещите параноики!)

В общем, из обычного счетчика и дешевой Arduino, можно сделать довольно простое и интересное решение для самодельного «умного дома». Кроме, собственно, мониторинга потребления электроэнергии есть вполне неплохая возможность организовать систему контроля включенных приборов, которая по изменению потребления и его характеру будет угадывать что включили. Без каких-либо дополнительных датчиков.

Исходники скетча для Arduino и файл LabView можно скачать на странице автора. После установки доработать напильником добавить блок в соответствии с описанием выше.

habr.com

10 Fragen an einen Mörder: Hast du dich je bei den Angehörigen entschuldigt? | Galileo

Опубліковано День тому

Galileo

Тривалість: 12:15

Galileo hat einen Mann, der 19 Jahre lang wegen Mordes im Gefängnis saß, getroffen und ihm zehn sehr direkte Fragen gestellt.
#Knast #Galileo #ProSieben
► Die besten Videos von #Galileo: bit.ly/GalileoTop25
► Ganze Folgen von Galileo: bit.ly/GalileoGanzeFolge
*******************
►Galileo auf UA-films abonnieren:
bit.ly/SubscribeGalileo
*********************
►Mehr auf Galileo: www.galileo.tv/
►FUNDA HAT EINEN KANAL: ua-films.com/us/FundaVanroy
►Alle Videos findest du auf www.prosieben.de/tv/galileo/videos
► Hier Höllencamp abonnieren: bit.ly/2COLec7

Galileo ist die #ProSieben Wissenssendung mit Aiman Abdallah, Stefan Gödde und Funda Vanroy. Täglich um 19.05 Uhr kannst Du auf ProSieben die Welt kennen und verstehen lernen. Galileo nimmt Dich mit auf eine Reise durch das Wissen: Physik, Geschichte, Natur und Internetphänomene, Gesellschaft, Politik und alltägliche Fragen. Die Hosts Harro Füllgrabe, Jan Schwiderek, Jumbo Schreiner, Klas Bömecke, Matthias Fiedler, Akif Aydin und Dionne Wudu nehmen dabei vollen Körpereinsatz in Kauf und gehen allem auf den Grund, was uns interessiert.
————————————————————————————————
Impressum:
www.studio71.com/de/impressum

10 Fragen an einen Mörder: Hast du dich je bei den Angehörigen entschuldigt? | Galileo | ProSieben  gefängnis  mörder  mord  knast  häftling  aus dem gefängnis ausbrechen  santa fu  jva  drogen knast  knast doku  mörder auf freiem fuß  mörder knast  Henry-Oliver Jakobs  knast waffen  10 fragen an  Galileo  Galileo 2018  TV  TV Sendung  Sendung  Television Program (Media Genre)  Galileo Lunch Break  Galileo Essen  Wissen  Foodtrends  Aiman Abdallah  Stefan Gödde  Prosieben  Dokumentation  

ua-films.com

10 Fragen an einen Mörder: Hast du dich je bei den Angehörigen entschuldigt? | Galileo

Galileo hat einen Mann, der 19 Jahre lang wegen Mordes im Gefängnis saß, getroffen und ihm zehn sehr direkte Fragen gestellt.
#Knast #Galileo #ProSieben
► Die besten Videos von #Galileo: bit.ly/GalileoTop25
► Ganze Folgen von Galileo: bit.ly/GalileoGanzeFolge
*******************
►Galileo auf UKvid abonnieren:
bit.ly/SubscribeGalileo
*********************
►Mehr auf Galileo: www.galileo.tv/
►FUNDA HAT EINEN KANAL: ukvid.net/u-FundaVanroy
►Alle Videos findest du auf www.prosieben.de/tv/galileo/videos
► Hier Höllencamp abonnieren: bit.ly/2COLec7

Galileo ist die #ProSieben Wissenssendung mit Aiman Abdallah, Stefan Gödde und Funda Vanroy. Täglich um 19.05 Uhr kannst Du auf ProSieben die Welt kennen und verstehen lernen. Galileo nimmt Dich mit auf eine Reise durch das Wissen: Physik, Geschichte, Natur und Internetphänomene, Gesellschaft, Politik und alltägliche Fragen. Die Hosts Harro Füllgrabe, Jan Schwiderek, Jumbo Schreiner, Klas Bömecke, Matthias Fiedler, Akif Aydin und Dionne Wudu nehmen dabei vollen Körpereinsatz in Kauf und gehen allem auf den Grund, was uns interessiert.
————————————————————————————————
Impressum:
www.studio71.com/de/impressum

Розваги

Опубліковано

 

13 лис 2018

10 Fragen an einen Mörder: Hast du dich je bei den Angehörigen entschuldigt? | Galileo | ProSiebengefängnismördermordknasthäftlingaus dem gefängnis ausbrechensanta fujvadrogen knastknast dokumörder auf freiem fußmörder knastHenry-Oliver Jakobsknast waffen10 fragen anGalileoGalileo 2018TVTV SendungSendungTelevision Program (Media Genre)Galileo Lunch BreakGalileo EssenWissenFoodtrendsAiman AbdallahStefan GöddeProsiebenDokumentation

Скачати:

Завантаження…..

Додати в:

Переглянути пізніше

ukvid.net