Schematisch diagram van een toerenteller op een microcontroller. Een eenvoudige universele toerenteller gebaseerd op de ATtiny2313-microcontroller. Doe-het-zelf radiotechniek, elektronica en schakelingen. Lijst met toegepaste componenten

Ik stel een toerentelleroptie voor op een AVR-microcontroller met grote cijfers erop karakterweergave. De cijfers zijn in afzonderlijke segmenten over de gehele hoogte van het display gerangschikt, waardoor de instrumentaflezingen beter leesbaar zijn. Ontworpen voor een meetbereik van 300 tot 9999 rpm. Maar het bleek dat bij hogere (vanaf 10.000) toeren het minst significante cijfer buiten het scherm beweegt en het toestel het aantal omwentelingen per minuut gedeeld door 10 weergeeft, wat ook niet slecht is.

Het circuit is gebaseerd op de ATmega8-microcontroller. Om de toerentellerstanden weer te geven, wordt het gemeenschappelijke WH1602-display op basis van de HD44780 (KS0066)-controller gebruikt.

Om de krukassnelheid nauwkeuriger te berekenen, wordt de microcontroller geklokt vanaf een externe kwartsresonator op 8 MHz. Zekeringen worden dienovereenkomstig ingesteld:

Als hoge precisie metingen zijn niet erg belangrijk, dan kun je het zonder een extern kwarts doen en moeten de zekeringen worden ingesteld op de klok van de interne RC-oscillator op 8 MHz. Omdat de printplaat voor de MK is bedraad in het TQFP-32-pakket, is dat voor het gemak gebeurd ISP-connector voor in-circuitprogrammering. Het bijgevoegde archief bevat verschillende firmware met verschillende tijdsintervallen voor het bijwerken van de toerentellerstanden op het display: 50, 100, 150, 200, 250, 333 en 500 ms (de periode wordt aangegeven in de bestandsnaam van de firmware), evenals voor ingangssignalen 1 impuls per omwenteling en 2 impuls per omwenteling. Ook in het archief bevindt zich een bestand printplaat en het Proteus-project. Na het samenstellen van het circuit en het flashen van de firmware van de microcontroller wordt het volgende apparaat verkregen:

De video toont de werking van een toerenteller met firmware 1 puls per omwenteling en een display-updateperiode van 50 ms

Lijst met radio-elementen

Aanduiding Type Denominatie Hoeveelheid OpmerkingWinkelMijn notitieblok
U1 MK AVR 8-bits

ATmega8A-AU

1 Naar notitieblok
U2 Lineaire regelaar

L7805AB

1 L7805AB2T Naar notitieblok
D1 Zenerdiode

BZV55C4V7

1 BZV55C5V1 Naar notitieblok
D2 Gelijkrichterdiode

1N4001

1 Naar notitieblok
LCD1 LCD-schermWH16021 Verlicht Naar notitieblok
X1 Kwarts resonator8 MHz1 Naar notitieblok
RV1 Trimmer-weerstand

10 kOhm

1 Naar notitieblok
R1 Weerstand

20 kOhm

1 SMD1206 Naar notitieblok
R2 Weerstand

100 kOhm

1 SMD1206 Naar notitieblok
R3 Weerstand

10 kOhm

1 SMD1206 Naar notitieblok
R4 Weerstand

47 Ohm

1 SMD 1206 (47-100 Ohm) Naar notitieblok
C1-C2 Condensator22 pF2 SMD0805 Naar notitieblok
C3-C5 Condensator0,1 µF3 SMD0805 Naar notitieblok
C6 470uF x 16V1 Naar notitieblok
C7 Elektrolytische condensator100uF x 10B1
Goedemiddag.
Ik presenteer ter overweging een diagram van een eenvoudige digitale toerenteller AVR ATtiny2313, KR514ID2, en een door mij ontworpen optocoupler.
Laat ik meteen een reservering maken: er zijn veel soortgelijke schema's op internet. Elke implementatie heeft zijn eigen voor- en nadelen. Misschien is mijn optie geschikter voor iemand.

Ik zal waarschijnlijk beginnen met die. opdrachten.
Taak: moet gedaan worden digitale toerenteller voor snelheidsregeling elektromotor machine
Inleidende voorwaarden: Er zit een kant en klare referentieschijf met 20 gaatjes bij laserprinter. Er zijn veel optocouplers beschikbaar voor kapotte printers. Gemiddelde (werk)snelheden zijn 4.000-5.000 tpm. De fout van de weergegeven resultaten mag niet groter zijn dan ± 100 omwentelingen.

