• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Termometr do crossa
#1
witam kolegów postanowiłem zrobić sobie termometr do kontroli temperatury płynu chłodzącego mam taki kodzik chciał bym dodatkowo do niego dołożyć 4 diody które zapalały by się w zależności od temperatury 1,40*2,70*3,90*4,100* lecz moja wiedza jest zbyt niska żeby ogarnąć ten kodzik prosił bym o pomoc

Kod:
#include <OneWire.h>
#include <DS18B20.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
 
#define BACKLIGHT_PIN 3
#define ONEWIRE_PIN 2// Numer pinu do którego podłaczasz czujnik w Arduino
 


float temperature = 0;

byte address[8] = {0x28, 0xFF, 0x9, 0x2C, 0x4, 0x15, 0x3, 0xB6};// Numer seryjny czujnika


LiquidCrystal_I2C lcd(0x27,2,1,0,4,5,6,7);

OneWire onewire(ONEWIRE_PIN);
DS18B20 sensors(&onewire);

void setup(void)
{
Serial.begin(9600);
sensors.begin();
sensors.request(address);

lcd.begin(16,2);
lcd.setBacklightPin(BACKLIGHT_PIN,POSITIVE);
lcd.setBacklight(HIGH);
lcd.setCursor(1,0);
lcd.print("TEMPERATURA :)");
lcd.setCursor(6,1);
lcd.print("WODY ");
delay (8000);
lcd.clear();
}

void loop(void)
{
temperature = sensors.readTemperature(address);
sensors.request(address);

//lcd.clear();
lcd.setCursor(0,0);
lcd.print("Temp: ");
lcd.setCursor(6, 0);
lcd.print(temperature);
lcd.setCursor(12,0);
lcd.print("*C");
delay(10);

}

Proszę używać znaczników "code"
 
Odpowiedź
#2
Witaj, nie rozumiem o co chodzi z tym: 1,40*2,70*3,90*4,100* jest to przykład temperatury? Bo trochę niska  Big Grin

Na początku musisz sobie zdefiniować wszystkie 4 ledy:

Kod:
// przykład
int dioda1 = 13; // ustawiasz pierwszą diodę na pin 13 w arduino
 ustawić je na wyjścia w funkcji void setup:
Kod:
//przykład
pinMode(dioda1,OUTPUT); // ustawiamy diode 1  jako wyjście
Aby ustawić diodę żeby załączała się przy danej temperaturze użyj funkcji: if:
Kod:
//przykład
if(temperature > 10){                // jeśli temperatura będzie większa od 10
digitalWrite(dioda1,HIGH); }         // załącz diode 1
else { didgialWrite(dioda1,LOW); }   // jeśli będzie mniejsza niż 10 wyłącz diodę

Tak dla każdej diody, tylko zmieniasz sobie przy jakiej temperaturze ma się załączać.

Pozdrawiam.
 
Odpowiedź
#3
Nielepiej to wsadzic w diode rgb lub ws2812? Jedna dioda mozesz zrobic na jednym malym ukladzie attiny?

Ds18b20, ws2812b, bateria, attiny,wlacznik(badz czujnik drgania) Nieduze i czytelne Wink
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości