# برنامه نویسی میکروکنترلر (MicroController) ها و MicroProcessor ها > برنامه نویسی سیستم های Embeded > AVR >  نحوه اتصال lm35 به atmega32

## مهندس نرم

باسلام
من یک دماسنج دیجیتالی با atmega32 وlm35 ساختم میخوام مدارم توی یک دمای خاصی هشداربده نمیدونم آژیرمو به کدوم پایه میکرو وصل کنم  وهمینطور سنسورم چطوری متصل بشه  اصلا میکرو شمارش درسته؟
لطفا کمکم کنید

----------


## hamid-nic

> باسلام
> من یک دماسنج دیجیتالی با atmega32 وlm35 ساختم میخوام مدارم توی یک دمای خاصی هشداربده نمیدونم آژیرمو به کدوم پایه میکرو وصل کنم  وهمینطور سنسورم چطوری متصل بشه  اصلا میکرو شمارش درسته؟
> لطفا کمکم کنید


سلام دوست عزیز
بسته به کارتون و اینکه قراره سخت افزار تون چه کارایی بکنه میکرو را انتخاب می کنن . حالا شما atmega32  را انتخاب کردید . lm35 هم که یک سنسور دما است . 
با توجه به زبان برنامه نویستون (زبان بیسک یا C یا . . . ) باید ورودی ها و خروجی ها را مشخص کنید . مثلا میگید پورت B شماره ی ششمش به عنوان ورودی باشه (البته اینم بگم که هر پورتی وظیفه ی خاصی داره که باید طبق کاتولوگش عمل کرد) یا مثلا خروجی باشه . 
برای این سنسور با از قسمت آنالوگ به دیجیتال استفاده کنید که مبحث پیشرفته و تخصصی زبان مورد نظرتون محسوب میشه .
برای آژیر هم می توانید از یک رله که به آژیرتون وصله استفاده بکنید البته باید رله را به عنوان پایه ی خروجی درنظر بگیرید .
در این موارد مطالب زیادی در اینترنت می توانید پیدا کنید کافیه یکم حوصله کنید و بگردید .
موفق باشید.

----------


## singel

سلام دوست عزیز 
اگه مشکل برنامه نویسی داری این کد با بسکام تقدیم به شما

اگر مشکل داشتی بگو تا راهنماییت کنم



 
$regfile = "M32def.dat"                                     ' use the Mega32
$crystal = 1000000
Deflcdchar 0 , 32 , 32 , 31 , 31 , 31 , 31 , 32 , 32        ' replace ? with number (0-7)'
Deflcdchar 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1                ' replace ? with number (0-7)
Deflcdchar 2 , 16 , 16 , 16 , 16 , 16 , 16 , 16 , 16        ' replace ? with number (0-7)
Deflcdchar 3 , 16 , 16 , 31 , 31 , 31 , 31 , 16 , 16        ' replace ? with number (0-7)
Deflcdchar 4 , 1 , 1 , 31 , 31 , 31 , 31 , 1 , 1            ' replace ? with number (0-7)
Deflcdchar 5 , 32 , 32 , 28 , 28 , 28 , 28 , 32 , 32        ' replace ? with number (0-7)
Config Adc = Single , Prescaler = Auto , Reference = Avcc   'config ADC
Start Adc
Dim W As Word , Perc As Word , Volt As Word , Volt_d As Byte , Channel As Byte , I As Byte , Cols As Byte , Cols_d As Byte
Cls
Cursor Off
Do
  W = Getadc(0)
  Volt = W * 5
  Volt_d = Volt Mod 10
  Volt = Volt / 10
  Locate 1 , 1
  Lcd Volt ; "," ; Volt_d
  Cols = Volt / 2
  Locate 2 , 1
  For I = 1 To Cols
   Select Case I
   Case 1 : Lcd Chr(3)
   Case 5 : Lcd Chr(4)
   Case 10 : Lcd Chr(4)
   Case 15 : Lcd Chr(4)
   Case 20 : Lcd Chr(4)
   Case Else : Lcd Chr(0)
  End Select
  Next I
  Cols_d = Cols Mod 2
  If Cols_d > 0 Then
  Lcd Chr(5)
  Cols = Cols + 2
  Else
  Cols = Cols + 1
 End If
  For I = Cols To 20
  Select Case I
   Case 1 : Lcd Chr(2)
   Case 5 : Lcd Chr(1)
   Case 10 : Lcd Chr(1)
   Case 15 : Lcd Chr(1)
   Case 20 : Lcd Chr(1)
   Case Else : Lcd Chr(32)
   End Select
   Next I
   Waitms 1000
  Loop
End

----------

