Digitaallinen Kierroslukumittari

Ideana/projektina olisi Mitata kierroksia sekunttiin isosta tuulettimesta /tavallinen tietokoneen tuuletin.

esim. Kuinka monta kierrosta tekee 12V tuuletin sekunttiin. (kierroksia/sec).

Tiedonkerääjänä toimisi Magneettianturi, joka kiinitettäisiin tuulettimeen runkoon ja
vastakappale (magneetti) pyörivään osaan.

Lähtevä tieto menisi LCD-näytölle tekstinä esim." 15 kierr/sec "


…Joten onko joku tehnyt koskaan samanlaista projektia aikasemmin, valmis koodipätkä olisi tervetullut :slight_smile:

Olen tehnyt ja pöljäksi ideaksi todennut. Minulla oli lähellä akselia oikeasti pieni magneetti ja tunnistin. Kesti puoli vuotta ja kuolema tuli laakerien särkymisestä. Seuraava versio oli fototrankku ja lavat katkoivat sisältä tulevaa työvaloa. Laitan yleensä kivasti LEDejä metalliseen rumaan boksiin sisään, jotta on helpompi vaihtaa esimerkiksi levyjä koneesta, kun koneeseen mahtuu toinen silmä ja toinen käsi mutkan kautta.

Kuitenkin lapojen lukeminen oli hyvä idea, mutta äänekäs. Tuuli ujelsi trankussa. Sen voisi korjata sopivalla rakenteella.

Nykyisin minulla on kolmejohtoiset tuulettimet ATK laatikoissa ja itse tehty piirikortti laajennuspaikassa. Emolevyyn se ei kuitenkaan tule kiinni. Laite ottaa käyttösähkönsä ulkoa ja sisältä. Sisäsähkö menee PWM:nä tuulettimelle ja suodatetaan heti päätetransistorin jälkeen kondensaattorilla. Tämän jälkeen mitataan virta. Käynnistyksessä sitten ajetaan hetki täysillä tuulettimia. Ulkosähkö pyörittää mikrokontrolleria ja välittää tietoa mittaustuloksista.

Lopuksi on yksi palikka johon on kaikki koneet kytketty ja tämä sitten yhden koneen sarjaporttiin. Sieltä se sitten kertoo, että kone N virta noussut arvoon X, kierrosluku N, suhde Y/N lämpötila Y, Kompensoitu. Sen jälkeen yleensä sanon, että ajetaan 100% 24 tuntia ja jos virta on edelleen ylhäällä tai kierrokset romahtavat siivoan tuulettimen tai vaihdan sen.

Mutta koodi riippuu alustasta. Millä ajattelit toteuttaa tuon?
Tuollainenkin löytyi:
mbnet.fi/nettijatkot/2002/04/rakentelu/

Millä tavalla sinä olit tehny tämän magneeteilla toimivan version?
onko piirikaaviota tallella?
Olitko ohjelmoinu prossua c-kielellä vai miten toteutit tämän?
Miten sait tiedon prossulle magneetti anturilta, miten luit sitä?

Minulla oli sellainen pieni lasiputki. Eli kaiketi reed kytkin. No kuitenkin magneettikytkimestä rohmusin sen. Laitoin sen kekselle runkoon kiinni. Magneetit muistaakseni vastakkaisille puolille tuulettimen lapojen keskustaan eli siihen sivulle. Asento oli sitten tarkkaan säädettävä. Sen tarvitsi olla kohtisuorassa moottorin magneettikenttiä ja sellainen jostain kohtaa löytyi.

Kiinni pienellä tipalla pikaliimaa, kaunistelu epoksilla ja epäkesko oli valmis. Rikkoo siitä tuulettimesta laakerin.

Kytkentä oli varsin yksinkertainen Anturin toinen pää maahan, toinen AVR:n pinniin.

Jotain tämän näköistä saattoi olla koodina AVR:lle. Toinen timeri oli sitten PWM:lle.
En kääntänyt, enkä kokeillut, kunhan mietein, että jokin tuon näköinen siinä voisi olla naksuttamassa.

Skemat voisi olla leikisti jonkin paperin kulmalla, mutta piirilevyä ei ole varmastikaan enään missään, kun koulussa tein silloin aikoinaan tuon.

Mutta eipä tuossa varmaan mitään erikoista pitäisi olla. powerilinjoihin pölhödiodit, konkka 7805 konkka. Anturi kiinnittyy suoraan. PWM päätetrankut on syytä suojata diodilla moottorin takapotkulta. Puhaltimelle + johto koneesta pienen suoja vastuksen lävitse ja maa trankun emitterille ja kollektorille puhalitimen - johto. Kanta kontrolleriin kiinni. Sitten pari NTC:tä oli johtojen perässä ja mittailin niistä lämpötiloja kopassa.

volatile uint16_t pulssit, vanhat_pulssit;
volatile uint8_t sekunnit;
void init_AVR(){
  //Sisääntulo
  DDRD &= ~(1<<2);
  //ylösveto
  PORTD |= (1<<2);
  //keskeytysten asetus. INT0 laskevaan reunaan. Laskuri laskemaan aikaa.
  //Katso datasheetistä
  sei();
}
ISR(INT0_vect){
  pulssit++;
}
ISR(TIMER1_COMPA_vect ){
  vanhat_pulssit = pulssit;
  pulssit = 0;
  sekunnit = (sekunnit +1)%60;
}
int main(){
  init_avr();
  for(;;){
    sleep_mode();
    if(sekunnit == 0){
      laske_ja_laheta();
    }
  }
}

Ei muuta kuin erilaisia tutoriaaleja lukemaan ja tutustumaan miten tämä tehdään. Sitten suunnittelemaan miten sen pitäisi toimia ja sen jälkeen siitä reunasta vain, kunnes toinen reuna tulee vastaan. Niin maailma valmistuu.

Aloita vaikka piirtämällä tuo minun kertoma kytkentä ja sitten laskemalla paljonko virtoja kulkee eri paikoissa ja etsimään sopivaa alustaa.

Arduino, AVR, tai vaikka picobasic, teensy, launchpad jne. Sen jälkeen kun kehitysalustalla puhallin pyörii niin otat haluamasi työkalun ja suunnittelet kytkennän. Teet levyt juotat, korjaat juotat ja toteat, että nyt tää toimii.

Useimmat palikat saa toimimaan yhdessä. Ikean ledivalot tottelevat TV:n kapulaa kun on tarpeeksi rautaa välissä :slight_smile:

En tiedä tuleeko ihan tarpeeseen, mutta kun nyt tuon tietokoneentuulettimen mainitsit :smiley:.
Tavallisissa tietokoneen tuulettimissa jotka tulevat emolevyyn kiinni on yleensä kolme johtoa jännite, maa ja kierrosnopeus(keltainen? …mutulla).

formfactors.org/developer/specs/atx2_2.pdf
Page 23
FanM Signal

(tämähän virallisesti viittaa powerin tuulettimen nopeuden lukemiseen, mutta minusta tämä pätee muihinkin tuulettimiin mitä olen testannut)

Noh kuitenkin se “ylimääränenjohto” on yleensä avoinkollektori-tyyppinen kytkentä, eli siihen lisätään ylösvetovastus ja siitä saa järkevää GND-Vcc pulssia ulos.
Vaikka kyseistä johdintä ei olisikaan kyseisessä tuulettimessa monessa tuulettimessa on tarran alla juotettava täplä sille kuitenkin. Pariin tuulettimeen olen itse lisännyt tämän kierrosnopeusjohdon ja saanut järkevää signaalia ulos.