Arduino ကို Function generator အနေနဲ့ သုံးဖို့ အတွက် လိုင်ဘရီ လေးတစ်ခု ရေးထား ပါတယ်။ သူက Pin3 ကနေ waveform တွေကို ထုတ်ပေး နိုင် သလို analog input A0 နဲ့ A1 ကို ဖတ်ပြီး၊ serial plotter မှာ ပြန်ကြည့် လို့ ရအောင် baud rate 115200 နဲ့ print ထုတ်ပေး ပါတယ်။ Function generator ကို Arduino code မှာ ထည့်သုံး ချင်ရင် အောက်က အဆင့် တွေ အတိုင်း ထည့်သုံး နိုင် ပါတယ်။
Step 1
ပရိုဂရမ် ရှိတဲ့ folder မှာCE_FGen.h (https://github.com/yan9a/arduino/blob/master/Function_Generator/CE_FGen.h)
ဆိုတဲ့ လိုင်ဘရီ ဖိုင်ကို ကူးထည့်ထား ပါမယ်။
Step 2
Arduino program ရဲ့ အစမှာ#include "CE_FGen.h" CE_FGen fg;
ဆိုပြီး ဖိုင်ကို include လုပ်၊ ပြီးရင် သူ့ရဲ့ instance တစ်ခု ကြေငြာ လိုက်ပါမယ်။
Step 3
Setup မှာvoid setup() { fg.Begin(500); // ( sampling_freq ) fg.Set(CE_SINUSOIDAL,5,1,1); // ( waveform , wave_freq , v_peak2peak , v_average ) }ဆိုပြီး ထုတ်မယ့် waveform အတွက် sampling frequency တစ်ခု နဲ့ initialize လုပ်လိုက် ပါမယ်။ ဒီ နမူနာ မှာ တော့ sampling frequency ကို 500 Hz သုံးလိုက် ပါတယ်။ ပြီးရင် ထုတ်ချင်တဲ့ waveform ပုံစံ၊ ထွက်လာ မယ့် wave ရဲ့ frequency ၊ peak to peak voltage တန်ဖိုး၊ ပျမ်းမျှ voltage (offset တန်ဖိုး) တွေကို Set ဆိုတဲ့ method နဲ့ သတ်မှတ် လိုက်ပါတယ်။ သုံးလို့ ရတဲ့ waveform ပုံစံ တွေက
- CE_HARMONIC
- CE_SAWTOOTH
- CE_SINUSOIDAL
- CE_SQUARE
- CE_TRIANGULAR
Step 4
Loop ထဲမှာvoid loop() { fg.Poll(); }ဆိုပြီး Poll ဆိုတဲ့ method ကို ခေါ်နေ မယ် ဆိုရင်၊ သတ်မှတ် ထားတဲ့ sampling rate နဲ့ waveform ကို ထုတ်ပေး မှာ ဖြစ်ပါတယ်။
Test Program
ရလာ တဲ့ နမူနာ test program ကို အောက်မှာ ပြထား ပါတယ်။#include "CE_FGen.h" CE_FGen fg; void setup() { fg.Begin(500); // ( sampling_freq ) fg.Set(CE_SINUSOIDAL,5,1,1); // ( waveform , wave_freq , v_peak2peak , v_average ) } void loop() { fg.Poll(); }
Waveform တွေကို အမျိုးမျိုး တစ်လှည့်စီ ထုတ်ပေးတဲ့ နောက်ထပ် နမူနာ တစ်ခု ကို အောက်က လင့်ခ်မှာ တွေ့နိုင် ပါတယ်။
Function_Generator.ino (https://github.com/yan9a/arduino/blob/master/Function_Generator/Function_Generator.ino)
Test Circuit
Function generator ကို စမ်းကြည့် ဖို့အတွက် small signal N channel MOSFET လေး တစ်ခု ကို common source configuration နဲ့ ချိတ်ပြီး၊ waveform input တွေပေး ၊ ပြီးတော့ ထွက်လာ တဲ့ inverted output နဲ့ gate voltage အဝင် တွေကို A0 , A1 တို့နဲ့ ဖတ်ပြီး serial plotter နဲ့ 115200 baud rate ထားပြီး ကြည့် ကြည့် ပါမယ်။ အဲဒီ test circuit ကို အောက်က အတိုင်း ဆက်ထား ပါတယ်။ချိတ်ဆက် ပြီးတဲ့ အခါ potentiometer လေးကို လှည့်ပြီး drain quiescent output voltage ကို အထွက် ရဲ့ အလယ်နား 3 V ဝန်းကျင် ဖြစ်အောင် ချိန်လိုက် ပါမယ်။ အဲဒီ နောက် function generator ရဲ့ အထွက် ကို gate အဝင် မှာ ပေးလိုက် တဲ့ အခါ၊ သူ့ကို ချဲ့ပြီး ထွက်လာ တဲ့ inverted waveform ကို serial plotter မှာ တွေ့ ရမှာ ဖြစ် ပါတယ်။ ချဲ့ဆ ပိုများ ချင်ရင် source မှာ bypass capacitor တစ်လုံး ထပ်ဖြည့် နိုင် ပါတယ်။
No comments:
Post a Comment