در این بخش تیم الکترونیک و برنامه نویسی الکترونیک ۹۸, اقدام به طراحی و انتشار پروژه ای کاربردی و حرفه ای با عنوان, ساخت وات متر و ولت متر و آمپر متر AC و DC با میکروکنترلر AVR, برای شما علاقه مندان به پروژه های میکروکنترلر AVR کرده است. در پروژه قبلی (ولت متر AC با قابلیت اندازه گیری ولتاژ 0 تا 1000 ولت rms) با نحوه اندازه گیری ولتاژ AC توسط میکروکنترلر AVR و ساخت دستگاه ولت متر AC با قدرت اندازه گیری ولتاژ 1000 ولت آشنا شدیم. حال قصد داریم در این پروژه با گسترش پروژه قبلی یک مولتی متر کامل و تمام عیار توسط میکروکنترلر AVR بسازیم.

ساخت وات متر و ولت متر و آمپر متر AC و DC با میکرو AVR

شرح عملکرد پروژه

همانطور که بیان شد در این پروژه قصد داریم تا با بهرگیری از واحد ADC میکروکنترلر AVR، ولتاژ DC، ولتاژ AC، جریان DC و جریان AC را اندازه گیری نمائیم و بر روی یک LCD کاراکتری در ابعاد 16*2 به کاربران نمایش دهیم. همچنین لازم به ذکر است که در الگوریتم برنامه نویسی این پروژه طبق رابطه P = V*I مقدار توان مصرف کننده (وات متر) نیز اندازه گیری می شود و توسط همان ال سی دی کاراکتری متصل به میکروکنترلر ATmega8 که ولتاژ و جریان را به کاربران نشان می دهد مقدار توان مصرف کننده نیز نشان داده خواهد شد.

نقشه شماتیک پروژه ساخت ولت متر و آمپر متر AC و DC با میکرو AVR

در این مدار از مدار کسینوس فی متر استفاده نشده است. این پروژه از 4 قسمت تشکیل شده است که شامل مدار اندازه گیری ولتاژ، مدار اندازه گیری جریان، یکسوساز ابزار دقیق و کنترل AVR می شود.

نقشه شماتیک پروژه ساخت ولت متر و آمپر متر AC و DC با میکرو AVR
عنوان

سخت افزار پروژه

قسمت اندازه گیری ولتاژ متناوب به صورت بلوک زیر می باشد که ولتاژ AC را دریافت می کند و به ولتاژ DC تبدیل می کند و در صورت افت ولتاژ یا افزایش ولتاژ ورودی مقدار ولتاژ DC تغییر می کند که این ولتاژ به ADC میکروکنترلر AVR متصل شده و همچنین جهت تنظیم کردن ولتاژ خروجی از یک مولتی ترن در خروجی مدار استفاده شده است. توجه داشته باشید که خازن 0.39 میکروفاراد 400 ولت که در مسیر ورودی به پل دیودی قرار دارد حتما از نوع سرامیکی باشد.

تبدیل ولتاژ متناوب AC به ولتاژ مستقیم DC

در قسمت زیر مقاومت 1.2 اهم 10 وات در مسیر ورودی و خروجی سری شده است که متناسب با عبور جریان بر روی مقاومت افت ولتاژ به وجود می آید. کانتکتور j2 ورودی برق شهر 220 ولت و کانکتور j1 خروجی برق 220 ولت است.

ساخت وات متر و ولت متر و آمپر متر AC و DC با میکرو AVR

در قسمت زیر مدار یکسوساز با مدار Op-Amp آورده شده است که افت ولتاژ دو سر مقاومت 1.2 اهم را که ولتاژ AC می باشد را به ولتاژ DC تبدیل می کند. از مشخصات اصلی و بارز یکسوساز مبتنی بر تقویت کننده عملیاتی این است که ولتاژه ها با دامنه خیلی کم را می توان یکسو نماید.

مدار یکسوساز با مدار Op-Amp

برنامه نوشته شده در نرم افزار BASCOM-AVR به زبان بیسیک BASIC

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

$regfile = "m8def.dat"

$crystal = 8000000

'----------------------------------

$hwstack = 100

$swstack = 200

$framesize = 120

'----------------------------------

Dim A As Byte

Dim Adcc As Word

Dim Longg As Long

Dim Singlee As Single

Dim Stringg As String * 10

Dim Volt As Single

Dim Amper As Single

'----------------------------------

Config Lcd = 16 * 2

Config Lcdpin = Pin , Rs = Pind.5 , E = Pind.4 , Db4 = Pind.3 , Db5 = Pind.2 , Db6 = Pind.1 , Db7 = Pind.0

Cls

Cursor Off

'----------------------------------

Config Adc = Single , Prescaler = Auto , Reference = Internal

Start Adc

'----------------------------------

Config Pind.6 = Output

Config Pind.7 = Output

'----------------------------------

Led_red Alias Portd.7

Led_green Alias Portd.6

'----------------------------------

Cls

Led_red = 1

Led_green = 0

'----------------------------------

Locate 1 , 6

Lcd "Hello"

Wait 2

'----------------------------------

Led_red = 0

Led_green = 1

'----------------------------------

Cls

Main:

Longg = 0

For A = 1 To 20

Adcc = Getadc(4)

Waitms 10

Longg = Longg + Adcc

Next

Longg = Longg / 20

Singlee = Longg * 2.44

Singlee = Singlee / 1000

Singlee = Singlee * 222

Longg = Singlee

Volt = Singlee

Locate 1 , 1 : Lcd "V=" ; Longg ; " "

'----------------------------------

Longg = 0

For A = 1 To 20

Adcc = Getadc(3)

Waitms 10

Longg = Longg + Adcc

Next

'----------------------------------

Longg = Longg / 20

Singlee = Longg * 2.44

Singlee = Singlee / 1000

Singlee = Singlee / 2.57

Stringg = Fusing(singlee , "#.###")

Amper = Singlee

Locate 1 , 8

Lcd "A=" ; Stringg ; " "

'----------------------------------

Singlee = Volt * Amper

Stringg = Fusing(singlee , "#.#")

'----------------------------------

Locate 2 , 1 : Lcd "W=" ; Stringg ; " w "

Waitms 600

Goto Main

End