Помогите, не загружается программа.

Тема в разделе "Arduino & Shields", создана пользователем Алексей_Д, 16 мар 2016.

  1. Не получается залить в Arduin UNO ни первый ни второй скетч, взятый из книги. Почему? Библиотеки загрузил.
     

    Вложения:

    • PrtScn1.jpg
      PrtScn1.jpg
      Размер файла:
      152,2 КБ
      Просмотров:
      586
    • PrtScn2.jpg
      PrtScn2.jpg
      Размер файла:
      189,2 КБ
      Просмотров:
      555
  2. Alex19

    Alex19 Гуру

    На сообщение, насколько помню можно не обращать внимание, просто нажмите ОК.

    А вот ошибку надо исправить, у Вас не установлены библиотеки OneWire 1 фото, DallasTemperature на 2 фото.

    Как установить, можно прочесть тут -http://wiki.amperka.ru/программирование:библиотеки.

    Или тут - http://forum.amperka.ru/threads/Работа-с-библиотеками.4253/.

    UPD. Библиотеку можно взять от сюда - http://playground.arduino.cc/Learning/OneWire. DallasTemperature не знаю, не пользуюсь стандартными, но тема на форуме не раз подымалась поищите.
     
    Последнее редактирование: 16 мар 2016
  3. Читал, читал но так и не понял почему библиотеки "не подключились". Но всё равно спасибо за помощь. Попробую завтра на свежую голову...
     
  4. Megakoteyka

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

    Вы их скачали? Установили?
     
  5. Скачал, и как мне показалось установил...
     

    Вложения:

  6. Megakoteyka

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

    Среда не видит файл onewire.h. На ваших скриншотах его тоже не видно.
     
  7. Откуда можно скачать библиотеку onewire.h.? И может ли помочь этот инструмент?
     

    Вложения:

  8. Megakoteyka

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

    На гитхабе ищите.
     
  9. Alex19

    Alex19 Гуру

    Попробуйте удалить библиотеки и установить от сюда - http://www.pjrc.com/teensy/arduino_libraries/OneWire.zip, данная ссылка взята тут - http://playground.arduino.cc/Learning/OneWire. Загрузите библиотеку заново.

    А дальше, просто попробуйте примеры от этой библиотеки. Предположу, что у Вас датчики температуры DS18S20, DS18B20 или DS1822.

    Удачи.
     
  10. Библиотеку OneWire скачал и переустановил, но всё равно выдаёт ошибку. Получается что не встала библиотека Dallas, правильно я понимаю.
     

    Вложения:

  11. Библиотеку OneWire скачал и переустановил, но всё равно выдаёт ошибку. Получается что не встала библиотека Dallas, правильно я понимаю.
     

    Вложения:

  12. Securbond

    Securbond Гуру

    Не находит библиотеку ds18b20.h
     
  13. Это скетч из книги. Я пытаюсь разобраться как подключать датчики DS k arduino uno. Скетч скопирован из книги на плату не грузится... Мне необходимо включать и выключать реле , в зависимости от температуры. Например четыре датчика и на каждый из них по реле. Например датчик измерил температуру получилось 4 градуса по цельсию, включаем реле. Поднялась температура до 10 градусов, выключаем. Если поможете со скетчем буду очень признателен.
     
  14. Securbond

    Securbond Гуру

    Код (C++):

    #include <OneWire.h>
    #include <DallasTemperature.h>

    // инициализация порта для подключения датчика температуры
    #define ONE_WIRE_BUS 10 // пин с датчиком температуры
    OneWire oneWire(ONE_WIRE_BUS);
    DallasTemperature sensors(&oneWire);

    void setup() {
       Serial.begin(9600);
    sensors.begin();//Инициализируем датчик температуры
    }
    void loop() {

    sensors.requestTemperatures();
    float TempDS=(sensors.getTempCByIndex(0));

      serial.print("t: ");
      serial.print( TempDS);//Выводим  температуру
      serial.print(" C");
      delay (2000);
    }
     

    Набирал на планшете могут быть ошибки
    Реле и условие его включения попробуйте написать сами.. Я в дороге с планшетом.
     
    Последнее редактирование: 22 мар 2016


  15. Спасибо за помощь. Но я так и не понял как подключить и организовать взаимодействие четырёх датчиков. Нужно ли прописывать " инициализацию порта" для подключения каждого из четырёх датчиков. Уровень познаний в этом деле никакой, поэтому не понятно как подключать эти датчики, каждый на отдельный пин или все четыре через 10.
     
  16. Securbond

    Securbond Гуру

    Прописываются только адреса датчиков которые можно посмотреть специальным скетчем. В библиотеке Dallas есть примеры (Файл- Образцы - dallastemperature) там Вам и сканер и примеры для нескольких датчиков). Если решили заниматься, научитесь находить, хотя бы такие элементарные вещи.
     
  17. Securbond

    Securbond Гуру

    Вот мой скетч..
    Код (C++):
    #include <SPI.h>
    #include <Ethernet.h>
    #include <PubSubClient.h>
    #include <OneWire.h>
    #include <DallasTemperature.h>

    #define ONE_WIRE_BUS 5
    OneWire oneWire(ONE_WIRE_BUS);
    DallasTemperature sensors(&oneWire);


    DeviceAddress Thermometer1 = { 0x28, 0xFF, 0x62, 0x42, 0x62, 0x15, 0x01, 0x9A };  // адрес датчика DS18B20 280054B604000092
    DeviceAddress Thermometer2 = { 0x28, 0xFF, 0xE7, 0x2C, 0xA6, 0x15, 0x01, 0xCB };
    IPAddress ip(192, 168, 0, 15);
    IPAddress server(XXX, XXX, XXX, XXX);
    byte mac[] = {  0xDE, 0xED, 0xBA, 0xFE, 0xFE, 0xED };
    char tmp1[10];
    char tmp2[10];
    unsigned long loopTime;
    unsigned long currentTime;

    EthernetClient ethClient;
    PubSubClient client(server, 1883, callback, ethClient);



    void callback(char* topic, byte* payload, unsigned int length) {
      // handle message arrived (no messages expected though)
    }

    void reconnect() {
      while (!client.connected()) {
        Serial.println("Attempting MQTT connection...");
        // Attempt to connect
        if (client.connect("arduinoClient")) {
          Serial.println("connected");
        }
            else {
          Serial.print("failed, rc=");
          Serial.print(client.state());
          Serial.println(" try again in 5 seconds");
          delay(3000);
        }
      }
    }

    void setup() {
      Serial.begin(9600);
      sensors.begin();
      sensors.setResolution(Thermometer1, 10);
      sensors.setResolution(Thermometer2, 10);
      currentTime = millis();    
      loopTime = currentTime;
      Ethernet.begin(mac, ip);
      if (client.connect("arduinoClient")) {
        Serial.println("online");
      }
    }
    void loop() {
      client.loop();
      currentTime = millis();
      sensors.requestTemperatures();
        if(currentTime >= (loopTime + 10000)){
         if (!client.connected()) {
           reconnect();
      }
      float temperature1 = sensors.getTempC(Thermometer1);
      float temperature2 = sensors.getTempC(Thermometer2);
          dtostrf(temperature1, -2, 1, tmp1);
          client.publish("test/device/arduino01/temp1",tmp1);
          dtostrf(temperature2, -2, 1, tmp2);
          client.publish("test/device/arduino01/temp2",tmp2);      
     
        loopTime = currentTime;
        }
    }
     

    Уберите лишнее что относится к Ethernet, подставьте адреса Ваших датчиков. И пропишите вывод в монитор ком порта (serial.println();)
    Удачи....
     
  18. Alex19

    Alex19 Гуру

    Извините за паузу, много работы.

    Для этой библиотеки, которую скидывал, библиотека Dallas не нужна. Вы пользуетесь этой библиотекой, а примерами из другой.
     
  19. Securbond

    Securbond Гуру

    Запутали человека )))
     
  20. Alex19

    Alex19 Гуру

    Возможно, хотя не хотел:(, прям доставай из коробки DS18B20 и разбирайся с библиотеками для Ардуино, сам пользуюсь библиотекой для AVR.

    Попробую по другому, когда Вы скачали библиотеку, пользуйтесь примерами из этой библиотеки, а не из других, или сохраненных ранее скетчей. Если не получится пишите, завтра подробно Вам распишу как делать (раз я запутал, буду выпутывать:)).
     
    Последнее редактирование: 23 мар 2016