Beperking: de voeding voor de besturingseenheid is 36V (de toerenteller wordt in dezelfde behuizing geïnstalleerd als de besturingseenheid - daarover hieronder meer).

Een kleine lyrische uitweiding. Dit is de machine van mijn vriend. De machine is uitgerust met een PIK-8 elektromotor, waarvan de snelheid wordt geregeld volgens een aangepast diagram dat op internet te vinden is. Op verzoek van een vriend werd een eenvoudige toerenteller voor de machine ontwikkeld.

Aanvankelijk was het de bedoeling om ATMega16 in het circuit te gebruiken, maar na overweging van de omstandigheden werd besloten ons te beperken tot ATtiny2313, werkend vanuit een interne (RC) oscillator op een frequentie van 4 MHz.

Algemeen schema ziet er zo uit:

Zoals je kunt zien, niets ingewikkelds. Converteren binaire code in een zeven-segment-decoder heb ik de KR514ID2-decoder gebruikt, dit geeft drie voordelen tegelijk.

  • Ten eerste bespaart het ruimte in het ATtiny2313-geheugen door de werkcode te verkleinen (aangezien de procedure voor softwareconversie van binaire code naar zeven segmenten niet in de firmware is opgenomen omdat deze niet nodig is).
  • Ten tweede: het verminderen van de belasting van de ATtiny2313-uitgangen, omdat de LED’s worden “verlicht” door KR514ID2 (wanneer het cijfer 8 wordt weergegeven, zal het maximale verbruik 20-30 mA zijn (typisch voor één LED) * 7 = 140-210 mA, wat “veel” is voor de ATtini2313 met zijn volledig typeplaatje (maximaal (belast) verbruik van 200 mA).
  • Ten derde is het aantal “drukke” poten van de microcontroller verminderd, wat ons de mogelijkheid geeft om in de toekomst (indien nodig) het circuit te upgraden door nieuwe mogelijkheden toe te voegen.

Het apparaat in elkaar zetten uitgevoerd op broodplank. Hiervoor hebben we het niet werkende bord dat in de bakken lag, gedemonteerd. magnetron. Digitaal LED-indicator De sleuteltransistors (VT1-VT4) en de begrenzingsweerstanden (R1 - R12) werden als set genomen en naar het nieuwe bord overgebracht. Het gehele apparaat wordt, als de benodigde onderdelen aanwezig zijn, gemonteerd met rookpauzes in een half uur. Let op: voor de KR514ID2-microschakeling is de positieve vermogenspoot 14 en de negatieve 6 (aangegeven in het diagram). In plaats van de KR514ID2 kunt u elke andere binaire codedecoder gebruiken in een zevensegmentendecoder die wordt gevoed door 5V. Ik pakte wat voorhanden was.
De “h” en “i” pinnen van de digitale LED-indicator zijn verantwoordelijk voor twee punten in het midden tussen de cijfers; ze zijn niet als onnodig verbonden;
Na montage en firmware, mits er geen installatiefouten zijn opgetreden, begint het apparaat na het inschakelen direct te werken en is er geen configuratie nodig.

Als het nodig is om wijzigingen aan te brengen in de firmware van de toerenteller, is er een ISP-connector op de kaart aanwezig.

In het diagram werd experimenteel pull-up-weerstand R12, met een vermogen van 30 kOhm, geselecteerd voor een specifieke optocoupler. Zoals de praktijk laat zien, kan dit voor verschillende optocouplers verschillen, maar de gemiddelde waarde van 30 kOhm zou voor de meeste printer-optocouplers een stabiele werking moeten garanderen. Volgens de ATtiny2313-documentatie varieert de waarde van de interne pull-up-weerstand van 20 tot 50 kOhm, afhankelijk van de implementatie van een specifieke batch microcontrollers (pagina 177 van het ATtiny2313-paspoort), wat niet helemaal geschikt is. Als iemand het circuit wil herhalen, kan hij of zij eerst de interne pull-up-weerstand inschakelen, misschien werkt dit voor u, voor uw optocoupler en uw MK. Voor mijn set werkte het bij mij niet.

Zo ziet een typische optocoupler van een printer eruit.

De optocoupler-LED wordt gevoed via een 1K-begrenzingsweerstand, die ik rechtstreeks op het bord met de optocoupler heb geplaatst.
Om spanningsrimpels te filteren, zijn er twee condensatoren in het circuit, een elektrolytische van 220 µF x 25V (die bij de hand was) en een keramische van 0,1 µF. algemeen schema het inschakelen van de microcontroller is overgenomen uit het ATtiny2313-gegevensblad).

