Pitanje:
Kako mogu izmjeriti broj okretaja kotača?
mad_z
2009-11-01 10:02:42 UTC
view on stackexchange narkive permalink

Pokušavam napraviti ugrađeni sustav za svoj bicikl koristeći Arduino ili možda ploče Lilypad.

Mislim da bih trebao koristiti Hall senzor efekta, ali svaka alternativa je također dobra.

Želim svoju brzinu ispisati na LCD zaslon i pitam se koji je najbolji način za to.

Sedam odgovori:
#1
+12
Adam
2009-11-01 17:38:47 UTC
view on stackexchange narkive permalink

Korištenje senzora Hall efekta kako je predložio Starliner bit će jedan od načina povezivanja s kotačićem. Prijedlog Achima i Shutterdronea da se koriste trska prekidač ima više smisla, s obzirom na prateći hardver koji senzor Hall efekta zahtijeva kako bi dobio čisti digitalni signal.

Možda ćete moći uzeti magnet i senzor iz slomljenog biciklističko računalo, ali ako ne možete, lokalna trgovina komponentama trebala bi imati po jednu na zalihi. Prednost recikliranog senzora i magneta je što ćete već imati montažni hardver.

Na wiki-ju arduino postoji stranica o signalima ReadingRPM. Da biste izračunali brzinu, vrijednost RPM pomnožite s opsegom kotača (polumjer 2 * pi * [u metrima]). Rezultat će biti u metrima u minuti.

