Данные расстояния.

Тема в разделе "Закажу проект", создана пользователем Avas185, 25 июн 2018.

  1. Avas185

    Avas185 Нерд

  2. Airbus

    Airbus Оракул

    Так а что там в скетче?Что в итоге Вам надо?Вот скетч
    Код (C++):
    // Подключаем библиотеки:                                       //
    #include <Wire.h>                                               // Для работы с шиной I2C
    #include <APDS9930.h>                                           // Для работы с датчиком APDS-9930
    APDS9930 apds = APDS9930();                                     // Определяем объект apds, экземпляр класса APDS9930
                                                                    //
    // Объявляем переменные:                                        //
    uint16_t proximityData = 0;                                     // Определяем переменную для хранения значения приближения
                                                                    //
    void setup(){                                                   //
        Serial.begin(9600);                                         // Инициируем передачу данных в монитор последовательного порта на скорости 9600 бит/сек
    //  Инициируем работу датчика:                                  //
        if(apds.init()){                                            // Если инициализация прошла успешно, то ...
              Serial.println("Initialization OK!");                 // Выводим сообщение об успешной инициализации датчика
        }else{Serial.println("Initialization ERROR!");}             // Иначе, выводим сообщение оо ошибке инициализации датчика
                                                                    //
    //  Устанавливаем коэффициент усиления приёмника:               // Доступные значения: 1х, 2х, 4х, 8х (PGAIN_1X, PGAIN_2X, PGAIN_4X, PGAIN_8X). Чем выше коэффициент тем выше чувствительность
        if(apds.setProximityGain(PGAIN_2X)){                        // Если установлен коэффициент усиления приёмника в режиме определения расстояния, то ...
              Serial.println("Set gain OK!");                       // Выводим сообщение об успешной установке коэффициента усиления приёмника
        }else{Serial.println("Set gain ERROR!");}                   // Иначе, выводим сообщение об ошибке при установке коэффициента усиления приёмника
                                                                    // Прочитать установленный коэффициент усиления приёмника можно так: uint8_t i = apds.getProximityGain(); // в переменную i сохранится значение: PGAIN_1X, или PGAIN_2X, или PGAIN_4X, или PGAIN_8X
    //  Устанавливаем силу тока драйвера ИК-светодиода:             // Доступные значения: 100мА, 50мА, 25мА, 12.5мА (LED_DRIVE_100MA, LED_DRIVE_50MA, LED_DRIVE_25MA, LED_DRIVE_12_5MA). Чем выше сила тока, тем выше чувствительность.
        if(apds.setProximityDiode(LED_DRIVE_25MA)){                 // Если установлена сила тока драйвера (яркость) ИК-светодиода для обнаружения приближения, то ...
              Serial.println("Set LED drive OK!");                  // Выводим сообщение об успешной установке силы тока драйвера
        }else{Serial.println("Set LED drive ERROR!");}              // Иначе, выводим сообщение об ошибке при установке силы тока драйвера
                                                                    // Прочитать установленную силу тока можно так: uint8_t i = apds.getProximityDiode(); // в переменную i сохранится значение: LED_DRIVE_100MA, или LED_DRIVE_50MA, или LED_DRIVE_25MA, или LED_DRIVE_12_5MA
    //  Разрешаем режим определения приближения:                    //
        if(apds.enableProximitySensor(false)){                      // Если механизм определения приближения (false - без прерываний на выходе INT) запущен, то ...
              Serial.println("Start proximity sensor OK!");         // Выводим сообщение об успешном запуске механизма определения приближения
        }else{Serial.println("Start proximity sensor ERROR!");}     // Иначе, выводим сообщение об ошибке запуска механизма определения приближения
                                                                    // Запретить работу механизма определения приближения можно так: bool j = apds.disableProximitySensor(); // в переменную j сохранится результат выполнения функции (true/false)
    //  Ждём завершение инициализации и калибровки:                 //
        delay(500);                                                 //
    }                                                               //
                                                                    //
    void loop(){                                                    //
    //  Читаем определённое датчиком значение приближения:          //
        if(apds.readProximity(proximityData)){                      // Если значение приближения корректно прочитано в переменную proximityData, то ..
              Serial.println((String) "Proximity="+proximityData);  // Выводим значение приближения
        }else{Serial.println("Reading proximity value ERROR!");}    // Иначе, выводим сообщение об ошибке чтения приближения
                                                                    //
    //  Приостанавливаем выполнение скетча на 1 секунду:            //
        delay(1000);                                                // Чтоб не перегружать шину I2C постоянными запросами
    }                                                               //
    Выдаёт условные единицы у.е. пропорциональные освещённости.Не дальности - освещённости.При постоянной освещённости магические числа пропорциональны расстоянию если измениться общая освещённость то другим числам будут соответствовать другие магические числа.я ясно объяснил?Видео от хорошего Человека с Форума Пушного Звера - обратитесь к нему может он Вам яснее обьяснит?
     
    Последнее редактирование: 25 июн 2018
  3. Avas185

    Avas185 Нерд

    Мда как мне это надоело уже
     
  4. Mitrandir

    Mitrandir Гуру

    Airbus, он хочет чтобы строку

    Код (C++):
    Serial.println((String) "Proximity="+proximityData);
    заменили на что то вроде:
    Код (C++):
    LCDScreen.show("Proximity="+proximityData);

     
     
    Airbus нравится это.
  5. Airbus

    Airbus Оракул

    Я Вас правильно понял:Вам нужен скетч тот что выше чтоб работал также но данные выводил не в порт а на OLED дисплей?И цена вопроса 100 рублей?
     
  6. Airbus

    Airbus Оракул

    А ну я так и подумал.Нет чтоб сразу правильно сформировать хотелку?А мы тут умничаем....
     
  7. ostrov

    ostrov Гуру

    вот что вы писать на рускагу языку
     
  8. DIYMan

    DIYMan Гуру

    Не мучайся - напиши сам, тут все тупые и непонятливые :)
     
    parovoZZ, Mitrandir и Airbus нравится это.
  9. Avas185

    Avas185 Нерд

    не я это сказал но добавлю что тупые не только тут
     
  10. parovoZZ

    parovoZZ Гуру

    и не только я )))
     
  11. ИгорьК

    ИгорьК Давно здесь

    Давно такого занимательного чтения не было... :)
     
    Mitrandir нравится это.
  12. DIYMan

    DIYMan Гуру

    Это заговор, бро: тебя окружают дебилы. Будь осторожен - они кругом!
     
  13. DetSimen

    DetSimen Гуру

    ТС,
    тупой.jpg
     
    Airbus нравится это.
  14. Airbus

    Airbus Оракул

    И чегойто все молчат?На кону денежное предложение готовый скетч надо только несколько строчек подправить и заработаешь аж на 2 бутылки Пива!DetSimen на дачу под футбол а?
     
  15. parovoZZ

    parovoZZ Гуру

    Это где такие цены? Или имеешь ввиду мочу?
     
  16. Пушной звер

    Пушной звер Оракул

    на али, сублимированное.
     
  17. Airbus

    Airbus Оракул

    Два Козла.Великопоповицких.По 0.5.Или я отстал от жизни?Пиво давно не пью.От пива кровь киснет и ### виснет.
     
    parovoZZ нравится это.
  18. DetSimen

    DetSimen Гуру

    мне пива нельзя. я по простому лечусь.
     
    Airbus нравится это.
  19. Airbus

    Airbus Оракул

    Дет Сименс так на стопарик хватит?На такой?
     
  20. DetSimen

    DetSimen Гуру

    да. на "тычок" хватит.
     
    Airbus нравится это.