Om het te beschermen tegen stof en vuil is het toerentellerbord bedekt met een dikke laag autolak.

Vervanging van componenten.
U kunt elke viercijferige LED-indicator gebruiken, twee dubbele of vier enkele. In het slechtste geval monteert u de indicator op afzonderlijke LED's.

In plaats van KR514ID2 kunt u KR514ID1 gebruiken (die stroombegrenzende weerstanden bevat), of 564ID5, K155PP5, K155ID9 (met parallelle verbinding tussen de benen van één segment), of een andere binaire naar zeven-segment converter (met passende wijzigingen in de aansluiting van de microcircuitpinnen).

Gezien dat juiste overdracht montage op MK ATMega8/ATMega16 deze firmware werkt hetzelfde als op de ATtiny2313, maar je moet de code corrigeren (de namen van de constanten wijzigen) en opnieuw compileren. Er zijn geen vergelijkingen gemaakt voor andere AVR MCU's.

Transistoren VT1-VT4 - alle lage stroomsterkten, werkend in schakelmodus.

Werkingsprincipe is gebaseerd op het tellen van het aantal pulsen dat in één seconde van een optocoupler wordt ontvangen en het herberekenen ervan om het aantal omwentelingen per minuut weer te geven. Voor dit doel wordt een interne teller Timer/Counter1 gebruikt, die werkt in de modus van het tellen van de pulsen die aankomen op ingang T1 (pin PD5 pin 9 MK). Om een ​​stabiele werking te garanderen, is de software-debounce-modus ingeschakeld. Seconden worden geteld door Timer/Counter0 plus één variabele.

Berekening van revoluties, waar ik me op wil concentreren, vindt plaats volgens de volgende formule:
M = (N / 20) *60,
waarbij M het geschatte aantal omwentelingen per minuut (60 seconden) is, N het aantal pulsen van de optocoupler per seconde is en 20 het aantal gaten in de referentieschijf is.
In totaal krijgen we, door de formule te vereenvoudigen:
M = N*3.
Maar! De ATtiny2313-microcontroller beschikt niet over eene. Daarom werd sommatie met offset toegepast.
Voor degenen die de essentie van de methode niet kennen:
Het getal 3 kan worden uitgebreid als
3 = 2+1 = 2 1 + 2 0 .
Als we ons getal N nemen, dit 1 byte naar links verschuiven en nog een N toevoegen, 0 bytes naar links verschoven, krijgen we ons getal N vermenigvuldigd met 3.
In de firmware ziet de code op de AVR ASM voor een vermenigvuldiging van twee bytes er als volgt uit:

Mul2bytes3:
CLR LoCalcByte //duidelijke werkregisters
CLR HiCalcByte
mov LoCalcByte,LoInByte //laadwaarden ontvangen van Timer/Counter1
mov HiCalcByte,HiInByte
CLC // schone huishoudoverdracht
ROL LoCalcByte // schakel door de carry-bit
ROL HiCalcByte
CLC
VOEG LoCalcByte,LoInByte //sum toe, rekening houdend met de carry-bit
ADC HiCalcByte,HiInByte
ret

Controleren van functionaliteit en meetnauwkeurigheid werd als volgt uitgevoerd. Op de ventilator van de computerkoeler werd een kartonnen schijf met twintig gaten geplakt. De koelersnelheid werd gecontroleerd via BIOS moederbord en vergeleken met de toerentellerstanden. De afwijking bedroeg circa 20 toeren bij een frequentie van 3200 toeren/minuut, hetgeen 0,6% is.

Het is heel goed mogelijk dat het werkelijke verschil minder dan 20 omwentelingen bedraagt, omdat Moederbordmetingen worden afgerond binnen 5 slagen (gebaseerd op persoonlijke observaties voor één specifiek bord).
De bovengrens van de meting is 9.999 tpm. De ondergrens van de meting, theoretisch vanaf ±10 omwentelingen, maar werd in de praktijk niet gemeten (één puls van een optocoupler per seconde geeft 3 omwentelingen per minuut, wat, rekening houdend met de fout, theoretisch snelheden vanaf 4 omwentelingen per minuut correct zou moeten meten en hoger, maar in de praktijk moet de indicator minimaal verdubbeld worden).