Uredi: Primijetio sam da je povezani kod za sustave s dva impulsa po okretu. Za vaš zadatak dovoljan je jedan magnet. Uz to, za biciklističko računalo vjerojatno ćete htjeti da rezultat bude u KPH (ili MPH ako živite negdje koji još uvijek misli da je civilizirano). Napravio sam neke (neisprobane) modifikacije za kod na wikiju za ispis KPH i zalijepio ih ispod.

  volatile bajt revolucije; unsigned int rpmilli; float speed; unsigned long timeld; void setup () {Serial.begin (9600); attachInterrupt (0, rpm_fun, RISING); okretaja = 0; rpmilli = 0; timeold = 0;} void loop () {if (okretaji > = 20) {// Ažurirajte RPM svakih 20 brojeva, povećajte ovo za bolju rezoluciju RPM, // smanjite za brže ažuriranje // izračunajte okretaje u milli (sekunda) * * rpmilli = (millis () - timeold) / okretaja; ** EDIT: to bi trebalo biti okretaja / (millis () - timeold) timeold = millis (); ** broj okretaja u minuti = 0; ** (UREDI: okretaji = 0;) // KOLOČAK = 2 * PI * polumjer (u metrima) // brzina = rpmilli * KOLOČAK * "milisekunde na sat" / "metri po kilometru" // pojednostaviti jednadžbu za smanjenje broja operacija s pomičnim zarezom // brzina = rpmilli * WHEELCIRC * 3600000/1000
// brzina = rpmilli * WHEELCIRC * 3600 brzina = rpmilli * WHEELCIRC * 3600; Serial.print ("RPM:"); Serial.print (rpmilli * 60000, DEC); Serial.print ("Brzina:"); Serial.print (brzina, DEC); Serial.println ("kph"); }} void rpm_fun () {revolutions ++;}  

Također sam na ovome omogućio 'wiki zajednice', što mislim da drugi korisnici mogu uređivati. Ako moja matematika greši (a vi to možete dokazati!), Uskočite i popravite to umjesto mene. :)

#2
+10
shutterdrone
2009-11-03 23:22:12 UTC
view on stackexchange narkive permalink

Zapravo, Achim je ovdje jako dobro rekao.

Velika je razlika između Reedova (magnetskog) releja (prekidača) i Hallovog senzora efekta.

Reed relej će spojiti prekidač kad god je dovoljno magnetske sile djelujući na njega, dajući vam signal za uključivanje / isključivanje. Hallov senzor efekta pruža razinu napona koji pokazuje kolika se magnetska sila na njega primjenjuje.

Gore prikazani kod samo bi 'izravno' radio s Reedovim relejem, što ne znači da je pobijedio ' uopće ne bi radio za senzor Hall efekta, ali da bi pružio dodatne izazove pomoću senzora Hall Hall efekta.

Primarni izazov bit će taj što analogni uređaj tretirate kao digitalni - očekujući da se pokrene pri porastu pulsa. Sada signal neće biti impulsan - općenito će biti poput zvonaste krivulje, sa svim vrstama fluktuacija. Mogli biste nekoliko puta proputovati minimalni napon za visoki signal (oko 3,5 v, IIRC?) Dok magnet prolazi senzorom Hall-efekta.

Naravno, naš prvi instinkt kada koristimo nešto poput dvorane senzor učinka je koristiti ADC i očitati razinu napona na analognom pinu. Međutim, ograničeni ste na 10.000 čitanja, otprilike, u sekundi na analognom pinu (svako čitanje traje 100 uS). To također pretpostavlja da sve što radite je petljanje i čitanje vrijednosti - ne ostavlja vam puno vremena za ažuriranje zaslona, ​​izračunavanje itd. Da ne spominjem, ako ste pročitali u pogrešno vrijeme, propustili ste signal!

Siguran sam da je moguće koristiti prekide nekako povezane s ADC-om, ali nemam takvo znanje pri ruci.

Umjesto toga, ako želite koristiti stvarni senzor efekta Hall, predlažem da ga ubacite u Schmittov okidač kako biste ga pretvorili u digitalni (uključivanje / isključivanje) signal na kalibriranoj razini koja označava "izravno ispod magneta". Uz to, ovisno o razini histereze implementiranoj u Schmittov okidač, možda ćete trebati izvršiti neko odskakivanje koje bi promijenilo brzinu odskoka na temelju trenutne brzine. Tada biste to mogli tretirati kao normalni Reedov relej.

! C

Možete dobiti najbolje iz oba svijeta. Komponente ATMega8 mogu se konfigurirati tako da omoguće pristup internoj usporedbi. Uz prikladnu referencu napona (podesivu s recimo trimpotom), možete imati prekide na rastućem (ili padajućem ili oba) ruba analognog signala. veza do teme foruma koja objašnjava upravo to: http: //www.arduino.cc/cgi-bin/yabb2/YaBB.pl? num = 1163394545
Postoje uređaji s efektom Hall s izlazom praga Schmitt-okidača. Oni su prilično česti. Također, s trstičnim prekidačem, ionako ćete morati poništiti izlaz.
#3
+7
stevenvh
2012-09-23 21:26:05 UTC
view on stackexchange narkive permalink

Ovdje se najviše spominju senzori Hall-efekta i trstični prekidači, koji su najbolje rješenje.

Reed prekidač bit će jeftiniji, ali može vam dati lažne impulse kada bicikl doživi udar. Ako je to samo jedan slučaj s vožnje po ivičnjaku, softver ga lako može filtrirati, ali drugačije je kada se vozite po kaldrmi, što vam može stalno davati lažne impulse. Više trskih prekidača otpornih na udarce zahtijevat će jače magnetsko polje za aktiviranje, ali će to popraviti neodimijski magnet.

uredi kao odgovor na pitanja m.Alina
Reed prekidači su brzo. To je zato što trska ima malu masu (= malu inerciju) i mali hod, često samo nekoliko desetina mm. Ovaj trstični prekidač ima vrijeme rada < 0,6 ms, a vrijeme otpuštanja < 0,1 ms. Pri brzini od 36 km / h prekidač putuje 5 mm za 1 ms kada je postavljen na pola promjera kotača. Dakle, dovoljno je brzo da se aktivira kad prođe magnet.
Ovaj dokument o istom prekidaču daje životni vijek od> 10 \ $ ^ 7 \ $ operacija, a to nije toliko kao čini se. Ako napravite 25 km dnevno, za 2 godine dođete do tih 10 \ $ ^ 7 \ $ događaja prebacivanja.
kraj uređivanja

Hallov efekt switch nema tih nedostataka, ali je nešto skuplji.


Dobivate vrijeme \ $ T \ $ između 2 impulsa kao informaciju od senzor. Tada

brzina \ $ v = \ dfrac {\ pi D} {T} \ $

u m / s ako je promjer kotača \ $ D \ $ izražava se u metrima, a \ $ T \ $ u sekundama. Pretvori u km / h dijeljenjem s 3,6, dijeljenjem s 5,79 za mph.

udaljenost \ $ s = \ text {broj impulsa} \ times \ pi \ times D \ $

u metrima ako je promjer kotača \ $ D \ $ izražen u metrima. Podijelite s 1000 za udaljenost u km, za 1609 za milje.

#4
+5
Starliner
2009-11-01 11:28:21 UTC
view on stackexchange narkive permalink

Magnet se može postaviti na rub ruba kotača, a Hall Effect senzor montirati vrlo blizu (ali ne dodirujući) magneta. Kako se kotač okreće, a magnet prolazi senzor, senzor će poprimiti promjenu u magnetskom polju.

#5
+3
user1120
2010-09-08 00:22:40 UTC
view on stackexchange narkive permalink

Ako i dalje želite prijeći u čvrsto stanje, postoje mnogi "prekidači Hallovog efekta" koji uključuju Hallov senzor efekta i Schmittov okidač s histerezom kako bi osigurali čisti digitalni izlaz bez odskoka. Oni se prebacuju kad god se postigne neka granična gustoća protoka (navedena u tehničkom listu). Možete izračunati dobru kombinaciju magneta i prekidača ili jednostavno eksperimentirati.

Ova će vam web stranica reći puno više.

#6
+2
Achim
2009-11-03 11:38:14 UTC
view on stackexchange narkive permalink

Dijelovi biciklističkih računala su trskasti kontakti, a ne senzori efekta Hall-a. Potpuno su različiti. Ali mislim da svi govorite o trsnim kontaktima.

#7
+1
Amos
2009-11-01 22:30:04 UTC
view on stackexchange narkive permalink

Magnet se može postaviti na žbicu, a senzor na jednu od vaših vilica ili lančanicu.

Umjesto množenja s pi itd., metoda koju je predložilo moje posljednje biciklističko računalo bila je mjerenje linearne udaljenosti od jednog okreta (kreda na gumi, mjerenje između dviju oznaka krede), a zatim možete samo pomnožiti okretaje prema izravnom opsegu.

[EDIT] Upravo sam pronašao ovaj vodič na mjestu popisa za primjenu biciklističkog računala pomoću PIC-a, možda neke informacije mogu biti koristim za vas.



Ova pitanja su automatski prevedena s engleskog jezika.Izvorni sadržaj dostupan je na stackexchange-u, što zahvaljujemo na cc by-sa 2.0 licenci pod kojom se distribuira.
Loading...