1 2 3 4 5 6 7 8 9 10 10/10 9,94оценок: 33

Arduino Mega. Контроллер теплицы. Хроники

Тема в разделе "Теплицы и парники", создана пользователем DIYMan, 05.01.16.

Статус темы:
Закрыта.
  1. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

    Любопытный рукосуй :)

    DIYMan

    Любопытный рукосуй :)

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    Попробуйте переназначить пин с A10 на любой другой, для начала.
     
  2. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

    Любопытный рукосуй :)

    DIYMan

    Любопытный рукосуй :)

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    @Snark, похоже, что https://github.com/neuoy/OneWireArduinoSlave - то, что нам нужно для эмуляции датчиков. Там, в принципе, есть ограничение в 8 байт на скратчпад, но оно легко обходится.

    Я пока скачал эту библиотеку, буду разбираться в свободное время. У меня только один вопрос: как расово верно соединить мегу и Uno, чтобы ничего не попалить? Я так понимаю, что питание у них будет отдельное, просто с пина меги будет питаться шина 1-Wire. Непонятно - земли объединять? По логике - надо объединять, но уточняю, на всякий. То есть теоретически, как я понимаю, достаточно объединить земли меги и Уно, и пин меги и пин Уны меж собой, по которым пойдёт общение по 1-Wire, правильно?
     
  3. Snark
    Регистрация:
    17.10.11
    Сообщения:
    366
    Благодарности:
    424

    Snark

    Живу здесь

    Snark

    Живу здесь

    Регистрация:
    17.10.11
    Сообщения:
    366
    Благодарности:
    424
    Адрес:
    Лобня
    Прошивка 1-wire с использованием команд delay? Офигеть можно.

    Спасибо, я как нибудь сам)

    Портирование прошивки на UNO заняло втрое больше времени чем разработка с нуля на Attiny.
    Ардуино отбивается всеми лапами: прерывания и таймеры не отдает, ШИМом на прерывания гадит. Стандартные функции EEPROM подавила.

    Все заборол, кроме EEPROM. Не понимаю - что ему нужно.

    А вообще - хороший эмулятор получается. Радиомодули физические тоже к нему прикрутим и все остальные типы датчиков (Dallas, photo, влажность) тоже.
     
  4. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

    Любопытный рукосуй :)

    DIYMan

    Любопытный рукосуй :)

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    Да вроде https://github.com/neuoy/OneWireArduinoSlave на прерываниях написана, я больше на неё пока смотрел. Но раз сказали ждать - буду ждать, лучше своё изначально иметь ;)
     
  5. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

    Любопытный рукосуй :)

    DIYMan

    Любопытный рукосуй :)

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    Да, кстати - заказал таки сегодня парочку NRF, чтобы было чего покрутить в будущем.
     
  6. Snark
    Регистрация:
    17.10.11
    Сообщения:
    366
    Благодарности:
    424

    Snark

    Живу здесь

    Snark

    Живу здесь

    Регистрация:
    17.10.11
    Сообщения:
    366
    Благодарности:
    424
    Адрес:
    Лобня
    Ура! Заработало!

    Я раньше полагал что ардуино это просто мега в некой обвязке. Оказалось что это не так... Теперь я ее точно ненавижу)

    Прилагаю два файла - эмулятор прошивки "uno_one_wire_slave.ino" и примеры вызовов с меги (test_humid.ino)

    Эмулятор поддерживает 1-wire с 4-мя функциями: чтение запись scrachpad (0xBE, 0x4E), запуск измерения влажности (0x44) и запись константв EEPROM (0x25).

    Измеряет сопротивление подключенное между 11 и 12 ногами UNO (от 11 ноги на землю нужен конденсатор 220 nF.)

    1-wire на 2 ноге UNO. (не забудьте притянуть на VCC)

    Структура Scratchpad - как договаривались:

    Код:
    struct sensor
    {
        byte index;
        byte type;
        byte data[4];
    };
    
    typedef struct
    {
        byte controller_id;
        byte rf_id;
        byte battery_status;
        byte calibration_factor1;
        byte calibration_factor2;
        byte reserved[6];
    
        sensor sensor1,sensor2,sensor3;
    
        byte crc8;
    } t_scr;
    Пробуйте.
     

    Вложения:

  7. Snark
    Регистрация:
    17.10.11
    Сообщения:
    366
    Благодарности:
    424

    Snark

    Живу здесь

    Snark

    Живу здесь

    Регистрация:
    17.10.11
    Сообщения:
    366
    Благодарности:
    424
    Адрес:
    Лобня


    Конечно, соединяйте землю и сигнальные — 2й пин на uno и какой то там на меге. Сигнальные 1-wire, подтягивайте резистором 4.7k на питание
     
  8. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

    Любопытный рукосуй :)

    DIYMan

    Любопытный рукосуй :)

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    Ок, буду пробовать.
     
  9. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

    Любопытный рукосуй :)

    DIYMan

    Любопытный рукосуй :)

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    Мне надо резюк между этими ногами впендюрить? Номинал?
     
  10. Snark
    Регистрация:
    17.10.11
    Сообщения:
    366
    Благодарности:
    424

    Snark

    Живу здесь

    Snark

    Живу здесь

    Регистрация:
    17.10.11
    Сообщения:
    366
    Благодарности:
    424
    Адрес:
    Лобня
    От сотни ом до мегаома. пусть будет один килоом. Это измеряемое сопротивление почвы. 1wire и без него будет работать.
     
  11. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

    Любопытный рукосуй :)

    DIYMan

    Любопытный рукосуй :)

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    Уточняю - керамика, на 220 нанофарад?
     
  12. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

    Любопытный рукосуй :)

    DIYMan

    Любопытный рукосуй :)

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    Не нашёл у себя ничего на 220 нанофарад - есть сильно больше, например, 470, и сильно меньше, вроде 100 нанофарад. В смятении...
     
  13. Snark
    Регистрация:
    17.10.11
    Сообщения:
    366
    Благодарности:
    424

    Snark

    Живу здесь

    Snark

    Живу здесь

    Регистрация:
    17.10.11
    Сообщения:
    366
    Благодарности:
    424
    Адрес:
    Лобня
    Да
     
  14. Snark
    Регистрация:
    17.10.11
    Сообщения:
    366
    Благодарности:
    424

    Snark

    Живу здесь

    Snark

    Живу здесь

    Регистрация:
    17.10.11
    Сообщения:
    366
    Благодарности:
    424
    Адрес:
    Лобня
    Да пофиг! Нам что, точность измерений влажности сейчас нужна?
    Абы что то мерялось. Резистор лучше переменный, что бы в конфигураторе что то менялось при его кручении.
     
  15. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889

    DIYMan

    Любопытный рукосуй :)

    DIYMan

    Любопытный рукосуй :)

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.889
    Адрес:
    80 км от Краснодара
    Ок, понял, щас впендюрю что есть :)
     
Статус темы:
Закрыта.