Ik zal afzonderlijk ingaan op de kwestie van voeding.
Het hele circuit wordt gevoed vanuit een 5V-bron, het geschatte verbruik van het hele apparaat bedraagt ​​niet meer dan 300 mA. Maar volgens de voorwaarden van de technische specificaties moet de toerenteller structureel in de motortoerentalregeleenheid worden geplaatst en ontvangt de eenheid van de LATR constante spanning 36V. Om geen aparte stroomdraad te trekken, wordt een LM317 in het blok geïnstalleerd in de typeplaatjemodus, in de modus waarbij het vermogen wordt verlaagd tot 5V (met een begrenzingsweerstand en een zenerdiode om te beschermen tegen onbedoelde overspanning). Het zou logischer zijn om een ​​PWM-controller in step-down converter-modus te gebruiken, zoals de MC34063, maar in onze stad is het problematisch om dergelijke dingen te kopen, dus hebben we gebruikt wat we konden vinden.

Foto's toerentellerborden en het voltooide apparaat.


Meer foto's







Helaas is het momenteel niet mogelijk om foto's te maken met de machine.

Na de lay-out van de planken en de eerste testmontage ging de doos met het apparaat naar de verf.

Als uw toerenteller niet werkt onmiddellijk na het inschakelen, bij bekende correcte installatie:

1) Controleer de werking van de microcontroller, zorg ervoor dat deze wordt gevoed door een interne generator. Als het circuit correct is gemonteerd, moeten er vier nullen op de wijzerplaat worden weergegeven.

2) Controleer het niveau van de pulsen van de optocoupler, selecteer indien nodig de waarde van weerstand R12 of vervang het aansluitcircuit van de optocoupler. Mogelijke optie omgekeerde aansluiting een optotransistor met een pull-up naar min, met de interne pull-up-weerstand MK ingeschakeld of niet. Het is ook mogelijk om de transistor in de schakelende (inverterende) bedrijfsmodus te gebruiken.
optocoupler Tags toevoegen

Ibrahim Kamal (IKALOGIC)

De contactloze toerenteller in kwestie is dat wel compact apparaat op de door het bedrijf geproduceerde ATMega48-microcontroller, waarmee u kunt meten hoge snelheden contactloos draaien. Voor de meting wordt gebruik gemaakt van een IR-sensor (optocoupler, IR-LED en IR-fotodiode in één behuizing). De gegevensuitvoer wordt uitgevoerd op een LCD-display met twee regels, gebaseerd op de HD44780-controller.

Werkingsprincipe

Een IR-sensor (optocoupler), een miniatuurcomponent met een IR-LED en een fotodiode in één behuizing, stuurt IR-straling naar een draaimechanisme (as, motorrotor), waarop een kleine reflecterende sticker moet zijn aangebracht.

Dankzij deze sticker zorgt elke rotatie van de as ervoor dat er een gereflecteerde puls van IR-straling verschijnt. De door het gebruikte bedrijf geproduceerde sensor is gemarkeerd.

Deze sensor werd geselecteerd na het testen van gelijkwaardige producten omdat de behuizing optische isolatie bood tussen de zendende en ontvangende delen, en de IR-LED hoge stromen kon weerstaan, waardoor metingen over lange afstanden mogelijk waren.

Met behulp van een optocoupler kunnen we dus de tijd berekenen voor een volledige rotatie van de as, en dan, als we de tijd kennen (laten we deze tijd aanduiden T in seconden), kunnen we het aantal omwentelingen per minuut berekenen met behulp van een eenvoudige uitdrukking 60/T.

Gegevens ontvangen van de sensor

Om de kosten van het apparaat en de complexiteit van de montage te verminderen, en om de flexibiliteit van het systeem te vergroten, zullen we de IR-sensor rechtstreeks op de microcontroller aansluiten en alle verwerking van het ontvangen signaal in software implementeren. Het is de moeite waard om meteen op te merken dat dit niet zo eenvoudig is, omdat het signaal dat wordt ontvangen van de IR-fotodiode ruis bevat en externe verlichting er voortdurend invloed op heeft. De uitdaging is dus om een ​​apparaat te ontwerpen dat zich automatisch aanpast aan het omgevingslicht en de afstand tot het meetobject.

De onderstaande afbeelding toont het diagram analoog signaal van IR-sensor (fotodiode)

Omdat het signaal ruis bevat, wordt elke keer dat de aan- en afwezigheid van een puls wordt bepaald (de aanwezigheid van een puls geeft aan dat de as draait en de sensor de reflecterende sticker "ziet") groot aantal oscillaties “misleiden” de microcontroller. Bovendien verhinderen deze factoren ons om de ingebouwde analoge comparator van de microcontroller te gebruiken, en moeten we vóór elke cyclustelprocedure analoge signaalverwerking introduceren.

De oplossing werd gevonden in het schatten van de gemiddelde intensiteit op basis van de maximale en minimale waarde signaalintensiteit van de sensor en het inschakelen van hysteresis in het gebied van de gemiddelde intensiteit. Hysteresis wordt gebruikt om te voorkomen dat luidruchtige pulsen herhaaldelijk cycli tellen. In onderstaande figuur wordt uitgelegd hoe dit algoritme werkt.

