ТМ1637. И датчик давления.
- Войдите на сайт для отправки комментариев
Ср, 05/02/2020 - 20:34
Здравствуйте. Этот код работает На 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
}
начальные параметры заранее спасибо.
На этом я и остановился.
#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); }Как допустим значение 12.55 вывести на экран? Как цифры разбить на отдельные сигменты?
Как допустим значение 12.55 вывести на экран? Как цифры разбить на отдельные сигменты?
Зависит от конкретной библиотеки. Многие умеют это "из коробки"
например
void displayNum(float num, int decimal = 0, bool show_minus = true);
Спасибо.Вот кое как слепил код. Компиляция проходит. На столе сейчас дисплей показывает 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); }Присвойте RAWTemp значение 1234 и проверьте...