شرح مدار Tracer :

چهار مقاومت نوري ( با اسم تجاري فتوسل يا فتو رزيستور ) که در چهار وجه يک مکعب قرار گرفته اند قلب دستگاه را تشکيل مي دهند!

اين مقاومت هاي نوري دقيقا همانند يک مقاومت رفتار مي کنند، زماني که نور به آنها نتابد مقاومت آنها در حدود بي نهايت است ولي چنانچه نور به آنها تابانده شود مقاومت آنها بسته به شدت نور تابيده شده کاهش مي يابد و حتي مقدار آن به حدود چند صد اهم هم مي رسد.

بدين ترتيب مي توان از اين تغيير مقاومت بر اثر تغيير شدت تابشي نور خورشيد استفاده کرده و به کمک چهار عدد از اين مقاومت هاي نوري مي توانيم در هر لحظه جهت تابش نور خورشيد را مشخص کنيم.

چهار مقاومت نوري در مداري قرار گرفته اند تا به کمک آنها  در هر لحظه شدت نور خورشيد در چهار جهت مختلف اندازه گيري شود.بدين ترتيب که هر کدام که شدت نور بيشتري را دريافت مي کند، در خروجي مربوطه ولتاژ بيشتري ظاهر مي شود. سپس اين ولتاژ ها بوسيله يک مبدل آنالوگ به ديجيتال (از مبدل داخلی میکرو استفاده شده است) به اعداد باينري تبديل مي شوند.

اين اعداد که مقدار آن ها از صفر تا 1023 تغيير مي کند متناسب با شدت نور تابشي مقدار متفاوتي دارند. هر چه نور بيشتري به مقاومت نوري بتابد، عدد مربوطه بزرگتر است. بنا بر اين با مقايسه اين چهار عدد مي توان به مکان دقيق خورشيد پي برد.

سپس در یک حلقه بصورت پیوسته این اعداد مقایسه می شوند و در صورتی که عدد مربوط به LDR جلو بزرگتر بود به این معنی است که جهت سلول خورشیدی رو به خورشید است ، در غیر این صورت متناسب با اینکه کدام LDR نور بیشتری را دریافت می کند موتور را در جهت مناسب حرکت می دهیم.

لازم به ذکر است که دقت اين سنسور ها بسيار بالا ميباشد به طوري که از تکنيک نرم افزاري براي کاهش دقت آنها استفاده شده، در غير اين صورت صفحات خورشيدي دچار يک حرکت نوساني ناخواسته مي شد.

 

ردیاب خورشیدی

 برنامه مدار ردیاب به زبان بیسیک :

$regfile = "m8def.dat"

$crystal = 1000000

Config Adc = Single , Prescaler = Auto

Config Portc = Input

Config Portb = Output

 

Dim Ldr_j As Word

Dim Ldr_a As Word

Dim Ldr_r As Word

Dim Ldr_ch As Word

Dim A As Byte

Dim R As Byte

Dim Ch As Byte

M_1 Alias Portb.0

M_2 Alias Portb.1

 

 

Do

First:

Start Adc

Ldr_j = Getadc(0)

Ldr_a = Getadc(1)

Ldr_r = Getadc(2)

Ldr_ch = Getadc(3)

Stop Adc

A = Ldr_j - Ldr_a

R = Ldr_j - Ldr_r

Ch = Ldr_j - Ldr_ch

If Ldr_j > Ldr_a Then

If Ldr_j > Ldr_r Then

If Ldr_j > Ldr_ch Then

 

 

Reset M_1

Reset M_2

End If

End If

End If

If Ldr_a > Ldr_j Then

 

Set M_1

Reset M_2

Waitms 100

goto first

End If

 

 

If Ldr_r > Ldr_j Then

Set M_1

Reset M_2

Waitms 50

goto first

End If

 

 

If Ldr_ch > Ldr_j Then

 

Reset M_1

Set M_2

Waitms 50

goto first

End If

Loop

 

End 'end program

 

 

 

همونطور که دیدید نوشتن این قسمت از برنامه کار دشواری نبود و توضیح خاصی نمی مونه بجز قسمت مکانیک ردیاب که اونم با کمی ابتکار میتونید انجامش بدین.