Помогите вывести давление BMP280 и TM1637

Тема в разделе "Микроконтроллеры AVR", создана пользователем Klif, 20 мар 2019.

  1. Klif

    Klif Нуб

    Код (C++):
    #include <Adafruit_Sensor.h>
    #include <Adafruit_BMP280.h>
    #include "TM1637.h"
    #include <SPI.h>
    bool En;
    String Value;
    #define CLK 3 //pins definitions for TM1637 and can be changed to other ports    
    #define DIO 2
    TM1637 tm1637(CLK,DIO);
    float Pressure;
    #define SEALEVELPRESSURE_HPA (1013.25)
    //Adafruit_BMP280 bme; // I2C
    #define BMP_SCK 13
    #define BMP_MISO 12
    #define BMP_MOSI 11
    #define BMP_CS 10
    //Adafruit_BMP280 bme; //  работаем по шине I2C
    //Adafruit_BMP280 bme(BMP_CS); // работаем по шине  hardware SPI
    Adafruit_BMP280 bme(BMP_CS, BMP_MOSI, BMP_MISO,  BMP_SCK);
    void setup()
    {
    tm1637.init();
    tm1637.set(5);
    if (!bme.begin()) {
        Serial.println("Could not find a valid BMP280 sensor, check wiring!");
        while (1);
    }
    }
    void loop()
    {
    Pressure = bme.readPressure()/ 100.0F * 0.7500;
    //En= 1;
    Value = ( _floatToStringWitRaz(Pressure,4));
    //Pressure = bme.readPressure();// 100.0F * 0.7500;
    int Pressureone = Pressure / 10;
    int Pressuretwo = Pressure % 10;
    int Pressurethree = Pressure % 10;
    int Pressurefree = Pressure % 10;

    //Value = ( _floatToStringWitRaz(Pressure,4));
    tm1637.display(0,Pressureone);
    tm1637.display(1,Pressuretwo);
    tm1637.display(2,Pressurethree);
    tm1637.display(3,Pressurefree);

    //void displayPessure(int P)(
    //const int8_t digets[4]= { p/10, p%10, p/10, p%10 };
    //  tm1637.display(digets);
    //  )
    delay (5000);

    }
    String  _floatToStringWitRaz(float value, int raz)
    {
      return String(value,raz);
    }
     
    Последнее редактирование: 20 мар 2019
  2. ImrDuke

    ImrDuke Гик

    А в чем проблема?
     
  3. Klif

    Klif Нуб

    Где то ошибка, не выводит на дисплей
     
  4. Asper Daffy

    Asper Daffy Гуру

    А она у тебя хоть что-нибудь выводит? Можешь цифру 2 вывести? А число 321 можешь?
     
  5. Klif

    Klif Нуб

    Да могу и 2 и 321 и 8967, А вот Pressure не могу
     
  6. Asper Daffy

    Asper Daffy Гуру

    Вот смотри. Вот в этих строках

    int Pressureone = Pressure /10;
    int Pressuretwo = Pressure %10;
    int Pressurethree = Pressure %10;
    int Pressurefree = Pressure %10;

    написан бред. Но я не хочу прямо подсказывать. Поставь после них вывод всех четырёх переменных в монитор порта и поймёшь всё сам. Заодно и, возможно, разберёшься как их правильно печатать.
     
  7. Klif

    Klif Нуб

    Попробую. но это посоветовали в другом форуме
     
  8. Asper Daffy

    Asper Daffy Гуру

    Так ты иногда голову включай, а не только советы слушай. Ты не видишь, что переменным Pressuretwo, Pressurethree и Pressurefree у тебя присваивается ОДНО И ТОЖЕ? Ты этого хотел?
     
    Andrey12 нравится это.
  9. znamen

    znamen Гик

    А вот Возьмите и подскажите прямо. С Вас не убудет. И человеку хорошо будет и Вам воздастся.
     
  10. Asper Daffy

    Asper Daffy Гуру

    У Вас есть какие-то основания указывать мне, что мне делать?
    Так и вопрошающему не прибудет. И зачем тогда этот бульон из-под яиц? Если никому не прибыло, то нафига?
    У нас разные понятия о "хорошо". Я считаю, что ему будет хорошо, если он сам разберётся.
     
  11. znamen

    znamen Гик

    У меня нет оснований Вам указывать. Извените
     
  12. parovoZZ

    parovoZZ Гуру

    Полностью поддерживаю.
     
  13. znamen

    znamen Гик

    Ув. Паровоз. Не поддерживайте этих жёстких методов современной педагогики. Я Вас умоляю.Вы ведь не молодой человек и Вам должно быть свойственно чувство сентимен
    тальности и сострадания.
     
    Последнее редактирование: 21 мар 2019
  14. カオナシ

    カオナシ Нерд

    Все правильно написано, и указано, где ошибка.
    Так напишите сами. Вот проблема, все же однозначно, здесь многие будут рады Вашей помощи.
     
  15. znamen

    znamen Гик

    Ладно уговорили. Завтра помогу.
     
  16. znamen

    znamen Гик

    Вот Вам скетч. Считывает сигнал с тензодатчика и отображает на 4х разрядном дисплее. Адаптируйте
    к своему датчику.
     

    Вложения:

  17. b707

    b707 Гуру

    вот вы насмешили. Вместо того, чтоб поправить 2 из 4х уже имеющихся строчек - выложили какую-то простыню, в которой ТС будет неделю разбираться...
    И после этого вы будете читать нотации о сентиментальном отношении к новичкам? :)
     
  18. znamen

    znamen Гик

    Я не против,чтобы Вы посмеялись.Если мальчику будет трудно,я ему помогу через личку.
    Вот бы и подправли две строчки тогда тема исчерпала себя ещё вчера,а так есть причина
    поговорить.
     
    Последнее редактирование: 22 мар 2019
  19. カオナシ

    カオナシ Нерд

    Вот пару лет разницы, и сразу мальчик...
    Но вспоминая классиков - "Кто скажет что это девочка..."?
     
  20. b707

    b707 Гуру

    в какую сторону? У ТС - то есть у "мальчика" - в профиле 58 лет, а у "папочки" znamen - 18 :)