Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

arduino cod problem

[es] :: Elektronika :: Mikrokontroleri :: arduino cod problem

[ Pregleda: 961 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

davidsusi22
ucenik
ucenik

Član broj: 336549
Poruke: 3
*.liwest.at.



Profil

icon arduino cod problem03.04.2017. u 18:03 - pre 85 meseci
Hallo. Imam problemom sa prepravljanjem Coda za hysteresu temperature vode.Probao sam da zamjenim cod od analognog lm35 sa digitalnim ds18b20 i cod uvijek javlja neku gresku u sebi.Ja sam novi u tim stvarima, mada sa samim digitalnim senzorom ocitavam temperaturu na lcd-u, ali kada dodajem preostali dio coda sa hysterezom, cod je uvijek sa greskom.Dali bi neko mogao da prepravi dole navedeni cod ,tako da to radi sa ds18b20. Cod ince radi, ali sa Analognim lm 35
Hvala.













#include <Wire.h>

#include <LiquidCrystal_I2C.h>

#define sensorPin 0 // spojiti sa LM35

#define DELAY1 10 // pauza za mjeriti

#define DELAY2 500 // pauza za prikaz

#define motorPin 9 // spojiti sa motorom

#define threshold 25 // zadana temp. za paliti motor

#define hysterese 1 // zadana vrijednost hysterese

const int cycles = 20; // broj mjerenja

LiquidCrystal_I2C lcd(0X27,16,2) // adresa LCD





void setup() {



pinMode(motorPin,OUTPUT);

lcd.init();



lcd.backlight();



}





void loop()

{



float resultTemp = 0.0;

for(int i = 0; i < cycles; i++){

int analogValue = analogRead(sensorPin);

float temperature = (5.0 * 100.0 * analogValue) / 1024;

resultTemp += temperature;

delay(DELAY1);

}

resultTemp /= cycles;

lcd.clear();

lcd.print("Temp:");

lcd.print(resultTemp);

#if ARDUINO < 100

lcd.print(0xD0 + 15, BYTE);

#else

lcd.write(0xD0 + 15);

#endif

lcd.print("C");

lcd.setCursor(0, 1);

lcd.print("MOTOR: ");

if(resultTemp > (threshold + hysterese))

digitalWrite(motorPin,HIGH);

if(resultTemp < (threshold + hysterese))

digitalWrite(motorPin,LOW);

lcd.print(digitalRead(motorPin) == HIGH?"UPALJEN":"UGASEN");

delay(DELAY2);



}


 
Odgovor na temu

veselinovic
Jovan Veselinovic
Ist. Sarajevo

Moderator
Član broj: 7761
Poruke: 3860
213.91.82.99



+333 Profil

icon Re: arduino cod problem04.04.2017. u 16:59 - pre 85 meseci
Davide,
meni nije problem da ti napisem kod, ali ti si mlad i trebas da ucis.
Ti si ostavio u kodu mjerenje analogne velicine i to ovo:

Code:

for(int i = 0; i < cycles; i++){
int analogValue = analogRead(sensorPin);
float temperature = (5.0 * 100.0 * analogValue) / 1024;
resultTemp += temperature;


a zakacio si digitalni termometar.
Probaj pronaci primjer sa mjerenjem sa DS kolom i ubaci ovdje, onda moze proraditi.
Mala opaska, ja bih isao na 16 ili 32 mjerenja i onda siftovao udesno 4 ili 5 puta.
Rezultat je isti, ali siftovanje je elegantnije jer se uradi mnogo brze od dijeljenja. OK kod temperature to nije bitno ( brzina) ali treba se uciti ispravnom razmisljanju odispocetka.

Za pocetak procitas ovo http://www.alldatasheet.com/da.../pdf/58557/DALLAS/DS18B20.html
a onda bacis oko na https://create.arduino.cc/proj...perature-sensor-ds18b20-3decfc

Ako i dalje budes imao probleme obrati se slobodno ovdje.

PS probaj kod kaciti sa code i /code - pogledaj lijevo vidjeces.
 
Odgovor na temu

davidsusi22
ucenik
ucenik

Član broj: 336549
Poruke: 3
*.com
Via: [es] mailing liste



Profil

icon Re: arduino cod problem04.04.2017. u 17:21 - pre 85 meseci
--_CCD1C5DA-2F35-4014-8C5F-63FCB260A16C_
 
Odgovor na temu

[es] :: Elektronika :: Mikrokontroleri :: arduino cod problem

[ Pregleda: 961 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.