#52 Re: Програмування Arduino » Управление ардуиной с радио пульта. » 2016-01-25 01:45:43

Что-то картинки ^^^ не видны.
Классно использовать готовые библиотеки, получается скетч простой: http://arduino.ru/forum/proekty/remote- … ent-120352

#53 Re: Апаратні питання » Помогите подключить FLOW RATE PULSE METER к Arduino » 2016-01-24 22:23:48

Там в датчике крутятся магниты, вызывая 1400 срабатываний геркона на литр проходящей жидкости. Вам надо представить, что геркон - это простая "тактовая" кнопка и собрать схему по описанию для кнопки http://arduino.ru/forum/programmirovani … h-novichku
Т.е. надо победить дребезг контактов, не забыть о подтягивающем резисторе и считать фронты (или спады) импульсов.

#55 Re: Програмування Arduino » Ошибка записи программы в arduino pro mini » 2016-01-22 16:32:32

Кроме дефекта флэшки есть ещё программные баги. Судя по найденному в Google, например, длинные последовательности 0xFF могут быть неправильно приняты за пустую область флэш-памяти или даже символы "!!!" в какой-то строке могут всё испортить.

#56 Re: Програмування Arduino » Ошибка записи программы в arduino pro mini » 2016-01-22 12:27:51

Видно из сообщения, что байт по адресу 7178 записывается неправильно. Значит программа меньшего размера будет записываться без проблем (учитывая, что полкилобайта занимает бутлоадер).
У Arduino были глюки с блоками 0xFF, но это наверное не тот случай.

Может кто ещё знает, что делать (кроме замены чипа), но можно попробовать как-то разместить в прошивке массив фиксированных значений по ожидаемым адресам, которые залипли во Flash:
const uint8_t u8g_hackflashbug[] U8G_PROGMEM = { 0x6b, 0x6b, 0x6b, 0x6b, 0x6b, 0x6b, 0x6b, 0x6b, 0x6b, 0x6b, 0x6b, 0x6b }
Сделать массив побольше, объявить в программе подальше - а вдруг накроет совпадающими с багом данными и проверка пройдёт успешно.
Только надо ещё что-то сделать, чтобы оптимизатор не вырезал напрочь неиспользуемый блок данных, например вычитать где-то пару байт из него.

#57 Re: Програмування Arduino » Управление ардуиной с радио пульта. » 2016-01-21 18:56:45

Я на выходных хотел поиграться с ИК-приёмником (с Arduino) и пультом от магнитофона, может быть похоже будет.

#58 Re: Програмування Arduino » Функция чтения из буфера серийного порта » 2016-01-21 17:14:42

Да, метод Serial.readStringUntil('\n') читает полностью строку до служебного символа новой строки, а только потом её отдаёт. Зато потеряться ничего не должно.

#59 Re: Програмування Arduino » Управление ардуиной с радио пульта. » 2016-01-21 17:06:13

Сделать массив состояния включённости выходов и массив кодов кнопок. При получении кода искать его в массиве кодов кнопок, таким образом находить соответствующий коду индекс. Для найденного индекса менять состояние включённости на противоположное. Если при нажатии на кнопку отправляется не один код, а серия одинаковых, то надо ещё завести пару переменных типа last_code и last_code_time для такой фильтрации: если свежеполученный код равен last_code и время получения last_code_time ещё свежее, то не считать получение этого кода как новое событие, а всего лишь обновить last_code_time. При этом last_code_time может хранить не время, а счётчик: сначала при получении кода записываем туда константу, а потом каждый новый проход уменьшаем на 1, если значение всё ещё больше, чем 0.

