Прошу помощи. Подключен датчик температуры далас(18B20), табло и бузер. Нужно что бы при каждом изменении температуры был короткий звуковой сигнал. Как указать что при изменении Temp, выдать сигнал на бузер. Извините в программировании ноль, если не сложно подскажите. Код (C++): #include <OneWire.h> OneWire ds(9); #include "TM1637.h" #define CLK 3 #define DIO 2 TM1637 disp(CLK,DIO); #define buzzer 5 void setup() { disp.set(7); disp.init(D4056A); pinMode(buzzer,OUTPUT); } void loop() { byte data[2]; ds.reset(); ds.write(0xCC); ds.write(0x44); delay(10000); ds.reset(); ds.write(0xCC); ds.write(0xBE); data[0] = ds.read(); data[1] = ds.read(); int Temp = (data[1] << 8) + data[0]; Temp = Temp >> 4; disp.display(Temp); }
Хорошо про тон я понял, мне интересно как "сказать" что при изменении температуры нужно возпроизвести сигнал?
Блин. Похоже у вас с реальностью проблемы. Что такое "изменение температуры"? Ну думайте... раньше была одна температура, а сейчас другая. If (Temp != Temp_old) надо пищать;
Как-то так Код (C++): Код (C++): #include <OneWire.h> OneWire ds(9); #include "TM1637.h" #define CLK 3 #define DIO 2 TM1637 disp(CLK,DIO); #define buzzer 5 int Temp_old = 0; void setup() { disp.set(7); disp.init(D4056A); pinMode(buzzer,OUTPUT); } void loop() { byte data[2]; ds.reset(); ds.write(0xCC); ds.write(0x44); delay(10000); ds.reset(); ds.write(0xCC); ds.write(0xBE); data[0] = ds.read(); data[1] = ds.read(); int Temp = (data[1] << 8) + data[0]; Temp = Temp >> 4; disp.display(Temp); //определяем изменение if(Temp != Temp_old){ Temp_old = Temp; digitalWrite(buzzer, HIGH); //включаем бузер delay(500); digitalWrite(buzzer, LOW); //выключаем бузер delay(500); } }