Chào các anh chị. Em đang làm bài tập lớn đề tài điều khiển quạt, có chút thắc mắc muốn nhờ mọi người giúp đỡ đó là :
em muốn điều khiển động cơ phụ thuộc vào nhiệt độ t đọc đc từ LM35.nhiêt độ hiển thị trên led 7 đoạn, và thời gian thực hiển thị trên LCD. Nếu t>40 thì bắt đầu quay, tốc độ tăng dần khi nhiệt độ tăng và động cơ đạt tốc độ max khi t>=60 độ.
Code:
t=(float)read_adc(); //update nhiet do
t=t*100/204;
if((t>0)&&(t<40)) {duty=0;};
if((t>=60)&&(t<=99)) {duty=624;};
if((t>=40)&&(t<60)) {duty=((t-40)*15+312);};
vấn đề của em là khi mô phỏng bằng proteus thì khi tăng lm35 lên >=60 độ thì mạch ok, còn khi dưới 60 độ thì thời gian thực trên LCD chạy không đúng nữa, có khi phải đến 3 hay 4s thì mới nhảy đc lên 1s. em nghĩ cái này có thể xung đột với thời gian update từ DS1307 lên LCD, nhưng chưa biết lỗi ở đâu.
em gửi sơ đồ mô phỏng Proteus để mọi người xem giúp e với ạ.
thanks mọi người nhiều!