Wanneer het signaal toeneemt van lage staat(geen reflectie van de sticker op de schacht) te hoog (reflectie van de IR-puls), het algoritme houdt rekening met deze puls hoog niveau pas nadat het het “toenemende niveau” van hysteresis heeft overschreden en er rekening mee is gehouden laag niveau pas nadat het signaal het “dalende niveau” van hysteresis heeft overschreden. Dit algoritme vermijdt rekenfouten veroorzaakt door een signaal met ruis.

Schematisch diagram van het apparaat

De schakeloplossing is zeer eenvoudig en compact (door het gebruik van een miniatuursensor) en bevat geen dure componenten. Het apparaat wordt aangedreven door drie AAA-batterijen.

Zoals je misschien hebt gemerkt, is er geen potentiometer om het displaycontrast aan te passen (waarmee je ook de grootte van het apparaat kunt verkleinen). Dit is mogelijk dankzij software-implementatie algoritme voor het automatisch aanpassen van het contrast afhankelijk van het voedingsspanningsniveau met behulp van PWM en een filter lage frequenties op elementen R3, R4 en C2. Gebruikers kunnen de tekst van het algoritme inlezen broncode Microcontrollersoftware in het tweede deel van het artikel.

Connector JP1 is bedoeld voor in-circuit programmering van de microcontroller. Connector JP2 is bedoeld voor het aansluiten van een extra gebruikerssensor.

Lijst met toegepaste componenten

Aanduiding
in het diagram
Naam, denominatie
IC1 Microcontroller ATmega48
Q1, Q2 Transistor BCW66G
C1, C2 10 nF
C4, C5 33 pF
X1 Kwartskristal 20 MHz
R1, R2, R7 470 Ohm
R3 1 kOhm
R4 1,5 kOhm
R5 1 MOhm
R6 110 Ohm
R8 70 ohm
LED3 LED
IR1 Optocoupler TCND-5000
B1 Knop
B2 Aan/uit-schakelaar
JP1 In-circuit programmeerconnector
JP2 Uitbreidingsconnector

Demonstratie van werk contactloze toerenteller op de AVR-microcontroller

  • waar kan ik de firmware voor de toerenteller verkrijgen?
  • Firmware - in het tweede deel van het artikel (aan het einde van de beschrijving staat een link naar het archief met de bron en HEX)
  • Heel erg bedankt
  • Heb je een PCB-indeling?:confused:
  • Helaas is er geen tekening van de printplaat. Ik denk dat het niet zo moeilijk zal zijn om het te ontwikkelen. Er zijn niet veel componenten en dit zijn verschillende transistors, diodes, condensatoren en weerstanden.
  • Heeft u er ooit aan gedacht om in plaats van de toerenteller een snelheidsmeter te maken, zodat u auto-moto-apparatuur kunt gebruiken? Er zijn veel circuits voor afzonderlijke toerentellers en afzonderlijke snelheidsmeters, maar er is geen enkele voor een dubbel apparaat. Als het je lukt, zou je een heel populair ontwerp maken! Wat denk je?
  • Misschien, maar het is niet veel van dezelfde toerenteller. Ik ben het ermee eens dat er veel vraag zal zijn naar een dergelijk ontwerp. Nu ben ik online ontwikkelingen tegengekomen zoals boordcomputers, het uitlezen van data via CAN/LIN uit de boordcomputer en deze in visuele vorm realtime presenteren op de LCD displays in de auto. Zoiets als dit...
  • Signeer hier http://radioparty.ru/forums/viewtopic.php?f=2&t=39
  • Heeft iemand geprobeerd het in Proteus te monteren?
Goedemiddag.
Ik presenteer ter overweging een diagram van een eenvoudige digitale toerenteller AVR ATtiny2313, KR514ID2, en een door mij ontworpen optocoupler.
Laat ik meteen een reservering maken: er zijn veel soortgelijke schema's op internet. Elke implementatie heeft zijn eigen voor- en nadelen. Misschien is mijn optie geschikter voor iemand.

Ik zal waarschijnlijk beginnen met die. opdrachten.
Taak: u moet een digitale toerenteller maken om de snelheid van de elektromotor van de machine te regelen.
Inleidende voorwaarden: Er is een kant-en-klare referentieschijf met 20 gaten uit een laserprinter. Er zijn veel optocouplers beschikbaar voor kapotte printers. Gemiddelde (werk)snelheden zijn 4.000-5.000 tpm. De fout van de weergegeven resultaten mag niet groter zijn dan ± 100 omwentelingen.

