PC ventilator
PC ventilator
nezkousel nekdo tahat informace o otackach z hall senzoru z pc ventilatoru? a zobrazovat na displeji?
Re: PC ventilator
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ě. Popis mých pokusů je tady: http://astromik.org/raspi/ventilator/index.htm
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ě. Popis mých pokusů je tady: http://astromik.org/raspi/ventilator/index.htm
-
- Příspěvky: 1030
- Registrován: 06 zář 2017, 20:04
- Reputation: 0
- Bydliště: Brno
- Kontaktovat uživatele:
Re: PC ventilator
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é?
- pavel1tu
- Příspěvky: 2054
- Registrován: 26 říj 2017, 08:28
- Reputation: 0
- Bydliště: Trutnov
- Kontaktovat uživatele:
Re: PC ventilator
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.
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"
Pavel1TU
"Správně napsaný kod lze číst jako knihu"
Re: PC ventilator
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
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
-
- Příspěvky: 1030
- Registrován: 06 zář 2017, 20:04
- Reputation: 0
- Bydliště: Brno
- Kontaktovat uživatele:
Re: PC ventilator
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);
}
Re: PC ventilator
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
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 9 hostů