#60 Re: Програмування Arduino » Функция чтения из буфера серийного порта » 2016-01-20 19:15:02

    if (Serial.available() > 0) {
        String str = Serial.readStringUntil('\n');
        if (str.startsWith("+CMT")) ...

А если как-то так вычитывать? Да и не помешало бы всё вычитанное отправлять в Serial Monitor для отладки. Бывает логика подсказывает одно, а глазами увидишь - и всё становится ясно.

____________________________
"серийный порт" - для маньяков

#61 Re: Програмування Arduino » Управление реле через arduino, enc28j60 и кнопки » 2016-01-20 15:18:55

Да уж, 10 метров провода могут собирать наводки. А что, если 1 кОм поставить?

#62 Re: Програмування Arduino » Управление реле через arduino, enc28j60 и кнопки » 2016-01-19 15:23:39

Яков пише:

у меня 4 канальное реле, включается только 2( Пожалуйста могли бы вы зделать для 4 и подскажите как изменить, что бы я мог включать все 4

Очевидно, что надо удвоить количество проверок и действий. Сделать по аналогии.

#63 Re: Програмування Arduino » Управление реле через arduino, enc28j60 и кнопки » 2016-01-16 22:45:25

z0ri пише:

подав на  arduino uno 7v ситуация со стабильностью не изменилась

Дык, если стабилизатор внутренний на 3.3 Вольта слабый, а запитанный от него модуль Ethernet'а может потреблять больше тока раза в 3..4, чем может выдать Ардуина, то увеличением напряжения питания не сильно поможешь.

#64 Re: Програмування Arduino » Управление реле через arduino, enc28j60 и кнопки » 2016-01-15 17:30:17

Казалось бы, с кнопкой всё просто. Но, как ни странно, с ней есть нюансы. Во-первых, если на "слушающую" ножку микроконтроллера ничего не подавать, то он услышит помехи (наводку от 220 В сети скорее всего), поэтому вместе с простой кнопкой надо использовать резистор-подтяжку на землю или на питание (зависит от логики схемы). Во-вторых, если микроконтроллер (с его-то мегагерцами) успеет опросить состояние кнопки в момент её переключения, то будет заметен эффект "дребезга контактов", т.е. кратковременное замыкание-размыкание из-за особенностей реальной механики. В третьих, если кнопок много (матрица n*m) и мы их считываем (сканируем) общими ножками микроконтроллера, то надо не забывать, что "1" на выходе ножек - это "плюс" питания, а вот "0" - не отключённое состояние, а "минус" питания (условная "земля"). Хотя у микросхем и существует некое третье состояние - высокоимпедансное, когда ножки не выдают ни 1, не 0, а как-бы повисают в воздухе.

Да что уж тут говорить, когда есть Google и тема старая:
* Пример для кнопки и светодиода: http://arduino.ru/tutorials/button
* Обсуждение подключения кнопки: http://arduino.ru/forum/programmirovani … h-novichku

_______________________________________
У кошки 4 ноги: вход, выход, земля и питание.

#65 Re: Програмування Arduino » Управление реле через arduino, enc28j60 и кнопки » 2016-01-15 13:44:27

Исправить ошибку в простейшем скетче, подсказать что-то - это одно дело, а написать за кого-то - совсем другое.
Да и в чём тогда радость самостоятельного изучения Ардуино?

____________________________
http://geektimes.ru/hub/arduino/

#66 Re: Програмування Arduino » Скорость вращение шагового двигателя » 2016-01-15 13:38:25

gorenkov пише:

Когда двигатель крутится на малых оборотах, он немного вибрирует и работает микрорывками - вращение не плавное.

Всё правильно, это же шаговый двигатель, он шагает)

#67 Re: Програмування Arduino » Управление реле через arduino, enc28j60 и кнопки » 2016-01-15 00:21:04

Отличие вашего исходника в том, что состояние выхода теперь хранится не в одной переменной, а в массиве PinStatus[] из 8 элементов. Вот и надо по аналогии повторить для каждого этапа в цикле все те же действия, что были в моей версии.

Массив статусов можно объявить более наглядно:
boolean pinStatus[8] = {false, false, false, false, false, false, false, false};

Пройтись циклом так:

  for (int i = 0; i < 8; i++) {
    pinStatus[i] = false; // тут может быть что-то полезное
  }

А если без цикла, то в C++, как и в большинстве других языков программирования, массив начинается с нулевого индекса, т.е. для 8 элементов будет от pinStatus[0] до pinStatus[7], а pinStatus[8] будет указывать уже на что-то левое в памяти и может даже сломать логику программы.

Вобщем, надо основы языка C учить, даже пока не C++. Знания основ C пригодятся любому айтишнику.

#68 Re: Програмування Arduino » Скорость вращение шагового двигателя » 2016-01-14 23:42:41

Т.е. достаточно просто плавно поворачивать энкодер? В чём-то тут подвох.

#69 Re: Програмування Arduino » Скорость вращение шагового двигателя » 2016-01-14 17:20:53

Конденсаторы для убирания помех поставлены, провода не перепутаны, программа не подвисает, в ней переполнения целых типов не происходят? :-)

#71 Re: Програмування Arduino » Помогите выбрать новичку плиз!!! » 2016-01-14 12:43:56

Значит эта штукенция программируется с обычного компьютера, а потом может управляться с Android'а http://labs.arduino.cc/ADK/index

#72 Re: Програмування Arduino » Правильный опрос аналогового пина » 2016-01-14 12:33:19

sstepane пише:

Плавающие значения на пине - как правильно делать усреднение

Да, фильтр поставить (вариант -- RC-цепочка) или сымитировать его, померяв несколько раз и усреднив.
Или отбросить младшие биты как незначимые, если это реально шум ненужный.

sstepane пише:

Как правильнее проводить сбор данных - по таймеру (например 1 раз в секунду) или проводить опрос в удобное время

Для систем автоматического управления / цифровых регуляторов важно соблюдать точный период дискретизации, т.е., например, собирать данные по таймеру. Иначе дрожание частоты дискретизации может ухудшить качество регулирования. Даже простой ПИД-регулятор может через Д-составляющую что-то напортить. Но если процесс медленно меняющийся по отношению к частоте опроса датчика, да ещё и регулятор всего лишь первого порядка, то IMHO можно не заморачиваться и делать как проще.

#73 Re: Проекти » Автоматический кран » 2016-01-14 01:36:54

Между иголками будут мегаомы, поэтому я бы для простоты взял такой датчик, который сразу "1" выдаст при наличии воды -- http://arduino-ua.com/prod521-Datchik_vlajnosti_pochvi
Перекрывать воду пусть будет шаровый кран с электроприводом, у них ещё там концевой выключатель должен быть внутри.
Для запуска моторчика клапана от датчика нужен посредник типа такого http://arduino-ua.com/prod984-rele-tver … --3-36-vdc.

#75 Re: Програмування Arduino » Управление реле через arduino, enc28j60 и кнопки » 2016-01-13 00:02:47

Пожалуйста)

Нагуглил, что для обеспечения большей стабильности модуль enc28j60 необходимо питать от отдельного стабилизатора на 3.3 Вольта, т.к. Arduino обещает только 50 мА.
Ещё один товарищ придумал делать аппаратный сброс enc28j60, если Arduino что-то не понравится.

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