Помощь новичку

Тема в разделе "Arduino & Shields", создана пользователем s2dent6732, 23 дек 2016.

  1. mofo

    mofo Нуб

    странно при таком подключении, в случае например если один из источников выключается то показания со второго сильно меняются и наоборот...
     
  2. sslobodyan

    sslobodyan Гик

    Выключается питание на устройстве? Значит на выходе нет напряжения и что тогда мерить? Подтяните к земле аналоговый вход резистором в несколько сотен килоом - хотя бы 0 вольт покажет. И покпжите свой код. Влияния входов друг на друга быть не должно.
     
  3. foster08

    foster08 Нуб

    Ребята всем привет, пытаюсь перевести скетч генератора для модуля AD9851 под дисплей


    Исправил все функции для вывода на экран, я понимаю что там все сикось-накось будет выводится, но это форматирование текста я исправлю чуть позже, когда удастся запустить скетч. После замены всех функций вывода на экран стали переть ошибки. Сама библиотека рабочая ровно как и библиотека генератора. Но где-то я накосячил и битый час не могу понять почему я дурак. Ткните носом, пожалуйста. На данный момент ругается на
    exit status 1
    'setincrement' was not declared in this scope

    Хотя эта функция описана в скетче.

    Исходник в пост не влез, выложил тут http://pastebin.com/6TRHkacF
     
  4. Unixon

    Unixon Оракул Модератор

    Прототип функции объявите выше места использования:
    void setincrement();
     
  5. Neded8

    Neded8 Нуб

    ПРОШУ ПОМОЩИ!
    Не работает ЖК дисплей LCD 16x2, вчера работал стабильно, я разобрал\собрал\включил и из всего только ряд квадратов и не реагирует на скетч.
    Подключал
    Ардуино______________Экран
    А0/А0
    5V/5V
    RST/RST
    GND/GND
    VIN/VIN
    D2-D5,D11,D12/D2-D5,D11,D12
    приметки*
    контрастность регулировал но не в этом дело, он то квадраты показывает, то крякозябры, даж не знаю от чего зависит...
     

    Вложения:

    • Image.jpg
      Размер файла:
      900,1 КБ
      Просмотров:
      397
    • Imagew.jpg
      Размер файла:
      900,1 КБ
      Просмотров:
      697
  6. mofo

    mofo Нуб

    Друзья вопрос такой: как можно из переменной типа int вычленить цифры по отдельности? Например в переменной "a", значение "1234". задача разбить это значение на 4 цифры и каждую присвоить своей переменной, чтобы в итоге получилось 4 других переменных с цифрами из переменной "a".
     
  7. rkit

    rkit Гуру

    Ну школьная математика же. Делим на 10 с остатком.
     
    mofo нравится это.
  8. mofo

    mofo Нуб

    1234 / 10 = 123.4 я заранее извиняюсь, но можете подробнее рассказать
     
  9. mofo

    mofo Нуб

    Всё нашёл:) Спасибо!
    a=1234
    b=a%10
    получается в b будет 4. то есть последняя цифра. а как остальные цифры выделить в свои переменные? Просто в этих четырёх переменных должно быть строго по одной цифре.

    Вроде так:

    PressDisp[0] = val/1000;
    PressDisp[1] = val/100%10;
    PressDisp[2] = val/10%10;
    PressDisp[3] = val%10;
     
    Последнее редактирование: 22 фев 2017
    Tomasina нравится это.
  10. Tapestry

    Tapestry Нуб

    Всем привет.Вопрос такой;можно ли поставить отдельно другую,свежую версию IDE.Стоит версия 1.0.5-r2,а теперь нужна 1.6.4,или надо первую убраить и ставить вторую.
     
  11. Tomasina

    Tomasina Сушитель лампочек Модератор

    можно, если поставить в другую папку.
    С библиотеками сложнее - либо делать у каждой версии свой комплект библиотек, либо сложить их в общую папку и в IDE прописать пути к ней.
     
  12. vvr

    vvr Инженерище

    у меня установлено 6 версий и в каждой свои библиотеки)))
    не знаю, может и не правильно, но работает...
     
    ИгорьК нравится это.
  13. ИгорьК

    ИгорьК Гуру

    Ардуино - это религия :)
     
    vvr нравится это.
  14. mcureenab

    mcureenab Гуру

    Функцией itoa преобразуем число в массив цифр. Вычитанием символа 0 Цифры из ASCII преобразуем в бинарное представление.
     
  15. rkit

    rkit Гуру

    Код (C++):
    size_t i = sizeof(PressDisp);
    do {
      PressDisp = val % 10;
      val /= 10;
    }
    while (i--);
     
    Последнее редактирование: 23 фев 2017
  16. Tapestry

    Tapestry Нуб

    VVR,пожалуста по подробней,для чайника.Буду очень признателен.Первая версия стоит на НАНЕ-помошник при дисциляции.Показывает температуру куба,крепость спиртовых паров,пищит при установленных температурах.Новые версии буду ставить на УНО и навешивать разные опции.Всё это придумал коллега по форуму самогонщиков.Я старательно копирую.
     
  17. wildofficer

    wildofficer Нуб

    День добрый. Подскажите почему не останавливается loop ? когда вставляю while(true); loop прерывается, а с static byte counter = 0; do { counter++;} while(counter<3); работает непрерывно.

    Код (C++):
    int ledPins[] = {2,3,4,5,6,7,8,9};
    void setup()
      {
       for(int i = 0; i < 8; i++)
      {
          pinMode(ledPins[i],OUTPUT);
      }

      pinMode(ledPins[0],OUTPUT);
      pinMode(ledPins[1],OUTPUT);
      pinMode(ledPins[2],OUTPUT);
      pinMode(ledPins[3],OUTPUT);
      pinMode(ledPins[4],OUTPUT);
      pinMode(ledPins[5],OUTPUT);
      pinMode(ledPins[6],OUTPUT);
      pinMode(ledPins[7],OUTPUT);
    }

    void loop()
    {
    oneAfterAnotherNoLoop();

    static byte counter = 0;
      do
    {
       counter++;
      }
      while(counter<3);
     
    }

    void oneAfterAnotherNoLoop()
    {
      int delayTime = 500;
      digitalWrite(ledPins[0], HIGH);
      delay(delayTime);

    Спасибо!
     
  18. Unixon

    Unixon Оракул Модератор

    loop() никогда не останавливается, в этом его фишка и вообще жизненное предназначение.

    Какое поведение программы вы понимаете под "прерывается" и "работает непрерывно"? В первом случае у вас цикл while должен быть бесконечным (и в нем все повиснет), во втором пролетать незаметно.

    И вообще, не забывайте, что делает main:
    Код (C++):

    int main(void)
    {
      init();

      initVariant();

    #if defined(USBCON)
      USBDevice.attach();
    #endif

      setup();

      for (;;) {
      loop();
      if (serialEventRun) serialEventRun();
      }

      return 0;
    }
     
     
  19. Tomasina

    Tomasina Сушитель лампочек Модератор

    Попробуй так:
    Код (C++):
    const byte ledPins[] = {2,3,4,5,6,7,8,9};

    void oneAfterAnotherNoLoop(void);

    void setup()
    {
        pinMode(ledPins[i],OUTPUT);
    }

    void loop()
    {
        oneAfterAnotherNoLoop();
        static byte counter = 0;
        counter++;
        if(counter > 3)
        {
            counter = 3;
            return;
        }
    }

    void oneAfterAnotherNoLoop()
    {
      const int delayTime = 500;
      digitalWrite(ledPins[0], HIGH);
      delay(delayTime);
        }
     
  20. wildofficer

    wildofficer Нуб

    Все равно повторяется loop