في هذا المشروع سنعرف كيفية ربط محرك سيرفو مع متحكم 8051. سوف تتعلم كيفية التعامل مع هذا المحرك والتحكم فيه باستخدام متحكم 8051. تُستخدم المحركات المؤازرة في الروبوتات والأنظمة والصناعات المدمجة لأنها دقيقة للغاية وموثوقة. يتم استخدامها لتشغيل سيارات ألعاب التحكم عن بعد أو الطائرات أو الروبوتات. يمكن التحكم في حركتها عن طريق تدويرها بزاوية معينة. يمكن التحكم في محرك سيرفو بإشارة PWM. في هذه المقالة سوف نتعامل مع محرك سيرفو مع متحكم 8051 ونتحكم في سرعته. أوصيك بقراءة مقال عن كيفية استخدام مترجم keil وكيفية استخدام منافذ الإدخال / الإخراج في متحكم 8051 قبل التعرف على ربط محرك سيرفو مع 8051.
محاكاة لمحرك سيرفو مع 8051
عندما نبدأ المحاكاة ، لن يدور المحرك حتى يتم الضغط على أي زر. عند الضغط على زر الضغط الأول ، سوف يدور محرك سيرفو حتى 90 درجة. عندما أضغط على زر الضغط الثاني ، يمكن أن يدور حتى 180 درجة ويتوقف. وعند الضغط على زر الدفع الثالث ، فإنه يدور حتى 270 درجة.
كود المشروع
#include <REGX51.H>
void Delay_servo(unsigned int);
sbit control_pin=P2^0;
sbit B1=P0^0;
sbit B2=P0^1;
sbit B3=P0^2;
void main()
{
P0=0x07; // input port
control_pin=0; // output pin
do
{
if(B1==1)
{ //Turn to 90 degree
control_pin=1;
Delay_servo(1218);
control_pin=0;
}
else if(B2==1)
{ //Turn to 180 degree
control_pin=1;
Delay_servo(1470);
control_pin=0;
}
else if(B3==1)
{ //Turn to 270 degree
control_pin=1;
Delay_servo(1720);
control_pin=0;
}
}while(1);
}
void Delay_servo(unsigned int d)
{
TMOD &=0xF0; // Clear 4bit field for Timer0
TMOD|=0x01; // Set timer0 in mode1, 16bit
TH0=0xFF - (d>>8)&0xFF; // Load delay vales Timer 0 + Bitwise right shift[c][d]a >> b
TL0=0xFF- d&0xFF;
ET0=1; //Enable timer0 interrupts
EA=0; // Global Interrupt
TR0=1; // Start timer 0
while(TF0==0); // Wait for overflow
TR0=0; //Stop timer0
TF0=0; // Clear Flag
}
قسم:
دروس تعليمية