Ответить
  • art100 Клуб Самоделкиных
    офлайн
    art100 Клуб Самоделкиных

    5060

    13 лет на сайте
    пользователь #397580

    Профиль
    Написать сообщение

    5060
    # 10 ноября 2019 11:04 Редактировалось art100, 13 раз(а).
    Махасаматман:

    Вот это круто!
    Ctrl-F "delay(" = 5
    Magic numbers.
    Тонна дефайнов и переменные типа "v1, v2" etc.
    Офигенно радуют глобальные переменные и фееричное
    for(int n=0;n<9999;n++){
    v=n;
    parseV();
    ...
    }

    Да, я в курсе, кой-кто любит хорошее вино. Но не настолько же!

    Это вы мне?
    Гы-гы-гы.
    Больше половина кода с просторов тырнета.
    Конечно я причесал из проблемного в читаемый код.
    Переборы точно не я писал.
    Переборы я наверно уже лет .. не пишу.
    Такого-же кода хватает.
    Когда берешь оборудование и остальные 50% кода все равно переписываешь. У меня по другому не было. Не помню.

    код выделить все

    delay( = 5

    тут я вообще ничего не понял
    такой синтаксис ни один компилятор мира не пропустит
    А где ты такое нашел?
    Можешь не отвечать. Нафантазировал.
    Ааа понял у тебя в "делеям" любовь?
    Короче давай свой
    код без страшных и ужасных делеев из жуткого и ужасного мордора. :rotate:

    код выделить все

    void parseV() {
    v1=(int)(v/1000); v2=(int)(v%1000/100); v3=(int)(v%100/10); v4=(int)(v%10);
    if(v1==0) v1++; if(v2==0) v2++; if(v3==0) v3++; if(v4==0) v4++;
    v = v1*1000 + v2*100 + v3*10 + v4;
    }

    а как бы ты этот кусок написал?
    если честно я не знаю как но этот перебор реально работает :conf: а думать лень
    подозреваю что этот кусок кода скопипастен уже 1000 раз и никто не задумывался как он работает

    P.S. ааа понял ты средствами веб броузера в коде на Си строку искал кавычка делей скобка кавычка.
    Любите вы батенька все усложнять.
    А слабо средствами Pascal-я в HTML-шине искать синтаксические косяки кода на C -и?
    А в компиляторе С религия не позволяет? :tongue:
    У меня уже 9 страшных и ужасных делеев из мордора получилось. Саурон уже здесь? :lol:

    Блин чё делать-то?
    Я ни одного делея тут не написал, а получается в другую на сторону темной силы перешел? :shuffle:

    Спасибо повеселил. :super:

    Круиз-контроль 88 км/ч. Радость никакая печаль.
  • Protez1999 Senior MemberАвтор темы
    офлайн
    Protez1999 Senior Member Автор темы

    9977

    16 лет на сайте
    пользователь #113845

    Профиль
    Написать сообщение

    9977
    # 10 ноября 2019 21:37 Редактировалось Protez1999, 1 раз.

    Может кто нибудь подскажет как отправить через mqtt
    int i=45;
    client.publish("10","20");
    Нужно отправить i вместо 20. i может меняться поэтому возникла такая необходимость.

  • SIO Паяльник & Отвертка TEAM
    офлайн
    SIO Паяльник & Отвертка TEAM

    4105

    17 лет на сайте
    пользователь #68847

    Профиль
    Написать сообщение

    4105
    # 11 ноября 2019 13:18
    Protez1999:

    Может кто нибудь подскажет как отправить через mqtt
    int i=45;
    client.publish("10","20");
    Нужно отправить i вместо 20. i может меняться поэтому возникла такая необходимость.

    Наверно нужно конвертировать i в символьный формат в символьную переменную, и ее отправить вместо 20

    Паяльник & Отвертка TEAM, MikroPascal for AVR http://forum.onliner.by/viewtopic.php?t=637523
  • zverjuga Senior Member
    офлайн
    zverjuga Senior Member

    5030

    13 лет на сайте
    пользователь #346019

    Профиль
    Написать сообщение

    5030
    # 11 ноября 2019 13:29 Редактировалось zverjuga, 1 раз.

    String strI = String(i);
    client.publish("10", strI);

    проклятый антисутенерский закон!
  • SIO Паяльник & Отвертка TEAM
    офлайн
    SIO Паяльник & Отвертка TEAM

    4105

    17 лет на сайте
    пользователь #68847

    Профиль
    Написать сообщение

    4105
    # 11 ноября 2019 13:33
    zverjuga:

    String strI = String(i);
    client.publish("10", strI);

    :super:

    Паяльник & Отвертка TEAM, MikroPascal for AVR http://forum.onliner.by/viewtopic.php?t=637523
  • PSSERG Senior Member
    офлайн
    PSSERG Senior Member

    1238

    16 лет на сайте
    пользователь #113320

    Профиль
    Написать сообщение

    1238
    # 11 ноября 2019 21:20 Редактировалось PSSERG, 2 раз(а).

    ---

    Критикуя, критикуй мнение, а не его автора.
  • SIO Паяльник & Отвертка TEAM
    офлайн
    SIO Паяльник & Отвертка TEAM

    4105

    17 лет на сайте
    пользователь #68847

    Профиль
    Написать сообщение

    4105
    # 11 ноября 2019 22:18
    PSSERG:

    Подскажите какой оптимальный комплект arduino Kit заказать?

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

    Паяльник & Отвертка TEAM, MikroPascal for AVR http://forum.onliner.by/viewtopic.php?t=637523
  • TotCambIKoka Senior Member
    офлайн
    TotCambIKoka Senior Member

    828

    10 лет на сайте
    пользователь #825562

    Профиль
    Написать сообщение

    828
    # 11 ноября 2019 22:50
    PSSERG:

    Подскажите какой оптимальный комплект arduino Kit заказать?

    пластиковую коробочку с али за 20-22 бакса. Без диска и буклетиков.

    [Паяльник & Отвертка TEAM] Кулыбин ищет хлам для творчества. Все замотаю синей изолентой
  • DenFis Senior Member
    офлайн
    DenFis Senior Member

    630

    17 лет на сайте
    пользователь #75628

    Профиль
    Написать сообщение

    630
    # 17 ноября 2019 18:31

    Народ, всем привет! есть у меня такой вопросик, может кто поможет?
    Надо подключить к ардуинки датчики DS18B20 и выводить их данные через usb на комп с Linux и сохранять в csv.
    Меня больше интересует передача по usb и сохранение на Linux.
    Может есть у кого идеи и кто бы мог поделится с зелёным студентом?

  • RepoMan Senior Member
    офлайн
    RepoMan Senior Member

    925

    13 лет на сайте
    пользователь #295041

    Профиль
    Написать сообщение

    925
    # 17 ноября 2019 18:45

    DenFis, ардуинка через Serial.print() выводит данные в любом удобном для парсинга виде, в линуксе открываем соответствующий com порт и парсим, складывая в csv. Или нужна уже готовая прога под линукс?

  • TotCambIKoka Senior Member
    офлайн
    TotCambIKoka Senior Member

    828

    10 лет на сайте
    пользователь #825562

    Профиль
    Написать сообщение

    828
    # 17 ноября 2019 18:47

    DenFis, Пиши парсер с COM порта, и все.. Только линуск смущает - с ним увы нет опыта работы.

    [Паяльник & Отвертка TEAM] Кулыбин ищет хлам для творчества. Все замотаю синей изолентой
  • RepoMan Senior Member
    офлайн
    RepoMan Senior Member

    925

    13 лет на сайте
    пользователь #295041

    Профиль
    Написать сообщение

    925
    # 17 ноября 2019 18:47 Редактировалось RepoMan, 2 раз(а).

    хотя проще формировать строки в csv на самой ардуинке, а на линуксе просто записывать поток в файл (вроде должно сработать "cat /dev/НУЖНЫЙ_КОМ_ПОРТ > output.csv";)

  • TotCambIKoka Senior Member
    офлайн
    TotCambIKoka Senior Member

    828

    10 лет на сайте
    пользователь #825562

    Профиль
    Написать сообщение

    828
    # 17 ноября 2019 18:55

    RepoMan, Хах) не видел твое сообщение) ну раз два мнения совпало - значи человек разбирется и поймет в чем копать.

    [Паяльник & Отвертка TEAM] Кулыбин ищет хлам для творчества. Все замотаю синей изолентой
  • Protez1999 Senior MemberАвтор темы
    офлайн
    Protez1999 Senior Member Автор темы

    9977

    16 лет на сайте
    пользователь #113845

    Профиль
    Написать сообщение

    9977
    # 20 ноября 2019 11:03

    Кто нибудь работал с mqtt. С телефона все норм работает, а команды с есп на есп идут не стабильно.

  • Protez1999 Senior MemberАвтор темы
    офлайн
    Protez1999 Senior Member Автор темы

    9977

    16 лет на сайте
    пользователь #113845

    Профиль
    Написать сообщение

    9977
    # 20 ноября 2019 21:41

    Включим на компе брокер стало в разы стабильнее.

  • ingecate Neophyte Poster
    офлайн
    ingecate Neophyte Poster

    15

    12 лет на сайте
    пользователь #500933

    Профиль
    Написать сообщение

    15
    # 21 ноября 2019 17:51 Редактировалось ingecate, 1 раз.

    Здравствуйте!

    помогите, пожалуйста, чайнику разобраться с программой без delay(). Не могу найти ошибку, а программа работает некорректно.
    Суть проекта - доработать "воздушный" прибор. На 10 пин нам приходит сигнал от открытого вакуумного клапана, и, если его длительность больше 0,2 секунды, то после завершения сигнала нужно выполнить действие (открыть клапан сброса на 2 секунды), управляется через 5-ый пин. Через delay() все работает прекрасно, но нужно от него отвязаться, т.к. в перспективе нужно управлять и другими клапанами в этом же приборе.

    Ниже привожу программу, которую набросал, но она не работает: на первый сигнал реагирует включением 5-го пина в режим HIGH и назад в LOW не переводит (залипает). Если mills меняю на delay (выделил красным в программ) всё начинает прекрасно работать. Где моя ошибка в коде?

    const int KlapanL = 5;
    const int VacL = 10;
    int KLState = LOW;
    unsigned long lastTimeCheckL;
    unsigned long interval = 2000;

    void setup() {
    pinMode(KlapanL, OUTPUT);
    pinMode(VacL, INPUT);
    // lastTimeCheckL = millis();
    }
    void loop() {
    if (pulseIn(VacL, HIGH, 100000000) > 200) {
    digitalWrite(KlapanL, HIGH);
    lastTimeCheckL = millis();
    }
    if ((millis() - lastTimeCheckL) > 2000) {
    // delay(2000);

    digitalWrite(KlapanL, LOW);

    if (KLState == HIGH)
    KLState = LOW;
    else
    KLState = HIGH;
    digitalWrite(KlapanL, KLState);
    }
    }

    За ранее благодарен за помощь!

  • RepoMan Senior Member
    офлайн
    RepoMan Senior Member

    925

    13 лет на сайте
    пользователь #295041

    Профиль
    Написать сообщение

    925
    # 21 ноября 2019 18:29

    int KLState = LOW;
    ...
    digitalWrite(KlapanL, HIGH);
    ...
    if ((millis() - lastTimeCheckL) > 2000) {
    digitalWrite(KlapanL, LOW);
    ...
    KLState = HIGH;
    digitalWrite(KlapanL, KLState);

    так понятнее, где ошибка? спустя 2 секунды клапан отключается и тут же мгновенно включается

  • ingecate Neophyte Poster
    офлайн
    ingecate Neophyte Poster

    15

    12 лет на сайте
    пользователь #500933

    Профиль
    Написать сообщение

    15
    # 22 ноября 2019 09:40 Редактировалось ingecate, 1 раз.
    RepoMan:

    int KLState = LOW;
    ...
    digitalWrite(KlapanL, HIGH);
    ...
    if ((millis() - lastTimeCheckL) > 2000) {
    digitalWrite(KlapanL, LOW);
    ...
    KLState = HIGH;
    digitalWrite(KlapanL, KLState);

    так понятнее, где ошибка? спустя 2 секунды клапан отключается и тут же мгновенно включается

    RepoMan:

    int KLState = LOW;
    ...
    digitalWrite(KlapanL, HIGH);
    ...
    if ((millis() - lastTimeCheckL) > 2000) {
    digitalWrite(KlapanL, LOW);
    ...
    KLState = HIGH;
    digitalWrite(KlapanL, KLState);

    так понятнее, где ошибка? спустя 2 секунды клапан отключается и тут же мгновенно включается

    Немного не понял. Но на всякий случай упростил до:
    const int KlapanL = 5;
    const int VacL = 10;
    unsigned long lastTimeCheckL;
    unsigned long interval = 2000;

    void setup() {
    pinMode(KlapanL, OUTPUT);
    pinMode(VacL, INPUT);
    // lastTimeCheckL = millis();
    }
    void loop() {
    if (pulseIn(VacL, HIGH, 100000000) > 200) {
    digitalWrite(KlapanL, HIGH);
    lastTimeCheckL = millis();

    if ((millis() - lastTimeCheckL) > 2000) {
    // delay(2000);

    digitalWrite(KlapanL, LOW);
    }
    }
    }

    Ничего не поменялось. Клапан "залипает" при первом сигнале.

  • RepoMan Senior Member
    офлайн
    RepoMan Senior Member

    925

    13 лет на сайте
    пользователь #295041

    Профиль
    Написать сообщение

    925
    # 22 ноября 2019 11:41

    А кто будет, упрощая, следить за скобками? Подсказка: в первом варианте в конце 2 закрывающих скобки, во втором - 3

  • ingecate Neophyte Poster
    офлайн
    ingecate Neophyte Poster

    15

    12 лет на сайте
    пользователь #500933

    Профиль
    Написать сообщение

    15
    # 22 ноября 2019 11:51 Редактировалось ingecate, 2 раз(а).

    Скобку перемещал и после

    lastTimeCheckL = millis();

    как было в первом варианте - результат не меняется, не в этом проблема