ساخت اوسیلوسکوپ با آردوینو

ساخت اوسیلوسکوپ با آردوینو

چگونه یک اوسیلوسکوپ ساده بسازیم تا بتوانیم شکل موج ها را مشاهده کنیم ؟

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

برای مثال در الکترونیک بیشترین چیزی که ما را به اوسیلوسکوپ نیازمند میکند این است که بتوانیم نوع موج یک مدار، شکل فرکانس یا همان نوع و شکل PWM و یا مقدار عددی فرکانس رو مشاهده کنیم.خب اگر فقط برای همین موارد که مهمترین نیازها هستند بیایم اوسیلوسکوپ چند ده میلیونی خریداری کنیم که کلی امکانات صنعتی دارد واقعا یک هدر دادن هزینه به معنای واقعی کلمه هست. ما که خودمان بیش از 15 سال هست تا این تاریخ (سال 1402) ،به تمام امکانات یک اوسیلوسکوپ نیازمند نبودیم و بیشترین نیاز ما همین مواردی بود که عرض کردم در رابطه با فرکانس و …

خب باید چه کنیم ؟ آیا اوسیلوسکوپ ارزان تر و با امکانات محدودتر وجود دارد ؟

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

چنین ابزاری برای تمامی افرادی که در رباتیک – طراحی مدارات مبتنی بر میکروکنترلرها و با فرکانس و … سروکار دارند ابزاری بسیار کاربردی خواهد بود. برای شما در دوره رباتیک در رابطه با مدارت تولید پالس و یا pwm ها صحبت کردیم و آموزش هایی هم دادیم که چطور مثلا با آی سی هایی مانند 555 یک مدار تولید پالس طراحی کنید،ولی خب وقتی مدار رو ساختیم از کجا بدانیم که درست کار  میکند ؟ اینجاست که این اوسیلوسکوپ ساخت امروز ما در این مقاله به درد شما میخورد چون شکل و اندازه و نوع موج خروجی بین 0 تا 5 ولت رو به شما نشان میدهد.

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

برای ساخت این اوسیلوسکوپ به چه چیزهایی نیاز داریم ؟

برای ساخت این اوسیلوسکوپ شما به یک آردوینو نانو و یا آردوینو Uno نیاز دارید. همچنین یک ال سی دی OLED نیاز دارید به علاوه کابل مخصوص برای آردوینو و چند سیم جامبر و همین. دقیقا این مورد باعث شده که قیمت این اوسیلوسکوپِ ساده خیلی پایین باشه.در زیر هم تصاویر موارد مورد نیاز رو برای ساخت این اوسیلوسکوپ مشاهده میکنید.

آردوینو

خب حالا چیزی که نیاز دارید این هست که فیلم آموزشی زیر رو مشاهده کنید تا کامل این اوسیلوسکوپ رو باهم بسازیم و بعدش هم میتونید کدهاش رو از زیر ویدیو دانلود و کپی کنید و استفاده کنید. به همین راحتی اولین پروژه اوسیلوسکوپ خودتون رو ساختید.

 

 

 

 کدهای پروژه :

( راهنمایی :  کدها رو کپی کرده و در یک فایل Text پیست کنید تا به درستی و بدون تغییرات کپی شوند، یا از آخر همین سطر کدها را به صورت فایل آردوینو دانلود کنید)

هشدار !!! : فراموش نکنید این اوسیلوسکوپ میتواند فرکانس ولتاژهای بین 0 تا حداکثر 5 ولت را اندازه گیری و نمایش بدهد،در صورت اعمال ولتاژ بیشتر آردوینو شما می سوزد)

#include <SPI.h> // Librarys
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SH110X.h>

#define READ_PIN A0 // Signal input pin
#define PWM_PIN 11 //PWM Generateor
#define ADJ_PIN A1 //kalibreerimine

Adafruit_SH1106G display = Adafruit_SH1106G(128, 64, &Wire);

byte data[128];
int x;
int scnt, pos, ecnt;
double y, pwmVolts;
unsigned long etime, stime, ttime, xtime;

