Penni Здравстуйте,такой вопрос,две программы собраны в одну,тоесть одна мерит напряжение вторая температуру ,не могу сообразить как зделать так что бы при включении работала одна программа,а при нажатии на кнопку,первай программа останавливалась,вторая запускалась,попробовал зделать вот так
первая и вторая программа закрыты,но при запуске все равно работает первая,а при нажатии появляется вторая,но на первой,тоесть две програмы смешиваются на одном дисплеи
Penni Здравстуйте,такой вопрос,две программы собраны в одну,тоесть одна мерит напряжение вторая температуру ,не могу сообразить как зделать так что бы при включении работала одна программа,а при нажатии на кнопку,первай программа останавливалась,вторая запускалась,попробовал зделать вот так
01
void
loop
()
02
{
03
if
(digitalRead(button)==HIGH&&flag==0)
//если кнопка нажата
04
// и перемення flag равна 0 , то ...
05
{
06
regim++;
07
flag=1;
08
09
//это нужно для того что бы с каждым нажатием кнопки
10
//происходило только одно действие
11
// плюс защита от "дребезга" 100%
12
13
if
(regim>4)
//ограничим количество режимов
14
{
15
regim=1;
//так как мы используем только одну кнопку,
16
// то переключать режимы будем циклично
17
}
18
19
}
20
21
if
(digitalRead(button)==LOW&&flag==1)
//если кнопка НЕ нажата
22
//и переменная flag равна - 1 ,то ...
23
{
24
25
flag=0;
//обнуляем переменную "knopka"
26
}
27
28
29
30
////////////////////////////////////////////////////////////////
31
if
(regim==1)
//первый режим
32
33
{
34
35
36
sensorValue = analogRead(analogInPin);
37
outputValue = (sensorValue * 5.0)/ 93.0;
38
39
display.clearDisplay();
// Clear the buffer. / Очистить буфер.
40
display.setTextColor(WHITE);
// Цвет текста.
41
display.setTextSize(2);
// Размер текста (1).
42
display.setCursor(40,0);
// Устанавливаем курсор в колонку 0, строку 0. на самом деле это строка №1, т.к. нумерация начинается с 0.
43
display.println(
"FUEL"
);
// Печатаем 1 строку.
44
45
display.setTextSize(2);
// Размер текста (1).
46
display.setCursor(35,50);
// Устанавливаем курсор в колонку 0, строку 0. на самом деле это строка №1, т.к. нумерация начинается с 0.
47
display.println(
"LITRE"
);
// Печатаем 1 строку.
48
49
display.setTextSize(3);
50
display.setCursor(5,20);
51
display.print(
" "
);
52
display.println(outputValue);
53
display.display();
54
delay(1000);
55
}
56
57
58
//////////////////////////////////////////////////////////////////
59
60
61
if
(regim==2)
//первый режим
62
{
63
byte
data[2];
64
ds.reset();
65
ds.write(0xCC);
66
ds.write(0x44);
67
delay(750);
68
ds.reset();
69
ds.write(0xCC);
70
ds.write(0xBE);
71
data[0] = ds.read();
72
data[1] = ds.read();
73
int
Temp = (data[1]<< 8)+data[0];
74
Temp = Temp >>4;
75
76
77
display.setTextColor(WHITE);
// Цвет текста.
78
display.setTextSize(2);
79
display.setCursor(5,40);
80
display.print(
"T= "
);
81
display.println(Temp);
82
display.display();
83
84
85
86
}
87
88
89
90
}
первая и вторая программа закрыты,но при запуске все равно работает первая,а при нажатии появляется вторая,но на первой,тоесть две програмы смешиваются на одном дисплеи
в строку 76 добавь:
1
display.clearDisplay();
// Clear the buffer. / Очистить буфер.
Благодарю!