Beperking: de voeding voor de besturingseenheid is 36V (de toerenteller wordt in dezelfde behuizing geïnstalleerd als de besturingseenheid - daarover hieronder meer).

Een kleine lyrische uitweiding. Dit is de machine van mijn vriend. De machine is uitgerust met een PIK-8 elektromotor, waarvan de snelheid wordt geregeld volgens een aangepast diagram dat op internet te vinden is. Op verzoek van een vriend werd een eenvoudige toerenteller voor de machine ontwikkeld.

Aanvankelijk was het de bedoeling om ATMega16 in het circuit te gebruiken, maar na overweging van de omstandigheden werd besloten ons te beperken tot ATtiny2313, werkend vanuit een interne (RC) oscillator op een frequentie van 4 MHz.

Algemeen schema ziet er zo uit:

Zoals je kunt zien, niets ingewikkelds. Om binaire code om te zetten naar zevensegmenten heb ik de KR514ID2-decoder gebruikt, dit geeft drie voordelen tegelijk.

  • Ten eerste bespaart het ruimte in het ATtiny2313-geheugen door de werkcode te verkleinen (aangezien de procedure voor softwareconversie van binaire code naar zeven segmenten niet in de firmware is opgenomen omdat deze niet nodig is).
  • Ten tweede: het verminderen van de belasting van de ATtiny2313-uitgangen, omdat de LED’s worden “verlicht” door KR514ID2 (wanneer het cijfer 8 wordt weergegeven, zal het maximale verbruik 20-30 mA zijn (typisch voor één LED) * 7 = 140-210 mA, wat “veel” is voor de ATtini2313 met zijn volledig typeplaatje (maximaal (belast) verbruik van 200 mA).
  • Ten derde is het aantal “drukke” poten van de microcontroller verminderd, wat ons de mogelijkheid geeft om in de toekomst (indien nodig) het circuit te upgraden door nieuwe mogelijkheden toe te voegen.

Het apparaat in elkaar zetten geïmplementeerd op een breadboard. Om dit te doen, werd een printplaat van een niet-werkende magnetron die in de bakken lag gedemonteerd. De digitale LED-indicator, sleuteltransistors (VT1-VT4) en begrenzingsweerstanden (R1 - R12) werden als bouwpakket genomen en overgebracht naar het nieuwe bord. Het gehele apparaat wordt, als de benodigde onderdelen aanwezig zijn, gemonteerd met rookpauzes in een half uur. Let op: voor de KR514ID2-microschakeling is de positieve vermogenspoot 14 en de negatieve 6 (aangegeven in het diagram). In plaats van de KR514ID2 kunt u elke andere binaire codedecoder gebruiken in een zevensegmentendecoder die wordt gevoed door 5V. Ik pakte wat voorhanden was.
De “h” en “i” pinnen van de digitale LED-indicator zijn verantwoordelijk voor twee punten in het midden tussen de cijfers; ze zijn niet als onnodig verbonden;
Na montage en firmware, mits er geen installatiefouten zijn opgetreden, begint het apparaat na het inschakelen direct te werken en is er geen configuratie nodig.

Als het nodig is om wijzigingen aan te brengen in de firmware van de toerenteller, is er een ISP-connector op de kaart aanwezig.

In het diagram werd experimenteel pull-up-weerstand R12, met een vermogen van 30 kOhm, geselecteerd voor een specifieke optocoupler. Zoals de praktijk laat zien, kan dit voor verschillende optocouplers verschillen, maar de gemiddelde waarde van 30 kOhm zou voor de meeste printer-optocouplers een stabiele werking moeten garanderen. Volgens de ATtiny2313-documentatie varieert de waarde van de interne pull-up-weerstand van 20 tot 50 kOhm, afhankelijk van de implementatie van een specifieke batch microcontrollers (pagina 177 van het ATtiny2313-paspoort), wat niet helemaal geschikt is. Als iemand het circuit wil herhalen, kan hij of zij eerst de interne pull-up-weerstand inschakelen, misschien werkt dit voor u, voor uw optocoupler en uw MK. Voor mijn set werkte het bij mij niet.

Zo ziet een typische optocoupler van een printer eruit.

De optocoupler-LED wordt gevoed via een 1K-begrenzingsweerstand, die ik rechtstreeks op het bord met de optocoupler heb geplaatst.
Om spanningsrimpels te filteren, zijn er twee condensatoren in het circuit: een elektrolytische van 220 µF x 25V (die bij de hand was) en een keramische van 0,1 µF (het algemene circuit voor het aansluiten van de microcontroller is afkomstig uit het ATtiny2313-gegevensblad) .

Om het te beschermen tegen stof en vuil is het toerentellerbord bedekt met een dikke laag autolak.

Vervanging van componenten.
U kunt elke viercijferige LED-indicator gebruiken, twee dubbele of vier enkele. In het slechtste geval monteert u de indicator op afzonderlijke LED's.

In plaats van KR514ID2 kunt u KR514ID1 gebruiken (die stroombegrenzende weerstanden bevat), of 564ID5, K155PP5, K155ID9 (wanneer de poten van één segment parallel zijn aangesloten), of een andere binaire naar zeven-segment converter (met de juiste wijzigingen in de aansluiting van de microcircuitpinnen).

Mits de installatie correct is overgebracht naar de ATMega8/ATMega16 MK, werkt deze firmware net als op de ATtiny2313, maar moet u de code corrigeren (de namen van de constanten wijzigen) en opnieuw compileren. Er zijn geen vergelijkingen gemaakt voor andere AVR MCU's.

Transistoren VT1-VT4 - alle lage stroomsterkten, werkend in schakelmodus.

Werkingsprincipe is gebaseerd op het tellen van het aantal pulsen dat in één seconde van een optocoupler wordt ontvangen en het herberekenen ervan om het aantal omwentelingen per minuut weer te geven. Voor dit doel wordt een interne teller Timer/Counter1 gebruikt, die werkt in de modus van het tellen van de pulsen die aankomen op ingang T1 (pin PD5 pin 9 MK). Om een ​​stabiele werking te garanderen, is de software-debounce-modus ingeschakeld. Seconden worden geteld door Timer/Counter0 plus één variabele.

Berekening van revoluties, waar ik me op wil concentreren, vindt plaats volgens de volgende formule:
M = (N / 20) *60,
waarbij M het geschatte aantal omwentelingen per minuut (60 seconden) is, N het aantal pulsen van de optocoupler per seconde is en 20 het aantal gaten in de referentieschijf is.
In totaal krijgen we, door de formule te vereenvoudigen:
M = N*3.
Maar! De ATtiny2313-microcontroller beschikt niet over eene. Daarom werd sommatie met offset toegepast.
Voor degenen die de essentie van de methode niet kennen:
Het getal 3 kan worden uitgebreid als
3 = 2+1 = 2 1 + 2 0 .
Als we ons getal N nemen, dit 1 byte naar links verschuiven en nog een N toevoegen, 0 bytes naar links verschoven, krijgen we ons getal N vermenigvuldigd met 3.
In de firmware ziet de code op de AVR ASM voor een vermenigvuldiging van twee bytes er als volgt uit:

Mul2bytes3:
CLR LoCalcByte //duidelijke werkregisters
CLR HiCalcByte
mov LoCalcByte,LoInByte //laadwaarden ontvangen van Timer/Counter1
mov HiCalcByte,HiInByte
CLC // schone huishoudoverdracht
ROL LoCalcByte // schakel door de carry-bit
ROL HiCalcByte
CLC
VOEG LoCalcByte,LoInByte //sum toe, rekening houdend met de carry-bit
ADC HiCalcByte,HiInByte
ret

Controleren van functionaliteit en meetnauwkeurigheid werd als volgt uitgevoerd. Op de ventilator van de computerkoeler werd een kartonnen schijf met twintig gaten geplakt. De koelere snelheid werd gevolgd Moederbord BIOS kaarten en vergeleken met toerentellerstanden. De afwijking bedroeg circa 20 toeren bij een frequentie van 3200 toeren/minuut, hetgeen 0,6% is.

Het is heel goed mogelijk dat het werkelijke verschil minder dan 20 omwentelingen bedraagt, omdat Moederbordmetingen worden afgerond binnen 5 slagen (gebaseerd op persoonlijke observaties voor één specifiek bord).
De bovengrens van de meting is 9.999 tpm. De ondergrens van de meting, theoretisch vanaf ±10 omwentelingen, maar werd in de praktijk niet gemeten (één puls van een optocoupler per seconde geeft 3 omwentelingen per minuut, wat, rekening houdend met de fout, theoretisch snelheden vanaf 4 omwentelingen per minuut correct zou moeten meten en hoger, maar in de praktijk moet de indicator minimaal verdubbeld worden).

Ik zal afzonderlijk ingaan op de kwestie van voeding.
Het hele circuit wordt gevoed vanuit een 5V-bron, het geschatte verbruik van het hele apparaat bedraagt ​​niet meer dan 300 mA. Maar volgens de voorwaarden van de technische specificaties moet de toerenteller structureel in de motortoerentalregeleenheid worden geplaatst en wordt er vanuit LATR een constante spanning van 36 V aan de eenheid geleverd. Om geen aparte stroomdraad te trekken, een LM317 wordt in de unit geïnstalleerd in de typeplaatjemodus, in de modus waarbij het vermogen wordt verlaagd tot 5V (met begrenzingsweerstand en zenerdiode ter bescherming tegen onbedoelde overspanning). Het zou logischer zijn om een ​​PWM-controller in step-down converter-modus te gebruiken, zoals de MC34063, maar in onze stad is het problematisch om dergelijke dingen te kopen, dus hebben we gebruikt wat we konden vinden.

Foto's toerentellerborden en het voltooide apparaat.


Meer foto's







Helaas is het momenteel niet mogelijk om foto's te maken met de machine.

Na de lay-out van de planken en de eerste testmontage ging de doos met het apparaat naar de verf.

Als uw toerenteller niet werkt onmiddellijk na het inschakelen, bij bekende correcte installatie:

1) Controleer de werking van de microcontroller, zorg ervoor dat deze wordt gevoed door een interne generator. Als het circuit correct is gemonteerd, moeten er vier nullen op de wijzerplaat worden weergegeven.

