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

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

  1. wildofficer

    wildofficer Нуб

    В setup() не пробовал. В loop() все работает. Спасибо!!!
    Где я не в ту сторону думал? Действительно ли byte сразу заполняется как "mcureenab" писал? (хотя для меня пока байты тоже непонятны)
    Можно хоть чуток смысл происходящего пояснить, почему с do не работало?
     
  2. Jedi

    Jedi Гик

    Потому что do (выполнять то, что в фигурных скобках) { counter++; (то есть увеличивать значение ячейки памяти на 1 каждую 1/16 микросекунды) } while(counter<3) (пока значение ячейки памяти меньше трех);

    Что просили, то и сделал процессор. Просили до трех досчитать и больше ничего, он это и выполнил. А то, что моргнуть глазом не успели, так это не вина процессора
     
    wildofficer нравится это.
  3. wildofficer

    wildofficer Нуб

    Добрый день форумчане! Опять прошу помощи в моем обучении. В скетче диод загорается от 0 до 7 и 7 до 0. Помогите пожалуйста, как сделать чтобы оба цикла for в loop выполнялись одновременно ?
    Спасибо!

    Код (C++):

    int ledPins[] = {2,3,4,5,6,7,8,9};

    void setup()
    {
      int index;

        for(index = 0; index <= 7; index++)
      {
        pinMode(ledPins[index],OUTPUT);
      }
    }


    void loop()
    {
      pingPong();
    }


    void pingPong()
    {
      int index;
      int delayTime = 100;
     

     
      for(index = 0; index <= 7; index++)
      {
        digitalWrite(ledPins[index], HIGH);
        delay(delayTime);                  
        digitalWrite(ledPins[index], LOW);  
      }

      for(index = 7; index >= 0; index--)
      {
        digitalWrite(ledPins[index], HIGH);
        delay(delayTime);                  
        digitalWrite(ledPins[index], LOW);  
      }
    }
     
     
  4. Tomasina

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

    Код (C++):
    const byte ledCols = 8;
    const byte ledPins[ledCols] = {2, 3, 4, 5, 6, 7, 8, 9};

    void setup()
    {
      byte index;
      for (index = 0; index < ledCols; index++)
      {
        pinMode(ledPins[index], OUTPUT);
      }
    }


    void loop()
    {
      pingPong();
    }


    void pingPong()
    {
      static const unsigned int delayTime = 100;

      for (byte index = 0; index < ledCols; index++)
      {
        digitalWrite(ledPins[index], HIGH);
        digitalWrite(ledPins[ledCols -1 - index], HIGH);
        delay(delayTime);
        digitalWrite(ledPins[index], LOW);
        digitalWrite(ledPins[ledCols -1 - index], LOW);
        //delay(delayTime);
      }
    }
     
    Последнее редактирование: 13 май 2017
    wildofficer нравится это.
  5. mcureenab

    mcureenab Гуру

    Тело второго цикла поместить в первый. Чтобы сохранить порядок включения index заменить на 7 - index.
     
    wildofficer нравится это.
  6. wildofficer

    wildofficer Нуб

    Tomasina, вы как всегда выручаете! Хотя я ожидал, что будет попроще..
    Спасибо! Буду разбираться.
     
  7. Tomasina

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

    гм, а что тут сложного?
    Обратное движение - это всего лишь из максимального номера вычесть текущий. Обычная математика ;)
     
  8. wildofficer

    wildofficer Нуб

    Спасибо, mcureenab! Так что ли?
    Код (C++):


    int ledPins[] = {2,3,4,5,6,7,8,9};

    void setup()
    {
       int index;

         for(index = 0; index <= 7; index++)
       {
         pinMode(ledPins[index],OUTPUT);
       }
    }


    void loop()
    {
       pingPong();
    }


    void pingPong()
    {
       int index;
       int delayTime = 100;



       for(index = 0; index <= 7; index++)
       {
         digitalWrite(ledPins[index], HIGH);
         delay(delayTime);                
         digitalWrite(ledPins[index], LOW);
         digitalWrite(ledPins[7-index], HIGH);
         delay(delayTime);                
         digitalWrite(ledPins[7-index], LOW);
       }

      /* for(index = 7; index >= 0; index--)
       {
         digitalWrite(ledPins[index], HIGH);
         delay(delayTime);                
         digitalWrite(ledPins[index], LOW);
       }
       */

    }
     
     
  9. qwone

    qwone Гик

    Новички такие ... блин "новички". В общем код
    Код (C++):
    //pingPong.ino
    const byte Led_pin[] = {2, 3, 4, 5, 6, 7, 8, 9};
    const int time = 100;
    int pos = 0; // позиция 0..7
    int dir = 1; // направление движения +1 вправо -1 влево
    void pingPong_setup() {
      for (int i = 0; i <= 7; i++) {
        pinMode(Led_pin[i], OUTPUT);
        digitalWrite(Led_pin[i], LOW);
      }
    }
    void pingPong() {
      static uint32_t past = 0;
      if (millis() - past >= time) {
        past = millis();
        digitalWrite(Led_pin[pos], LOW);
        if (pos + dir > 7) dir = -1;
        if (pos + dir < 0) dir = 1;
        pos += dir;
        digitalWrite(Led_pin[pos], HIGH);
      }
    }
    void setup() {
      pingPong_setup();
    }

    void loop() {
      pingPong();
    }
     
  10. mcureenab

    mcureenab Гуру

    Как бы так. Пины будут срабатывать поочередно. 0,7,1,6,2,5...
    У Томасины порядок тот же но одновременно срабатывает два противоположных пина.
    Как вам надо я не знаю.
     
  11. wildofficer

    wildofficer Нуб

    :);):D Спасибо!
     
  12. Svirik

    Svirik Нерд

    Здравствуйте !!!
    Недавно прикупил вот такую штучку-дрючку!
    Wemos Higrow ESP32 WiFi + Bluetooth Батарея + DHT11 Температура и влажность почвы.
    Точное название на AliExpress: ESP32 WIFI&Bluetooh Battery Soil Molsture Sensor & DHT
    Нигде в рус-яз инете не могу скетч добыть притом что с устройством ничего не было его память была пуста. Попытался найти к какой ноге прикручено понял что к 23 как ни старался в Arduino IDE в ставить не получалось. Скетч взял от сюда higrow.tech Разные библиотеки от датчиков ставил DHT.h не помогло пишет:

    C:\Users\HP_DV7\Documents\Arduino\sketch\HiGrowEsp32\HiGrowEsp32.ino: In function 'void setup()':

    HiGrowEsp32:50: error: 'esp_deep_sleep_enable_timer_wakeup' was not declared in this scope

    esp_deep_sleep_enable_timer_wakeup(1800 * uS_TO_S_FACTOR);

    ^

    HiGrowEsp32:51: error: 'esp_deep_sleep_pd_config' was not declared in this scope

    esp_deep_sleep_pd_config(ESP_PD_DOMAIN_RTC_PERIPH, ESP_PD_OPTION_OFF);

    ^

    C:\Users\HP_DV7\Documents\Arduino\sketch\HiGrowEsp32\HiGrowEsp32.ino: In function 'void loop()':

    HiGrowEsp32:75: error: 'esp_deep_sleep_enable_timer_wakeup' was not declared in this scope

    esp_deep_sleep_enable_timer_wakeup(DEEPSLEEP_SECONDS * uS_TO_S_FACTOR);

    ^

    C:\Users\HP_DV7\Documents\Arduino\sketch\HiGrowEsp32\HiGrowEsp32.ino: In function 'void sensorsData(char*)':

    HiGrowEsp32:98: error: 'class DHT' has no member named 'computeHeatIndex'

    float hic = dht.computeHeatIndex(temperature, humidity, false);

    ^

    Используем библиотеку WiFi версии 1.0 из папки: C:\Users\HP_DV7\Documents\Arduino\hardware\espressif\esp32\libraries\WiFi
    Используем библиотеку HTTPClient версии 1.1 из папки: C:\Users\HP_DV7\Documents\Arduino\hardware\espressif\esp32\libraries\HTTPClient
    Используем библиотеку DHT в папке: C:\Users\HP_DV7\Documents\Arduino\hardware\espressif\esp32\libraries\DHT (legacy)
    Используем библиотеку WiFiClientSecure версии 1.0 из папки: C:\Users\HP_DV7\Documents\Arduino\hardware\espressif\esp32\libraries\WiFiClientSecure
    exit status 1
    'esp_deep_sleep_enable_timer_wakeup' was not declared in this scope

    Уважаемые люди помогите разобраться только открыто по сути а то я не особа шарю!!!
     
    Последнее редактирование: 16 янв 2018
  13. ИгорьК

    ИгорьК Гуру

    А Вы до приобретения этой железочки то-то уже делали?
     
  14. Svirik

    Svirik Нерд

    чуть
     
  15. Svirik

    Svirik Нерд

    Руками делаю работает а с кодом, только библиотеки подключать умею
     
  16. ИгорьК

    ИгорьК Гуру

    Дык... Вы и получили что умеете - никаких серьезных проектов для Вашего уровня подготовки с ESP32 еще нет.
    Шагайте на Youtube - там пара импортных товарищей на импортном языке делает циклы лекций по работе с эти модулем.
    Вот, например: https://www.youtube.com/channel/UCu7_D0o48KbfhpEohoP7YSQ
    У него что-то около 200 уроков.


    Кстати, научитесь код вставлять на форуме - это очень полезно делать правильно.
     
    arkadyf и MESS нравится это.
  17. Svirik

    Svirik Нерд

    С такими же модулями 3в1 ?
     
  18. ИгорьК

    ИгорьК Гуру

    ага. в том числе
     
  19. Arduino_man

    Arduino_man Гик

  20. ZAZ-965

    ZAZ-965 Гуру

    @Svirik, для функций esp_deep_sleep_enable_timer_wakeup и esp_deep_sleep_pd_config подключите заголовочный файл
    Код (C++):
    #include <esp_deep_sleep.h>
    Метод computeHeatIndex есть в библиотеке от adafruit https://github.com/adafruit/DHT-sensor-library
     
    arkadyf и Svirik нравится это.