PC ventilator

Odpovědět
pitovo
Příspěvky: 4
Registrován: 26 kvě 2019, 16:52
Reputation: 0

PC ventilator

Příspěvek od pitovo » 26 kvě 2019, 16:55

nezkousel nekdo tahat informace o otackach z hall senzoru z pc ventilatoru? a zobrazovat na displeji?

AstroMiK
Příspěvky: 592
Registrován: 08 pro 2017, 19:05
Reputation: 0

Re: PC ventilator

Příspěvek od AstroMiK » 26 kvě 2019, 17:55

Já zkoušel měřit otáčky ventilátoru, který byl řízený pomocí PWM, ale nedopadlo to vůbec dobře.
Nakonec bylo nejlepším řešením přídavné infračidlo.

Tady je ukázka průběhu na napájení ventilátoru (červeně) a tomu odpovídající výstup, který mi vystupoval z vnitřního čidla ventilátoru při PWM řízení (žlutě)
... a s takovým hukotem se pracuje dost blbě.
wave-mixm.gif
Popis mých pokusů je tady: http://astromik.org/raspi/ventilator/index.htm

jankop
Příspěvky: 1029
Registrován: 06 zář 2017, 20:04
Reputation: 0
Bydliště: Brno
Kontaktovat uživatele:

Re: PC ventilator

Příspěvek od jankop » 26 kvě 2019, 18:57

Myslím, že měřit otáčky PC ventilátoru je naprosto triviální úloha. Pokud ho chci pomocí PWM ještě k tomu řídit, tak holt musím použít ventilátor se čtyřmi vodiči. Napájení, zem, otáčky a PWM. To je snad jasné?

Uživatelský avatar
pavel1tu
Příspěvky: 2054
Registrován: 26 říj 2017, 08:28
Reputation: 0
Bydliště: Trutnov
Kontaktovat uživatele:

Re: PC ventilator

Příspěvek od pavel1tu » 27 kvě 2019, 06:34

Funguje.
Jen to musí být ventilátor co to čidlo má (4 vodiče).
Ale byla to velká pomaloběžná NOCTUA s max. točkami 600-800, já ji provozuji tak na 300-400 kvůli hluku.

PS: chladím tím kamarádovo samo-domo mediální centrum.
UNO, NANO, Mikro, PRO mini, DUE, ESP32S2, RPi PICO
Pavel1TU
"Správně napsaný kod lze číst jako knihu"

pitovo
Příspěvky: 4
Registrován: 26 kvě 2019, 16:52
Reputation: 0

Re: PC ventilator

Příspěvek od pitovo » 27 kvě 2019, 20:32

Mel jsem dojem (a i na webu to tak pisou), ze pokud je konektor dvoupinovy, je tam jen napajeni, pokud je tripinovy je tam napajeni + hallova sonda a pokud je ctyrpinovy tak k napajeni a hallove sonde je tam ten posledni pin pro PWM regulaci otacek.
Ale mym dotazem jsem myslel, jestli opravdu Arduino dokaze sbirat data z Hallovy sondy (i pri beznych otackach ventilatoru 1000 - 2000rpm). Pokud ano, dokaze mi se nekdo hodit ten kus kodu, ktery by to resil? (idealne i s vystupem na displej). Jsem v Arduinu zacatecnik a az na par drobnosti prectenych z knihy jsem toho moc neudelal...
Dekuji

jankop
Příspěvky: 1029
Registrován: 06 zář 2017, 20:04
Reputation: 0
Bydliště: Brno
Kontaktovat uživatele:

Re: PC ventilator

Příspěvek od jankop » 27 kvě 2019, 21:25

Výstup otáček ventilátoru by měl být s otevřeným kolektorem, tudíž by teoreticky měl jít připojit přímo na Arduino. V následujícím sketchi se předpokládá jeho připojení na pin 2 Arduina. Výstup je na Serial Monitor.

Kód: Vybrat vše

 Program funguje tak, že meri dobu jedne otacky prerusenim na pinu PIN_IRQ
  a z ni vypocita otacky za minutu. Data take odesila na standardni
  seriovy port pro Serial Monitor.

  *************************************************************************************
  Je velmi dulezite nastavit maximalni mozne otacky zarizeni promennou MAXROTATE,
  protoze to ovlivnuje dobu TimeDebounce.
  **************************************************************************************/

#define MAXROTATE     3000 // maximalni mozne otacky za minutu - nastavit podle zarizeni
#define TIME_TO_SEND  100  // perioda odesilani dat v [ms]
#define PINLED        13   // embeded LED
#define PIN_IRQ 2          // kontakt je na pinu 2
long start;                // promenna pro casove intervaly
int TimeDebounce;          // promenna pro dobu na osetreni prechodnych jevu kontaktu [ms]
long elapsed;              // promenna pro dobu jedne otacky v [ms]
volatile int speedk;       // promena pro otacky/minuta

void setup() {
  attachInterrupt(digitalPinToInterrupt(PIN_IRQ), speedCalc, FALLING);
   Serial.begin(9600);     // seriovy port pro konzolu - Serial monitor
  pinMode(PIN_IRQ, INPUT_PULLUP); // nastaveni pinu pro kontakt
  // urceni doby na osetreni prechodnych jevu kontaktu s ohledem na maximalni otacky
  if (60000 / MAXROTATE > 100)TimeDebounce = 100; else TimeDebounce = 60000 / MAXROTATE;
  start = millis();        // nacteni vychoziho casu
}
/* mereni doby jedne otacky prerusenim od sestupne hrany na PIN_IRQ */
void speedCalc() {
  // podminka osetruje zakmity kontaktu
  if ((millis() - start) > TimeDebounce) {
    //vypocet doby otacky v [ms]
    elapsed = millis() - start;
    //nastaveni pocatku dalsiho casoveho intervalu
    start = millis();
    // vypocet otacek za minutu s ochranou pred delenim nulou
    if (elapsed > 0)speedk = (int)(60000.0 / (float)elapsed);
    else speedk = 0;
  }
}
void loop() {
   // vypis na konzolu
  Serial.print("Otacky : ");
  Serial.println(speedk);
  // urcuje periodu odesilani dat na Serial Monitor
  delay(TIME_TO_SEND);
}

afilip
Příspěvky: 116
Registrován: 26 črc 2017, 16:34
Reputation: 0
Kontaktovat uživatele:

Re: PC ventilator

Příspěvek od afilip » 28 kvě 2019, 16:25

Já to jenom upřesním. U některých 3pinových ventilátorů otáčky měřit jdou, u některých ne, a nezjistil jsem proč. U těch, u kterých otáčky měřit nešly jsem zkoušel všechno možné - pull-up, pull-down, tranzistor, atd, a prostě to otáčky nenačítalo. Takže pokud ti to napoprvé nepůjde, nezoufej, a zkus jiny ventilátor :D

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 14 hostů