rf24 + bme280

Тема в разделе "Проводная и беспроводная связь", создана пользователем voodoo, 20 дек 2018.

  1. voodoo

    voodoo Нуб

    подскажите пожалуйста где косяк ? передаю данные по rf24 с датчика bme280 , в мониторе передатчика (Arduino Nano CH340 ATmega328) все норм отображается и температура и давление и влажность но в мониторе порта приемника (Arduino UNO) влажность ноль
     

    Вложения:

    • ar2.PNG
      ar2.PNG
      Размер файла:
      64,8 КБ
      Просмотров:
      297
    • ar.PNG
      ar.PNG
      Размер файла:
      2,5 КБ
      Просмотров:
      238
  2. parovoZZ

    parovoZZ Гуру

    float data[] - это прикол такой? На кой хрен float гонять по МК, если МК он совершенно не нужен???
     
  3. voodoo

    voodoo Нуб

    я спросил помощи и думал получу ответ , а не вопрос.

    ps. я только начал познавать программирование
     

    Вложения:

    • ar3.PNG
      ar3.PNG
      Размер файла:
      7,2 КБ
      Просмотров:
      254
  4. parovoZZ

    parovoZZ Гуру

    прежде необходимо изучить организацию памяти в МК.
     
  5. voodoo

    voodoo Нуб

    Ок. можете посоветовать книгу для начала с нуля. можно получить решение проблемы ?
     
  6. parovoZZ

    parovoZZ Гуру

    http://avr.ru/docs/books/textbook

    ну а вообще с датчиков надо выгонять данные в том виде, в котором они их отдают. Преобразовывать в вид, удобный для восприятия человеком уже непосредственно перед выводом во внешнюю среду. Внутри МК данные должны крутиться в том виде, в котором они удобны МК.
     
  7. Sanders

    Sanders Нерд

    Не смущайте молодого обывателя :) Посоветуйте раз он Arduino по USB подключает, почитать Руководство по архитектуре IBM PC - https://www.libex.ru/detail/book615695.html :)

    Мозгу простого человека с улицы, который далек от микроконтроллеров и программирования, а просто хочет подключить датчик - это все не важно. Ему не надо за такты бороться или за память.

    Все просто. Плюшевый компилятор Arduino не чекает массив, а плюшевый контроллер AVR не умеет кинуть Runtime Exception, что вы вылезли за пределы массива.

    вы создаете в передатчике массив из 3-х значений.
    Код (C++):
    float data[2]
    То есть 3 ячейки, с номерами 0, 1, 2 (массивы с нуля нумеруются)

    а пишите значение в
    Код (C++):
    float data[3]
    и читаете из
    Код (C++):
    float data[3]
    Хотя существуют только 0,1,2 как я написал выше. Поменяйте
    Код (C++):
    float data[3]
    на
    Код (C++):
    float data[2]
    В обоих кусках и будет счастье
    Но вот основы языка Си я бы рекомендовал почитать.
    Что есть простые типы, классы, методы, арифметические и логические операции, указатели. Очень сильно пригодиться в Arduino. Ибо повторюсь, тут все плюшевое. Как в языках программирования 80х годов.
     
  8. parovoZZ

    parovoZZ Гуру

    Вы же ведь не хотите попасть к врачу, который далёк от медицины?
     
  9. Sanders

    Sanders Нерд

    Вы ведь не хотите прийти к терапевту, а попасть к гинекологи и патологоанатому? :)
     
  10. parovoZZ

    parovoZZ Гуру

    Как можно заниматься программированием железа не зная про железо НИЧЕГО? Да и не зная основ языка.
     
  11. Sanders

    Sanders Нерд

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

    Вот вы сейчас с Windows, MacOS или Andoid пишете? Как ваша кнопка доходит до процессора и текста на экране знаете? А как работает http и как запрос передается, а javacript, а html?

    Ровно точно так же.
    Человек не пытается программировать железо. Оно уже отделено лоадером ардуино и Си подобным языком с библиотеками. На его уровне. И у него проблема с С
     
  12. parovoZZ

    parovoZZ Гуру

    А что он пытается делать? В абдурине не реализовано много из того, что можно сделать на МК. Зачем себя искусственно ограничивать?
    Си подобный язык - это срр, на котором написан данный фреймворк? Или что-то другое имелось ввиду?
     
  13. Sanders

    Sanders Нерд

    сишный синтаксис который компиляется в бинарник для AVR, в котором и пишут для ардуино. Человеку с ним надо для начала разобраться, для того чтобы заюзать уже написанное API для ардуино.
     
  14. parovoZZ

    parovoZZ Гуру

    Вот только абдурина на С++ написана и синтаксис этого языка и используется. Ничего нового там не придумано.
    У абдурино есть API?
     
  15. b707

    b707 Гуру

    Sanders, уж вы- то куда полезли со своими
    советами? Не стыдно такую дичь писать, да еще в стиле поучения?
    если массив описан как data[2] - то в нем ДВА значения, а не три.

    Пипец. сами-то учебник бы почитали... синтаксис
    Код (C++):
    float data[3]
    - это синтаксис ОБЬЯВЛЕНИЯ массива, а не доступа к элементу
    Вот знаток выискался :) да будет вам известно, что Си ни "плющевые", ни "бетонные" компиляторы массивов не "чекают" и "Эксепшене не бросают"- это в каким-нибудт паскалем попутали
    В ардуино, кстати, используется вполне честный GCC. такой же как в куче других тулчейнов
     
    DetSimen нравится это.
  16. voodoo

    voodoo Нуб

    Sanders очень помог. и он правильно говорит ! я начал с нуля и с конца . увидел , загорелись глаза , купил платы и ЁК.
     
  17. parovoZZ

    parovoZZ Гуру

    а как можно почекать массив, если это фактически указатель на начало области памяти, а элемент массива - смещение? Вот если я хочу из этой ячейки получить данные, почему компилятор мне должен помешать этому?

    А это вообще что за компилятор?
     
  18. parovoZZ

    parovoZZ Гуру

    а какой умеет? Вы же сидите в абдуринах, которая тоже много чего не умеет. Вот и сидите дальше.
     
  19. b707

    b707 Гуру

    "ЕК" у вас будет еще много раз - это совершенно нормально. Учитесь и все получится. Учится лучще не на форумах у советчиков, что сами почти ничего не знают - а читая книжки.
     
  20. Sanders

    Sanders Нерд

    Да, с синтаксисом соврал при объявлении длины массива. Спешил уходить за вискарем :)

    Но мессадж тот же - учить сишный синтаксис. При чем лучше не на ардуине самой, а на более взрослых языках. Например взяв тот же Visual Studio