Rezystor 4,7k na czujniku ds18d20. Zaczyna coś brzęczeć ale dalej cicho i z przerwami na pierwszym czujniku. Na drugim tylko pyka raz. Ciężkie to do ogarnięcia jest. Ktoś umie połączyć te dwa sketche? Żeby przy danej temperaturze z 1 i/lub 2 czujnika zaczęło grać.
Kod: Zaznacz cały
#include <OneWire.h>
#include <DallasTemperature.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#define TEMPERATURE_PRECISION 12 // rozdzielczosc czujnika
#define ONE_WIRE_BUS 2 //Linia danych podpięta jest pod pin 2 Ardiuno
OneWire oneWire(ONE_WIRE_BUS);
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); // Ustawienie adresu ukladu na 0x27
DallasTemperature sensors(&oneWire); //Przekazanie danych dotyczących One Wire do DallasTemperature
int buzzer = 10; //pin 12 jako buzzer
void setup(void)
{
Serial.begin(9600);
sensors.begin(); //Włączenie biblioteki
pinMode(buzzer,OUTPUT); //ustawiamy buzzer jako output
lcd.begin(16,2); //ustaw rozdzielczość ekranu 16x4
lcd.backlight(); // Zalaczenie podwietlenia
}
void loop(void)
{
sensors.requestTemperatures(); //zazadaj odczyt temperatury z czujnika
lcd.setCursor(0,0); //ustaw kursor w pozycji 0,0
lcd.print("Temp1 :"); //wyswietl "Temperatura: "
lcd.setCursor(10,0);
lcd.print(sensors.getTempCByIndex(0)); //wyswietl wartosc z czujnika 0
sensors.requestTemperatures();
lcd.setCursor(0,1);
lcd.print("Temp2 :");
lcd.setCursor(10,1);
lcd.print(sensors.getTempCByIndex(1));
delay(1000);
if(sensors.getTempCByIndex(0) >= 40) //jezeli temperatura jest >= 40
digitalWrite(buzzer, HIGH); //uruchom alaram
if(sensors.getTempCByIndex(1) >= 40)
digitalWrite(buzzer, HIGH); //uruchom alaram
//tutaj mozesz wstawic program odpowiedzialny
//np. za uruchomienie chlodzenia aby obnizyc
//temperature
else //w przeciwnym wypadku
digitalWrite(buzzer, LOW); //nie uruchamiaj alarmu
}
Przy tym programie piszczy głośno.
Kod: Zaznacz cały
int buzzer = 10;// setting controls the digital IO foot buzzer
void setup ()
{
pinMode (buzzer, OUTPUT);// set the digital IO pin mode, OUTPUT out of Wen
}
void loop ()
{
unsigned char i, j;// define variables
while (1)
{
for (i = 0; i <80; i++) // Wen a frequency sound
{
digitalWrite (buzzer, HIGH);// send voice
delay (1);// Delay 1ms
digitalWrite (buzzer, LOW);// do not send voice
delay (1);// delay ms
}
for (i = 0; i <100; i++) // Wen Qie out another frequency sound
{
digitalWrite (buzzer, HIGH);// send voice
delay (2);// delay 2ms
digitalWrite (buzzer, LOW);// do not send voice
delay (2);// delay 2ms
}
}
}