ТМ1637. И датчик давления.

Мишка
Offline
Зарегистрирован: 09.05.2017

Здравствуйте. Этот код работает На LCD1602. Хочу переделать его под ТМ1637.Пните в нужном направлении. Смотрел примеры чет не вЪеду. С чего начать . Как задать

#include <LiquidCrystal.h>
02
	const int D = 0; //Аналоговый вход 0 для подключения датчика разряжения
03
	int V = 0;
04
	float V1 = 0;
05
	float P = 0;
06
	 
07
	LiquidCrystal lcd(2, 3, 4, 5, 6, 7);
08
	 
09
	 
10
	 
11
	void setup() {
12
	  lcd.begin(16, 2);
13
	  lcd.clear();
14
	}
15
	 
16
	void loop() {
17
	 
18
	  V = analogRead(D);
19
	  V1 = ((4.92 / 1023.0) * V);
20
	  P = (8.62 * V1 - 4.31);
21
	  P = constrain(P, 0, 34.48);
22
	 
23
	  lcd.setCursor(5, 0);
24
	  lcd.print(P);
25
	  lcd.setCursor(11, 0);
26
	  lcd.print("BAR");
27
	  delay(500);
28
	 
29
	}

начальные параметры заранее спасибо.

Мишка
Offline
Зарегистрирован: 09.05.2017

На этом я и остановился.

#include <TM1637.h>

const int D = 0; //Аналоговый вход 0 для подключения датчика разряжения
int V = 0;
float V1 = 0;
float P = 0;
#define CLK 6
#define DIO 7
TM1637 tm1637(CLK, DIO);



void setup() {
  tm1637.init();
  tm1637.set(BRIGHT_TYPICAL);
}

void loop() {

  V = analogRead(D);
  V1 = ((4.92 / 1023.0) * V);
  P = (8.62 * V1 - 4.31);
  P = constrain(P, 0, 34.48);

 
  delay(500);

}

 

Мишка
Offline
Зарегистрирован: 09.05.2017

Как допустим значение 12.55 вывести на экран? Как цифры разбить на отдельные сигменты?

 

asam
asam аватар
Offline
Зарегистрирован: 12.12.2018

Мишка пишет:

Как допустим значение 12.55 вывести на экран? Как цифры разбить на отдельные сигменты?

 

Зависит от конкретной библиотеки. Многие умеют это "из коробки"

например

void displayNum(float num, int decimal = 0, bool show_minus = true);

Мишка
Offline
Зарегистрирован: 09.05.2017

Спасибо.Вот кое как слепил код. Компиляция проходит. На столе сейчас дисплей показывает 00,00. Завтра подам давление на датчик посмотрю , что покажет.Может кто ошибку увидит?

#include <TM1637.h>

const int D = 0; //Аналоговый вход 0 для подключения датчика разряжения
int V = 0;
float V1 = 0;
float P = 0;
#define CLK 6
#define DIO 7
TM1637 tm1637(CLK, DIO);



void setup() {
  tm1637.init();
  tm1637.set(BRIGHT_TYPICAL);
}

void loop() {

  V = analogRead(D);
  V1 = ((4.92 / 1023.0) * V);
  P = (8.62 * V1 - 4.31);
  P = constrain(P, 0, 34.48);
float Bar = P;
unsigned int RAWtemp = P * 100;    // переводим в целое число
int8_t Digits[] = {0x00,0x00,0x00,0x00};  // буфер для цифр LED-индикатора
Digits[0] = (byte)(RAWtemp / 1000) % 10; // раскидываем 4-значное число на цифры
Digits[1] = (byte)(RAWtemp / 100) % 10;
Digits[2] = (byte)(RAWtemp / 10) % 10;
Digits[3] = (byte)(RAWtemp) % 10;
tm1637.display(Digits); 
  tm1637.point(false);
  tm1637.display(0, Digits[0]);
  tm1637.point(true);
  tm1637.display(1, Digits[1]);
  tm1637.point(false);
  tm1637.display(2, Digits[2]);
  tm1637.point(false);
  tm1637.display(3, Digits[3]);
  delay(500);
}

 

sadman41
Offline
Зарегистрирован: 19.10.2016

Присвойте RAWTemp значение 1234 и проверьте...