مبين رقمى ومفتاح تحويل سرعة الماكينات الدوارة DIGITAL TACHOMETER :
يتم توليد قطار النبضات عن طريق دوران المحرك ، على سبيل المثال ، والذى يرتبط بمخروط مطاطى لنقل الحركة إلى قرص بلاستيك أسود به فتحة من 1 إلى 2 مم ، يمر خلال منتصف عازل ضوئى optocoupler ، خرج العازل الضوئى يصل إلى الميكروكونترولر ، من خلال ترانزستور والذى يعكس هذه الإشارة ، ويتم عرض السرعة على شاشة LCD . يستخدم نفس المبدأ فى تطبيقات متعددة مثل عداد سرعة السيارة .
المكونات :
· شاشة LCD نوع 2X16 .
· 1 مقاومة 10 أوم .
· 1 مقاومة 330 أوم .
· 1 مقاومة 1 كيلو أوم .
· 1 مقاومة 4.7K .
· 1 مقاومة متغيرة 10 كيلوأوم .
· عامود إدارة منفصل بقرص بلاستيك أسود .
· 1 عازل ضوئى بخرج ترانزستور NPN .
· ترانزستور 2N3906 .
الدائرة الكهربية :
البرنامج :
مبين السرعة :
كود:
Device = 16F628A
XTAL=4
ALL_DIGITAL true
LCD_DTPIN PORTB.4
LCD_RSPIN PORTB.3
LCD_ENPIN PORTB.2
ALL_DIGITAL = true ' CMCON = 7 , All PORTA pins becomes digital
Dim rpm As Word ; rpm variable capacity from 0 to 65535
start:
rpm = Counter PORTB.0,1000; count pulses on port B.0 during 1 sec
rpm = rpm * 60 ; to obtain rpm
Print Cls , ; clean LCD
Print At 1,1 ," Motor turning:" 'And write
Print At 2,4 , Dec rpm ; GET the value of the variable rev
Print At 2,9 , " RPM" ; go to 2nd line and write RPM box 9
GoTo start
End
لاحظ أن المتغير rpm قد تم ضربه فى 60 للحصول على عدد الدورات فى الدقيقة . للحصول على دقة أكبر يتم عد النبضات خلال 2 ثانية ثم الضرب فى 30 كما يلى :
كود:
rpm = Counter PORTB.0,2000; count pulses in B.0 port for 2 seconds
rpm = rpm * 30 ; multiply by 30 to get 1 minute rpm
الطريقة المثالية هى عد النبضات خلال 1 دقيقة كما يلى :
كود:
rpm = Counter PORTB.0,6000; count pulses in PORTB.0 for 60 seconds.
فى هذه الحالة لن نحتاج إلى عملية الضرب ، ولكن عيب هذه الطريقة هى أنه يجب حفظ التواصل مع الآلة لمدة دقيقة حتى يتم الانتهاء من العد ، الطريقة المفضلة هى عد النبضات خلال من 2 إلى 5 ثانية وفى الحالة الأخيرة يتم الضرب فى 12 كما يلى :
كود:
rpm = rpm * 12; rpm variable multiply by 12 to get RPM
ملحوظة : من المهم أن يكون القرص أسود اللون ، لمنع الأشعة فوق البنفسجية من المرور إلى الترانزستور ، القرص المعدن يمكن أن يعمل أيضا .
إضافة مفتاح السرعة :
كود:
Device = 16F628A
Xtal=4
All_Digital true
LCD_DTPin PORTB.4
LCD_RSPin PORTB.3
LCD_ENPin PORTB.2
All_Digital = true ; CMCON = 7 , All PORTA pins becomes digital
Dim rpm As Word ; rpm variable capacity from 0 to 65535
Dim redLED As PORTB.1 ; pin B.1 call redLED
Dim greenLED As PORTA.2 ; pin A.2 call greenLED
start:
rpm = Counter PORTB.0,1000; count pulses on port B.0 during 1 sec
rpm = rpm * 60 ; to obtain rpm
Print Cls ; clean LCD
Print At 1,1 ," Motor Speed:" ;And write
Print At 2,4 , Dec rpm ; GET the value of the variable rev
Print At 2,9 ," RPM" ; go to 2nd line and write RPM box 9
; Speed Switch depending on RPM
If rpm >1200 Then overSpeed ; if the variable exceeds 120
If rpm <1000 Then underSpeed ; if the variable low 100
Low redLED : Low greenLED ; off the 2 leds
GoTo start
overSpeed:
High redLED ; redLED on
Low greenLED ; greenLED off
GoTo start
underSpeed:
High greenLED ; greenLED on
Low redLED ; redLED off
GoTo start
End