#426 Re: Програмування Arduino » Конфликт ADS1220 SD карты » 2020-10-01 20:19:55

Пин в AVR может быть в четырех состояниях:
1. на вход, без подтяжки - если он подключен к входам других устройств, где тоже нет подтяжки, то он будет как антенна ловить случайные состояния
2. на вход, с подтяжкой - подключается резистор между пином и питанием, делает его состоянием "по умолчанию" лог. 1
3. на выход, логический 0
4. на выход, логическая 1
Изучите библиотечные функции, как там меняется состояние пина ADS1220_CS_PIN и какое остается после выхода из функции.

#427 Re: Програмування Arduino » Конфликт ADS1220 SD карты » 2020-10-01 15:36:41

Т.е. при обращении к ADC устанавливается CS_ADC=LOW, CS_FLASH=HIGH, а при обращении к флеш - CS_ADC=HIGH, CS_FLASH=LOW ? И во втором случае ADC воспринимает данные, предаваемые по SPI и как-то меняет свои настройки? Или у Вас CS_ADC не равно HIGH (подтяжка есть?), или в ADC бага. Попробуйте представить, что в ADC реально есть бага и Вам это необходимо показать производителю ADC - напишите минимальную программу только с МК и ADC, где бага четко проявляется. По мере написания придет более глубокое понимание, Вы скорее всего найдете ошибку в своей программе. Но не исключено, что докажете багу. Я обычно поступаю по такому алгоритму, так интереснее)

#428 Re: Апаратні питання » Непонятки с аналоговым входом. » 2020-10-01 09:47:47

Возможные причины такого поведения:
- Ваш пин A0 висит в воздухе (никуда не подтянут), возможно после отпускания кнопки программа отключает подтяжку
- Сам ADC неправильно настроен, например меряет относительно пина AREF, который сам висит в воздухе, еще возможно не подключено питание к AVCC
Локализовать проблему помог бы мультиметр - проверить напряжение на A0 и проверить сопротивление между A0 и питанием до и после отпускания кнопки

#429 Re: Апаратні питання » Непонятки с аналоговым входом. » 2020-09-30 23:34:45

На всякий случай спрошу, вывод AVCC у Вас подключен к питанию?

#430 Re: Апаратні питання » Непонятки с аналоговым входом. » 2020-09-30 19:53:40

Hrom29 пише:

а потом сыпет разными уровнями сопротивлений без остановки

Вольтметр при этом на пине, где выполняется ADC, показывает стабильное напряжение или тоже прыгает?

#431 Re: Проекти » Счетчик импульсов для умного дома » 2020-09-27 16:35:43

Я тему открыл для того, чтобы увлекающиеся люди, у которых возникает задача "как снять показания со счетчиков в системах умный дом?", знали, что есть еще и такое решение, могли подсказать его другим. Уверен, что многие будут благодарны.
Барыжат те, кто покупает готовое устройство в Китае и перепродает его тут. В данном случае это устройство - полностью мой проект, я его программировал и паял.
Kaka, судя по вашим комментариям на этом форуме в других темах, Вы здесь занимаетесь не тем, что делитесь наработками с коллегами, а занимаетесь троллингом.

#432 Re: Проекти » Счетчик импульсов для умного дома » 2020-09-27 13:57:21

Kaka, если Вы хотите бесплатно, то найдите на гитхабе по запросу owslave, выберите понравившуюся реализацию и переделайте под себя. Если Вы хотите кошерно, то купите на али оригинальную микросхему, компараторы, закажите плату и спаяйте, схем полно. Я могу Вам предложить только уже готовое свое устройство по бюджету, в который обойдется второй вариант.

#433 Re: Проекти » Счетчик импульсов для умного дома » 2020-09-27 11:15:48

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

Буду рад ответить на вопросы связанные с подключением и настройкой счетчика.

UPD:
Счетчик импульсов уже можно приобрести в магазине arduino.ua
https://arduino.ua/prod4180-schetchik-i … -v-ykraine

#434 Проекти » Счетчик импульсов для умного дома » 2020-09-27 10:37:43

Honey
відповідей: 173

В этой теме хочу рассказать про проект, который изначально делался просто для себя, но решение получилось удачным и теперь я готов поделиться с другими.
TL;DR: исходников в теме не будет