void setup() {
Serial.begin(9600);
display.begin();

display.clearDisplay();
display.display();

TCCR2B = TCCR2B & B11111000 | B00000100; //64 for Ferconcy PWM 490.20 Hz (Defults)

pinMode(READ_PIN, INPUT);
pinMode(ADJ_PIN, INPUT);
pinMode(PWM_PIN, OUTPUT);
pinMode(A3,OUTPUT);
digitalWrite(A3,LOW);

}

void loop() {

pwmVolts = analogRead(ADJ_PIN) / 4 ;
analogWrite(PWM_PIN, pwmVolts);

// Leidke esimene kord ( پیدا کردن زمان اول )
scnt = 0;
ecnt = 0;
etime = 0;
stime = 0;
while (scnt++ < 400) {
pos = analogRead(READ_PIN);
if (pos == 0) {
while (ecnt++ < 400) {
pos = analogRead(READ_PIN);
if (pos != 0) {
stime = micros();
break;
}
}
break;
}
}

// Leidke järgmise suurendamise aeg ja arvutage mahaarvamine (یافتن زمان افزایش بعدی و کسر محاسبه)
xtime = micros() – stime;
scnt = 0;
ecnt = 0;
while (scnt++ < 400) {
pos = analogRead(READ_PIN);
if (pos == 0) {
while (ecnt++ < 400) {
pos = analogRead(READ_PIN);
if (pos != 0) {
etime = micros();
break;
}
}
break;
}
}

// Arvutage kahe signaali vaheline aeg (محاسبه زمان بین دو سیگنال )

if (etime == 0 | stime == 0) {
ttime = -1000000;
}
else {
ttime = etime – stime – xtime;
}

for (x = 10; x <= 127; x++) {
data[x] = (analogRead(READ_PIN) / 21.7659);
}

 

display.clearDisplay();

for (x = 10; x <= 127; x++) {
display.drawLine(x , 63 – (data[x – 1]), x , 63 – (data[x]), SH110X_WHITE);
}
// Graafiku ja telje disain kuvamiseks (طراحی گراف و محور برای نمایش)
for (int y = 1; y < 10; y++) {
display.drawFastHLine(7, y * (53) / 5 + 0, 5, SH110X_WHITE);
}
display.setTextColor(SH110X_WHITE, SH110X_BLACK);
display.setTextSize(1);
display.setCursor(0, 55);
display.println(“0”);
display.setCursor(0, 8);
display.println(“5”);

display.drawFastHLine(10, 63, 128 – 10, SH110X_WHITE);
display.drawFastVLine(10, 10, 60, SH110X_WHITE);
display.display();
}

 

دانلود کد به صورت فایل آردوینو ( کلیک کنید )

پسورد فایل زیپ ( کپی کنید) : cws-electronic.online

 

4 thoughts on “ساخت اوسیلوسکوپ با آردوینو

  1. ایمان says:

    سلام مرسی از ارائه ی مطلب
    فقط باید دقت کرد که فرکانس نهایی آردوینو بر پایه avr نهایتا ۲۰۰ کیلوهرتز هست و این مقدار برای ساخت یه اوسیلوسکوپ واسه کارهای عمومی خیلی پایینه، چون واسه کارهای عمومی و ابتدایی ما به حداقل ۲.۵ مگاهرتز گیرندگی احتیاج داریم.
    اعلام این نکته خیلی مهم هست چون بچه‌ها میخوان واسه همین مقدار هم پول خرج کنن، باید بدونن که بیش از ۲۰۰ کیلو جواب نمیده

    • وب سایت cws says:

      با درود و سپاس از همراهی شما
      بله ما در آموزش مربوطه محدودیت هاش رو هم گفتیم که آموزشش در کانال یوتیوب ما منتشر شده

  2. ع.حامدی says:

    سلام
    تشکر و سپاس برای این مطالب عالی
    1- مقدار ولوم اعلام نفرمودید
    2- در فایل ضمیمه فقط کد موجوداست و دوفایل دیگر که در آموزش گفته شد وجود ندارند گرچه در آموزش توضیحات را فرمودید.

    • وب سایت cws says:

      با درود و وقت بخیر
      مورد رو بررسی میکنیم و به روز رسانی میشه
      لطفا چند روز دیگه برای دریافت فایل ها به سایت سربزنید
      در مورد ولوم مقدار یا 2 کیلو اهم و یا 5 کیلو اهم میتونید استفاده کنید
      با سپاس از همراهی شما

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *