Skocz do zawartości

gregory099

Użytkownicy
  • Zawartość

    4
  • Rejestracja

  • Ostatnio

Reputacja

1 Neutralna

O gregory099

  • Ranga
    1/10
  1. Dodaje to co udało mi się już zrobic : const int wentylator = 3; const int swiecaZarowa = 4; const int pompaPaliwa = 6; float temperaturaWody = A0; float temperaturaPlomienia = A1; float temperaturaPrzegrzania = A2; float temperaturaZewnetrzna = A3; int Vo; float R1 = 10000; float logR2, R2, T; float A = 1.149074145e-03, B = 2.307683271e-04, C = 1.017352663e-07; void setup() { pinMode(3, OUTPUT); pinMode(5, OUTPUT); pinMode(6, OUTPUT); pinMode(A0, INPUT); pinMode(A1, INPUT); pinMode(A2, INPUT); pinMode(A3, INPUT); Serial.begin(115200); } void loop() { czujniki(); webastoPraca(); zabezpieczenie(); } void webastoPraca() { // włącz wentylator na ok 3 sek potem stop // jeżeli temperatura wody <5*C to zacznij rozruch // włącz swiece zarowa do momentu osiagniecia np 120 stopni // włącz pompe paliwa wysterowana w pwm od 0 do 255 stopniowo przyspieszajac // wyłącz świece żarową // włącz wentylator na ok 20% itp itd // . // . // . } void czujniki() { int odczyt = analogRead (temperaturaPlomienia); float napiecie = (odczyt / 1024.0) * 5.0; float Temperatura = (napiecie - 0.5) * 100; Serial.print(" Temperatura plomienia: "); Serial.print(Temperatura); Serial.print(" *C"); delay(500); // Tutaj mam zdeklarowane wyliczenia do ori czujników na piecu Vo = analogRead(temperaturaWody); R2 = R1 * (1024.0 / (float)Vo - 0.80); logR2 = log(R2); T = (1.0 / (A + B * logR2 + C * logR2 * logR2 * logR2)); T = T - 273.15; Serial.print(" || temperatura wody: "); Serial.print(T); Serial.println(" *C"); } void zabezpieczenie() { // jeżeli temperatura wody > 85 *C pompa paliwa wyłącz, wentylator wyłącz // jeżeli temperatura wody = 50*C temp płomienia 80*C zwiększ podawanie paliwa i obroty wentylatora // . // . // . }
  2. Witam. Tak owszem zapoznałem sie z tą częścią kursu. W czym tkwi problem otóż: Mam zdeklarowane zmienne określające dane piny Arduino. W funkcji void setup też mam określone co i jak który pin ma działać. Funkcje void loop podzieliłem sobie na 3 inne podrzędne funkcje i teraz tak mam odczyt z 3 czujników temperatury i gdy chociaż raz użyje delay program mi sie zatrzymuje na czas określony w delay i nie mam odczytu z czujników. Potrzebuje np powiedzmy i czy się to da zrobić z pomocą millis() aby odczyt z czujników mieć cały czas powiedzmy co 1s a w funkcji loop aby powiedzmy wentylator włącza sie na 3s potem stop następuje grzanie świecy żarowej przez 5sek, następnie gdy swieca osiąga daną temperature zostaje podane paliwo wentylator startuje np na 20 % itp itd. Chyba że od złej strony się zabieram i nie pomoże mi w tym funkcja millis().
  3. Witam serdecznie. Jestem początkującym który uczy się programowania Arduino. Interesuje mnie temat zamiany delay na millis aby program się nie zatrzymywał. Weźmy np jak zrobić aby np wentylator załączył się na 3 sek później wyłączył i zaczęło działać np światło dioda LED przy pomocy millis. Czy będzie ktoś w stanie mi to wytłumaczyć w jaki sposób używać funkcji millis?
×
×
  • Utwórz nowe...