Примерно лет 10 назад ко мне попали датчики температуры DS18B20, работающие по протоколу 1-wire, наставил их везде, и в квартире, и на улице, и на стояки холодной и горячей воды. Мне очень понравился протокол: всего два провода (данные и земля), питание по линии данных (паразитное), к одному мастеру подключается куча устройств. Почитал, какие еще устройства работают по этому протоколу, из полезных для умного дома оказалось не так много: ADC, GPIO, Counter. ADC - незаменимая штука для работы с аналоговыми датчиками, например на нем собрал схему с датчиком влажности от Honeywell, GPIO - позволяет как подключать реле, так и работать на вход, Counter - с его помощью можно было бы снимать показания со счетчиков электроэнергии, воды, отопления. Почему можно было бы? Микросхему (DS2423) в то время я нигде достать не смог, позже узнал, что она уже не производится. Сейчас на али ее можно заказать по цене от 100грн, вероятно это из старых запасов.
Не так давно я увлекся AVR и как-то случайно нашел программную реализацию подчиненного устройства 1-wire (кому нужны подробности, называется owslave3d), в которой был пример реализации DS2423. Естественно все было скомпилировано и запущено, устройство определилось как DS2423! Но, как и оригинальная микросхема, оно требовало на счетном входе цифровой сигнал, а для аналоговых датчиков, того же фототранзистора, нужно городить схему с компараторами и делителями на подстроечных резисторах. Во-торых, ток потребления был порядка 1мА, от батарейки надолго не оставишь работать, нужно хотя-бы 10мкА. И в третьих, были глюки в работе - устройство отвечало ровно через раз. Поэтому я решил написать с нуля свою реализацию с блэкджеком и ... короче с вышеперечисленными фишечками.
cntmaket.jpg
Примерно полгода с первой реализации примерно вот такое устройство считало импульсы с моего счетчика ээ, периодически допиливал прошивку и несколько раз менял схему, каждый раз убирая из нее "лишнее". В результате из обвязки МК осталось 4 детали, включая батарейку:
cntschem.png
Вот так выглядит страничка конфигурирования устройства
counter.png
Подключение счетных датчиков, в том числе аналоговых, также по принципу минимизации обвязки: фототранзистор, инфракрасный отражатель - напрямую к выводам GND,A,B,PWR. Энергопотребления, даже с подключенными потребляющими датчиками, удалось достичь 5-15мкА.
Реализация, на мой взгляд, получилась удачная. Читая в различных статьях по умному дому, как люди ищут способ снимать показания со счетчиков, перечисляют несколько решений и выбирают подходящее для себя, понял, что мое устройство вполне могло бы конкурировать с другими решениями. Заказал в Китае печатные платы и сейчас устройство приобрело товарный вид.
counter.jpg
Для начала посмотрю, будет ли пользоваться спросом, если да, то у меня появилось куча новых идей для новых устройств, например по 1-wire с МК можно по ИК (как с пульта ДУ) управлять различными домашними устройствами. У меня дома стоит счетчик отопления Multical, у него есть UART интерфейс, можно было бы для него сделать плату расширения (там предусмотрено подключение плат расширения) и по 1-wire читать с него данные напрямую.

#435 Re: Програмування Arduino » Помогите написать скетч для двух реле и кнопок » 2020-09-26 12:24:09

#define button1 10 // кнопка1
#define button2 11 // кнопка2
#define relay1  12 // реле1
#define relay2  13 // реле2

int  state;

void setup() {
   pinMode(button1, INPUT_PULLUP);
   pinMode(button2, INPUT_PULLUP);
   pinMode(relay1, OUTPUT);
   pinMode(relay2, OUTPUT);

   state = 0;
}

void loop() {
    switch (state) {

    case 0:
       digitalWrite(relay1, LOW);
       digitalWrite(relay2, LOW);
       if (digitalRead(button1) == LOW) {
           state = 1;
           break;
       }
       if (digitalRead(button2) == LOW) {
           state = 2;
           break;
       }
       break;

    case 1:
       digitalWrite(relay1, HIGH);
       digitalWrite(relay2, LOW);
       if (digitalRead(button2) == LOW) {
           state = 2;
           break;
       }
       break;

    case 2:
       digitalWrite(relay1, HIGH);
       digitalWrite(relay2, HIGH);
       if (digitalRead(button2) == HIGH) {
           state = 0;
           break;
       }
       break;

    }
}

Внешние резисторы подтяжки не нужны - использованы встроенные.
Защита от дребезга - конденсатор от 100нФ между входом и землей.
В привате отвечу, куда слать шоколадку)

Підвал форуму