2) Controleer het niveau van de pulsen van de optocoupler, selecteer indien nodig de waarde van weerstand R12 of vervang het aansluitcircuit van de optocoupler. Het is mogelijk om de optotransistor omgekeerd aan te sluiten met een pull-up naar min, met de interne pull-up-weerstand MK ingeschakeld of niet. Het is ook mogelijk om de transistor in de schakelende (inverterende) bedrijfsmodus te gebruiken.
optokoppelaar

  • AVR
  • Tags toevoegen

    Toerenteller meet de rotatiesnelheid van onderdelen, mechanismen en andere componenten van de auto. Toerenteller bestaat uit 2 hoofdonderdelen: een sensor die de rotatiesnelheid meet en een display dat de waarden weergeeft. Kortom, de toerenteller wordt gekalibreerd in omwentelingen per minuut.

    Je kunt zo'n apparaat natuurlijk zelf maken, ik stel een diagram voor AVR-microcontroller Attiny2313. Met zo'n microcontroller kun je 100 - 9990 rpm halen. De meetnauwkeurigheid bedraagt ​​+/-3 omwentelingen per minuut.

    Kenmerken van de ATtiny2313-microcontroller

    EEPROM 1 KB
    Analoge ingangen (ADC) 0
    Ingangsspanning (limiet) 5,5 Volt
    Ingangsspanning (aanbevolen) 4,5-5 Volt
    RAM 128 bytes
    Klokfrequentie 20 MHz
    Flash-geheugen 2kB

    Op pin 11 is een weerstand met een nominale waarde van 4,7 kOhm geïnstalleerd; de nominale waarde verandert niet, anders begint de sensor onstabiel te werken wanneer deze wordt ingeschakeld in een enkeldraads circuit.

    In tegenstelling tot andere circuits zijn hier 4 transistors en 4 weerstanden gebruikt, waardoor de schakeling eenvoudiger is geworden.

    Het circuit heeft 8 segmenten in elk symbool, elk 5 mA, het totale aantal zal 40 mA zijn, daarom zijn er geen poorten zware belasting. Laten we eens kijken naar de bedrijfsgrafieken van het apparaat.

    Uit de grafiek kun je zien dat de stroom kan oplopen van 60 mA tot 80 mA aan de pinuitgang. Voor fijnafstemming u moet grensweerstanden selecteren met een nominale waarde van 470 ohm.

    De keuze van het display is niet kritisch; kies een viercijferige LED-indicator of stel deze samen uit individuele LED's. Gebruik een rode indicator zodat alles duidelijk zichtbaar is in de zon. De toerenteller wordt gevoed door 12 volt.

    De kwartsweerstand is geselecteerd op een frequentie van 8 MHz voor nauwkeurige en stabiele metingen. Het ingangsfilter wordt gebruikt om verbinding te maken met de bobine-aansluiting.

    Zoek het volgende in de firmware op regel 17.

    17. #define byBladeCnt 2 //1 - twee spoelen, 2 - één spoel, 4 - motorfiets...

    Deze parameter moet worden gewijzigd. Als u een Sovjet-auto heeft, stelt u deze in op 2, als u een motorfiets heeft, stelt u deze in op 4, en als de auto een ontstekingssysteem met twee spoelen heeft, stelt u deze in op 1.