Автоматическое включение света и вентилятора

mrbin
Offline
Зарегистрирован: 01.02.2015

Penni Здравстуйте,такой вопрос,две программы собраны в одну,тоесть одна мерит напряжение вторая температуру ,не могу сообразить как зделать так что бы при включении работала одна программа,а при нажатии на кнопку,первай программа останавливалась,вторая запускалась,попробовал зделать вот так

01void 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];
64ds.reset();
65ds.write(0xCC);
66ds.write(0x44);
67delay(750);
68ds.reset();
69ds.write(0xCC);
70ds.write(0xBE);
71data[0] = ds.read();
72data[1] = ds.read();
73int Temp = (data[1]<< 8)+data[0];
74Temp = 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}

первая и вторая программа закрыты,но при запуске все равно работает первая,а при нажатии появляется вторая,но на первой,тоесть две програмы смешиваются на одном дисплеи

Tomasina
Tomasina аватар
Offline
Зарегистрирован: 09.03.2013

в строку 76 добавь:

1display.clearDisplay(); // Clear the buffer. / Очистить буфер.

 

mrbin
Offline
Зарегистрирован: 01.02.2015

Благодарю!