деление показаний температуры для max7219

REI
Offline
Зарегистрирован: 05.10.2016

здравствуйте.

сильно не пинайте ток начинаю разбираться в программинге.

подскажите как загнать показания температуры на 7 сегментный индикатор max7219

задумка такая на первые 4 разряда выводится время (часы минуты) на 5,6 температуры с первого ds18b20 , на 7,8 температура со второго ds18b20

нашол на просторах проект попытался допилить под свои цели результатом вышло что , время выводит нормально температуру не выводит вовсе . как я понимаю это изза того что показания температуры не целое число и обрабатывается неправильно . попытался использовать float не проходит проверку изза невозможности деления . как преобразовать float в int не понял от слова совсем :(

при выводе все этого на lcd проблем не возникает все выводится как и задуманно.

ещё хотелось бы помощи с функцией if  задача зажигать светодиод с любой ноги когда показания термометра уходят в отрицательное значение ( изза нехватки разрядов на max)

#include "LedControl.h"
#include <Wire.h>
#include "RTClib.h"
RTC_DS1307 RTC;

#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 5                       
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
// Подключение дисплея
LedControl lc=LedControl(12,11,10,1);
// LedControl(dataPin, clkPin, csPin, numDevices=1);
                 
void setup() {
  lc.shutdown(0,false); // Иниц дисплей
  lc.setIntensity(0,0); // яркость дисплея
  lc.clearDisplay(0);  // очистить дисплей
  Wire.begin();
  RTC.begin();
  sensors.begin();
  // Установка текущего времени PC в модуль RTC
  // после установки закоментировать и зашить скетч в контроллер
  // RTC.adjust(DateTime(__DATE__, __TIME__));
   Serial.begin(9600);
//   Serial.println(__DATE__);
//   Serial.println(__TIME__);
   DateTime now = RTC.now();
   Serial.print(now.hour());
   Serial.print(':');
   Serial.print(now.minute());
   Serial.print(':');
   Serial.print(now.second());
   Serial.println();
}

void clock_hours(int ch) {

// Разобьем число на 2 разряда

  int ch1=ch/10;  // Первая цифра числа
  int ch2=ch%10; // Вторая цифра числа
    lc.setDigit(0,7,ch1,false);
    lc.setDigit(0,6,ch2,false);
     
}  
void clock_minutes(int cm) {

  int cm1=cm/10;  // Первая цифра числа
  int cm2=cm%10; // Вторая цифра числа
    lc.setDigit(0,5,cm1,false);
    lc.setDigit(0,4,cm2,false);
      
} 

void temp_t1(int tone) {

  int tone1=tone/10;  // Первая цифра числа
  int tone2=tone%10; // Вторая цифра числа
    lc.setDigit(0,3,tone1,false);
    lc.setDigit(0,2,tone2,false);
}  
void temp_t2(int ttwo) {

  int ttwo1=ttwo/10;  // Первая цифра числа
  int ttwo2=ttwo%10; // Вторая цифра числа
    lc.setDigit(0,1,ttwo1,false);
    lc.setDigit(0,0,ttwo2,false);
} 

void loop() {
  sensors.requestTemperatures();// запрос к датчику температуры 
  DateTime now = RTC.now();
  int THour=now.hour();
  int TMinutes=now.minute();
  int T1=sensors.getTempCByIndex(0); 
  int T2=sensors.getTempCByIndex(1);
  clock_hours(THour);
  clock_minutes(TMinutes);
  temp_t1(T1); 
  temp_t2(T2); 
}

 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Мда ...

REI пишет:

как преобразовать float в int не понял от слова совсем :(

ещё хотелось бы помощи с функцией if  

зато ...

REI пишет:

начинаю разбираться в программинге.

REI
Offline
Зарегистрирован: 05.10.2016

нарявятся мне такие люди зайдут поцитируют , обольют гуаном и свалят , зачем вапще заходили непонятно ......

 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

REI пишет:

нарявятся мне такие люди зайдут поцитируют , обольют гуаном и свалят , зачем вапще заходили непонятно ......

Мне тоже нравятся такие, которые рядом с профессией не стояли, об операции присваивания ничего не знают, функцию от оператора не отличают, зато подворотный слэнг тип "программинг", "кодинг", "прога", "сервак" и т.п. изо всех щелей хлещет.

REI
Offline
Зарегистрирован: 05.10.2016

молодец сходи купи шеколадку и раз не хочеш ни чего дельного скать не заходи сюда, может найдется тот кто подскажет объяснит , а не какашками кидаться будет.  

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

REI пишет:

не заходи сюда

С Вашего позволения (или без оного) я сам буду решать куда мне заходить, а куда - нет.

REI пишет:

может найдется тот кто подскажет объяснит

Может и найдётся. Даже, наверняка.

Удачи!

 

 

Radjah
Offline
Зарегистрирован: 06.08.2014