شبیه سازی های درایو های الکتریکی

شبیه سازی های درایو های الکتریکی

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

شبیه سازی های درایو های الکتریکی

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

56 : شبیه سازی کانتر شمارش پالس توسط آردویینو



در این شبیه سازی از وقفه خارجی INT0  در اردویینو U9 جهت شمارش استفاده شده است

دستور وقفه بفرم زیر است :

attachInterrupt(interrupt, ISR, mode);

 

interrupt : شماره وقفه ای که میخواین ازش استفاده کنید، دو تا وقفه داریم، وقفه ۰ و ۱ (جدول بالا)
mode :
توسط این قسمت نوع تحریک شدن وقفه رو تعیین میکنیم، مثلا به ازای هر تغییر ولتاژی(CHANGE) وقفه رخ بده یا وقتی ولتاژ ۰ منطقی هستش(LOW) یا وقتی که ولتاژ ۱ منطقی هستش(HIGH) یا وقتی که از ۰ منطقی میریم به ۱ منطقی(RISING) و یا برعکس(FALLING)…..این کلمات پر رنگ رو بسته به نیازتون یکیشون و در mode قرار بدید.
ISR :
نام تابع وقفه، این نام اختیاری هستش، فقط شما این نامی که این جا میدید رو باس یه تابع تعریف کنید با این نام و کد هایی که دوس دارید در صورت تحریک شدن وقفه اجرا بشن رو توش قرار بدید.

 

لازم بذکر است که LCD  در این مدار I2C بوده و شکل مداری آن بفرم زیر است :

 


از کد زیر می توان جهت پیدا کردن آدرس تجهیز i2c استفاده کرد :

/*I2C_scanner

  This sketch tests standard 7-bit addresses.

  Devices with higher bit address might not be seen properly.*/

 

#include <Wire.h>

 

void setup() {

  Wire.begin();

 

  Serial.begin(9600);

  while (!Serial);

  Serial.println("\nI2C Scanner");

}

 

void loop() {

  byte error, address;

  int nDevices;

 

  Serial.println("Scanning...");

 

  nDevices = 0;

  for (address = 1; address < 127; address++ ) {

    Wire.beginTransmission(address);

    error = Wire.endTransmission();

 

    if (error == 0) {

      Serial.print("I2C device found at address 0x");

      if (address < 16)

        Serial.print("0");

      Serial.print(address, HEX);

      Serial.println("  !");

 

      nDevices++;

    }

    else if (error == 4) {

      Serial.print("Unknown error at address 0x");

      if (address < 16)

        Serial.print("0");

      Serial.println(address, HEX);

    }

  }

  if (nDevices == 0)

    Serial.println("No I2C devices found\n");

  else

    Serial.println("done\n");

 

  delay(5000);

}



شبیه سازی با نرم افزار PROTEUS & ARDUINO

  قیمت 15000 ت


22 : آموزش رسم منحنی موتور القایی در متلب

رسم منحنی گشتاور سرعت ماشین القایی
به نحوه نگارتش برنامه توجه کافی داشته باشید
حاوی نکات مهم برنامه نویسی پیشرفته متلب

% M-file: torque_speed_curve.m
% M-file create a plot of the torque-speed curve of the
% induction motor of Example 7-5.
% First, initialize the values needed in this program.
r1 = 0.641; % Stator resistance
x1 = 1.106; % Stator reactance
r2 = 0.332; % Rotor resistance
x2 = 0.464; % Rotor reactance
xm = 26.3; % Magnetization branch reactance
v_phase = 460 / sqrt(3); % Phase voltage
n_sync = 1800; % Synchronous speed (r/min)
w_sync = 188.5; % Synchronous speed (rad/s)
% Calculate the Thevenin voltage and impedance from Equations
% 7-41a and 7-43.
v_th = v_phase * ( xm / sqrt(r1^2 + (x1 + xm)^2) );
z_th = ((j*xm) * (r1 + j*x1)) / (r1 + j*(x1 + xm));
r_th = real(z_th);
x_th = imag(z_th);
% Now calculate the torque-speed characteristic for many
% slips between 0 and 1. Note that the first slip value
% is set to 0.001 instead of exactly 0 to avoid divide-
% by-zero problems.
s = (0:1:50) / 50; % Slip
s(1) = 0.001;
nm = (1 - s) * n_sync; % Mechanical speed
% Calculate torque for original rotor resistance
for ii = 1:51
t_ind1(ii) =(3 * v_th^2 * r2)./((w_sync.*s(ii).*((r_th+(r2./s(ii)).^2 + (x_th+x2)^2));
end
% Calculate torque for doubled rotor resistance
% Plot the torque-speed curve
plot(nm,t_ind1,'Color','k','LineWidth',2.0);
hold on;
xlabel('\itn_{m}','Fontweight','Bold');
ylabel('\tau_{ind}','Fontweight','Bold');
title ('Induction Motor Torque-Speed Characteristic','Fontweight','Bold');
legend ('Original R_{2}','Doubled R_{2}');
grid on;
hold off;

21 : آموزش راه اندازی سخت افزاری sim800L

بمنظور راه اندازی ماژول sim800L و ارتباط فیزیکی آن به ماژول آردویینو به مدار ابتدایی نیاز است لذا در این آموزش نحوه اتصال به همراه نحوه رفع عیوب احتمالی شرح داده شده است.



20 آموزش : تحلیل آزمون نظام مهندسی نظارت 95

تحلیل آزمون نظام مهندسی  نظارت 95










55 : پخش بار و شبیه سازی شبکه 4 باسه توسط نرم افزار ETAP

نرم افزار ETAP یکی از نرم افزار های پیشرفته در زیمینه طراحی خطوط  انتقال قدرت بوده که پخش بار یکی از این قابلیت ها می باشد.

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

شبکه تحت بررسی :


به همراه این فایل شبیه سازی یک فایل PDF  نیز که حاوی مراحل انجام شبیه سازی می باشد قرار دارد.

شبیه سازی با نرم افزار ETAP

 45000 ت

20 آموزش ساخت ریموت کنترل تلویزیون توسط آردویینو ARDUINO

در بازار ریموت هایی تولید شده که قابلیت کپی کردن ریموت را دارد و بلحاظ کارایی ، جایگاه ویژه ای برای خود در بازار، باز کرده است. نمونه ای از این ریموت ها را در شکل زیر مشاهده می نمایید :

در این آموزش می خواهیم اساس کارکرد این کنترل ها را بررسی نماییم.

دریافت کننده ریموت کنترل

ارتباطات اینفرارد INFRARED ( IR )  به طور گسترده در صنعت کنترل تلویزیون کاربر دارد.توسط گیرنده و فرستنده IR  شما می توانید پروژه های آردویینو را برنامه نویسی و نهایتا آنرا بسازید. قبل از برنامه نویسی لازمست در مورد اینفرارد توضیحاتی بدهیم :

اینفرارد چیست ؟

تابش اینفرارد فرمی از نور است همانند آن نوری که در محیط اطراف ماست.تنها تفاوت بین نور IR و نور مرئی در فرکانس و طول موج است. تابش مادون قرمز خارج از محدوده نور مرئی قرار دارد، بنابراین انسان نمی تواند آن را ببیند

از آنجایی که IR یک نوع نور است، ارتباط IR نیاز به یک خط دید مستقیم از گیرنده به فرستنده دارد. نمی تواند از طریق دیوارها یا سایر مواد مانند WiFi یا بلوتوث منتقل شود.

نحوه عملکرد ریموت ها و گیرنده های IR

یک سیستم ارتباطی معمولی مادون قرمز به یک فرستنده IR و یک گیرنده IR نیاز دارد. فرستنده دقیقاً مانند یک LED استاندارد به نظر می رسد، با این تفاوت که به جای طیف مرئی، نور را در طیف IR تولید می کند. اگر نگاهی به جلوی کنترل از راه دور تلویزیون بیندازید، LED فرستنده IR را خواهید دید:

از همین نوع LED در بردهای شکست فرستنده IR برای آردوینو استفاده می شود. می توانید آن را در جلوی این فرستنده IR Keyes ببینید:

گیرنده IR یک فتودیود و پیش تقویت کننده است که نور مادون قرمز را به سیگنال الکتریکی تبدیل می کند. دیودهای گیرنده IR معمولاً به شکل زیر هستند:

مدولاسیون سیگنال IR

نور مادون قرمز توسط خورشید، لامپ ها و هر چیز دیگری که گرما تولید می کند ساطع می شود. این بدان معناست که نویز نور IR زیادی در اطراف ما وجود دارد. برای جلوگیری از تداخل این نویز با سیگنال IR، از تکنیک مدولاسیون سیگنال استفاده می شود. در مدولاسیون سیگنال IR، یک رمزگذار روی کنترل از راه دور IR یک سیگنال باینری را به یک سیگنال الکتریکی مدوله شده تبدیل می کند. این سیگنال الکتریکی به LED فرستنده ارسال می شود. LED فرستنده سیگنال الکتریکی مدوله شده را به سیگنال نور مادون قرمز مدوله شده تبدیل می کند. سپس گیرنده IR سیگنال نور مادون قرمز را دمدوله می کند و قبل از اینکه اطلاعات را به یک میکروکنترلر ارسال کند، آن را به باینری تبدیل می کند:



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


پروتکل های انتقال IR

الگویی که در آن سیگنال IR مدوله شده به باینری تبدیل می شود توسط یک پروتکل انتقال تعریف می شود. پروتکل های انتقال IR زیادی وجود دارد. سونی، ماتسوشیتا، NEC و RC5 برخی از پروتکل های رایج هستند. پروتکل NEC نیز رایج ترین نوع در پروژه های آردوینو است، بنابراین من از آن به عنوان مثال استفاده می کنم تا به شما نشان دهم که چگونه گیرنده سیگنال مادون قرمز مدوله شده را به یک باینری تبدیل می کند. «1» منطقی با یک پالس IR به طول 562.5 میکروثانیه با فرکانس IR 38 کیلوهرتز و سپس یک پالس LOW با طول 1687.5 میکرو ثانیه شروع می‌شود. "0" منطقی با یک پالس HIGH 562.5 میکروثانیه و به دنبال یک پالس LOW با طول 562.5 µs ارسال می شود:


به این صورت است که پروتکل NEC داده های باینری را به یک سیگنال مدوله شده رمزگذاری و رمزگشایی می کند. پروتکل های دیگر فقط در مدت زمان تک تک پالس های HIGH و LOW متفاوت هستند. کدهای IR هر بار که دکمه ای را بر روی کنترل از راه دور فشار می دهید، یک کد هگزادسیمال منحصر به فرد ایجاد می شود. این اطلاعاتی است که مدوله شده و از طریق IR به گیرنده ارسال می شود. برای اینکه بفهمد کدام کلید فشرده شده است، میکروکنترلر گیرنده باید بداند کدام کد مربوط به هر کلید روی کنترل از راه دور است. ریموت‌های مختلف کدهای متفاوتی را برای فشار دادن کلیدها ارسال می‌کنند، بنابراین باید کد تولید شده برای هر کلید را روی کنترل از راه دور خاص خود تعیین کنید. اگر می توانید دیتاشیت را پیدا کنید، کدهای کلید IR باید فهرست شوند. اگر نه، یک طرح ساده آردوینو وجود دارد که اکثر کنترل های از راه دور محبوب را می خواند و با فشار دادن یک کلید، کدهای هگزا دسیمال را روی نمایشگر سریال چاپ می کند. من به شما نشان خواهم داد که چگونه آن را در یک دقیقه تنظیم کنید، اما ابتدا باید گیرنده را به آردوینو وصل کنیم… نحوه اتصال گیرنده IR به آردوینو انواع مختلفی از گیرنده های IR وجود دارد، برخی به صورت مستقل هستند و برخی بر روی یک برد شکسته نصب می شوند. برگه اطلاعات گیرنده IR خاص خود را بررسی کنید زیرا ممکن است پین ها متفاوت از گیرنده IR HX1838 و مجموعه راه دوری که من در اینجا استفاده می کنم ترتیب داده شوند.

با این حال، تمام گیرنده های IR دارای سه پایه هستند: سیگنال، زمین و Vcc. بیایید با اتصالات سخت افزاری شروع کنیم. چیدمان پین در اکثر تابلوهای شکست مانند این است:

پین اوت اکثر دیودهای مستقل به شرح زیر است:

برای اتصال گیرنده مادون قرمز برروی برد، آن را به صورت زیر به آردوینو متصل کنید:

برنامه نویسی گیرنده IR هنگامی که گیرنده را وصل کردید، می توانیم کتابخانه آردوینو را نصب کرده و برنامه نویسی را شروع کنیم. در مثال‌های زیر به شما نشان می‌دهم که چگونه کدهای ارسال شده توسط ریموت خود را پیدا کنید، چگونه پروتکل IR مورد استفاده توسط ریموت خود را پیدا کنید، چگونه فشارهای کلیدی را روی نمایشگر سریال یا LCD چاپ کنید و در نهایت، چگونه کنترل کنید. پین های خروجی آردوینو با ریموت. کتابخانه IRremote را نصب کنید ما از کتابخانه IRremote برای همه نمونه کدهای زیر استفاده خواهیم کرد. شما می توانید فایل ZIP کتابخانه را از اینجا دانلود کنید.

برای نصب کتابخانه از فایل ZIP، Arduino IDE را باز کنید، سپس به Sketch > Include Library > Add .ZIP Library بروید، سپس فایل ZIP IRremote را که از لینک بالا دانلود کرده اید انتخاب کنید. کدهای مربوط به ریموت خود را پیدا کنید برای پیدا کردن کدهای کلیدی برای کنترل از راه دور، این کد را در آردوینو خود آپلود کنید و مانیتور سریال را باز کنید:


#include <IRremote.h>

const int RECV_PIN = 7;
IRrecv irrecv(RECV_PIN);
decode_results results;

void setup(){
  Serial.begin(9600);
  irrecv.enableIRIn();
  irrecv.blink13(true);
}

void loop(){
  if (irrecv.decode(&results)){
        Serial.println(results.value, HEX);
        irrecv.resume();
  }
}
حالا هر کلید را روی ریموت فشار دهید و کد هگزادسیمال چاپ شده برای هر کلید را ضبط کنید.

با استفاده از برنامه بالا، جدولی از کلیدها و کدهای مربوط به آنها را از کنترلی که با گیرنده مادون قرمز و مجموعه راه دور HX1838 ارائه شده بود، استخراج کردم. توجه داشته باشید که با فشار دادن مداوم یک کلید، یک کد 0XFFFFFFFF دریافت خواهید کرد.

 Key Code
 CH- 0xFFA25D
 CH 0xFF629D
 CH+ 0xFFE21D
 << 0xFF22DD
 >> 0xFF02FD
 >|| 0xFFC23D
 – 0xFFE01F
 + 0xFFA857
 EQ 0xFF906F
 100+ 0xFF9867
 200+ 0xFFB04F
 0 0XFF6897
 1 0xFF30CF
 2 0xFF18E7
 3 0xFF7A85
 4 0xFF10EF
 5 0xFF38C7
 6 0xFF5AA5
 7 0xFF42BD
 8 0xFF4AB5
 9 0xFF52AD

پروتکل مورد استفاده توسط ریموت خود را پیدا کنید

اگر می‌خواهید روی پروژه‌های پیشرفته‌تری کار کنید، دانستن اینکه ریموت شما از کدام پروتکل استفاده می‌کند می‌تواند مفید باشد. یا ممکن است فقط کنجکاو باشید. برنامه زیر پروتکل مورد استفاده توسط ریموت شما را شناسایی می کند. حتی باید روی اکثر کنترل های از راه دور خانه شما کار کند.

#include <IRremote.h>

const int RECV_PIN = 7;
IRrecv irrecv(RECV_PIN);
decode_results results;

void setup(){
  Serial.begin(9600);
  irrecv.enableIRIn();
  irrecv.blink13(true);
}

void loop(){
  if (irrecv.decode(&results)){
        Serial.println(results.value, HEX);
        switch (results.decode_type){
            case NEC: Serial.println("NEC"); break ;
            case SONY: Serial.println("SONY"); break ;
            case RC5: Serial.println("RC5"); break ;
            case RC6: Serial.println("RC6"); break ;
            case DISH: Serial.println("DISH"); break ;
            case SHARP: Serial.println("SHARP"); break ;
            case JVC: Serial.println("JVC"); break ;
            case SANYO: Serial.println("SANYO"); break ;
            case MITSUBISHI: Serial.println("MITSUBISHI"); break ;
            case SAMSUNG: Serial.println("SAMSUNG"); break ;
            case LG: Serial.println("LG"); break ;
            case WHYNTER: Serial.println("WHYNTER"); break ;
            case AIWA_RC_T501: Serial.println("AIWA_RC_T501"); break ;
            case PANASONIC: Serial.println("PANASONIC"); break ;
            case DENON: Serial.println("DENON"); break ;
          default:
            case UNKNOWN: Serial.println("UNKNOWN"); break ;
          }
        irrecv.resume();
 }
}

کلیدهای مانیتور سریال را چاپ کنید

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

#include <IRremote.h>

const int RECV_PIN = 7;
IRrecv irrecv(RECV_PIN);
decode_results results;
unsigned long key_value = 0;

void setup(){
  Serial.begin(9600);
  irrecv.enableIRIn();
  irrecv.blink13(true);
}

void loop(){
  if (irrecv.decode(&results)){
 
        if (results.value == 0XFFFFFFFF)
          results.value = key_value;

        switch(results.value){
          case 0xFFA25D:
          Serial.println("CH-");
          break;
          case 0xFF629D:
          Serial.println("CH");
          break;
          case 0xFFE21D:
          Serial.println("CH+");
          break;
          case 0xFF22DD:
          Serial.println("|<<");
          break;
          case 0xFF02FD:
          Serial.println(">>|");
          break ;  
          case 0xFFC23D:
          Serial.println(">|");
          break ;               
          case 0xFFE01F:
          Serial.println("-");
          break ;  
          case 0xFFA857:
          Serial.println("+");
          break ;  
          case 0xFF906F:
          Serial.println("EQ");
          break ;  
          case 0xFF6897:
          Serial.println("0");
          break ;  
          case 0xFF9867:
          Serial.println("100+");
          break ;
          case 0xFFB04F:
          Serial.println("200+");
          break ;
          case 0xFF30CF:
          Serial.println("1");
          break ;
          case 0xFF18E7:
          Serial.println("2");
          break ;
          case 0xFF7A85:
          Serial.println("3");
          break ;
          case 0xFF10EF:
          Serial.println("4");
          break ;
          case 0xFF38C7:
          Serial.println("5");
          break ;
          case 0xFF5AA5:
          Serial.println("6");
          break ;
          case 0xFF42BD:
          Serial.println("7");
          break ;
          case 0xFF4AB5:
          Serial.println("8");
          break ;
          case 0xFF52AD:
          Serial.println("9");
          break ;      
        }
        key_value = results.value;
        irrecv.resume(); 
  }
}

اگر ریموت شما کدهای متفاوتی با کدهای جدول بالا ارسال می کند، کافی است کد هگز را در هر خطی که می گوید:

case 0xFFA25D:
Serial.println(“CH-“);
در این خطوط، زمانی که کد هگز 0xFFA25D دریافت می شود، آردوینو "CH-" را چاپ می کند. کد چگونه کار می کند برای هر ارتباط IR با استفاده از کتابخانه IRremote، ابتدا باید یک شی به نام irrecv ایجاد کنیم و شماره پین ​​محل اتصال گیرنده IR را مشخص کنیم (خط 3). این شی از پروتکل و پردازش اطلاعات از گیرنده مراقبت می کند. مرحله بعدی ایجاد یک شی به نام results، از کلاس decode_results است که توسط شی irrecv برای به اشتراک گذاشتن اطلاعات رمزگشایی شده با برنامه ما استفاده می شود (خط 5). در بلوک void setup() ابتدا نرخ باود مانیتور سریال را پیکربندی می کنیم. سپس گیرنده IR را با فراخوانی تابع عضو IRrecv enableIRIn() (خط 10) شروع می کنیم. عملکرد irrecv.blink13 (true) در خط 11 هر بار که گیرنده سیگنالی از کنترل از راه دور دریافت می کند، LED آردوینو را چشمک می زند که برای اشکال زدایی مفید است. در بلوک void loop() تابع irrecv.decode در صورت دریافت کد true برمی گردد و برنامه کد را در دستور if اجرا می کند. کد دریافتی در results.value ذخیره می شود. سپس از یک سوئیچ برای مدیریت هر کد IR و چاپ مقدار کلید مربوطه استفاده کردم. قبل از شروع بلوک سوئیچ یک بلوک شرطی وجود دارد:

if (results.value == 0XFFFFFFFF)
results.value = key_value;

اگر 0XFFFFFFFF را از ریموت دریافت کنیم به معنای تکرار کلید قبلی است. بنابراین برای مدیریت الگوی کلید تکرار، هر بار که یک کد دریافت می‌شود، کد هگز را در یک متغیر جهانی key_value ذخیره می‌کنم: key_value = results.value; هنگامی که یک الگوی تکرار دریافت می کنید، سپس مقدار ذخیره شده قبلی به عنوان فشار کلید فعلی استفاده می شود. در انتهای بخش void loop() irrecv.resume() را فراخوانی می کنیم تا گیرنده ریست شود و برای دریافت کد بعدی آماده شود.


چاپ کلیدهای LCD به جای چاپ مقادیر کلیدی در مانیتور سریال، می توانید اطلاعات را روی LCD نیز نمایش دهید. برای اطلاعات بیشتر در مورد برنامه نویسی LCD، مقاله ما را در مورد راه اندازی و برنامه نویسی LCD در آردوینو بررسی کنید، اما تنظیمات اولیه به این صورت است:
مقاومت روشنایی نور پس زمینه LCD را تنظیم می کند. می تواند از 200 اهم تا حدود 2K اهم باشد. پتانسیومتر کنتراست کاراکتر را تنظیم می کند. من معمولاً از یک پتانسیومتر 10K اهم برای این یکی استفاده می کنم.

پس از اتصال همه چیز، این کد را در آردوینو آپلود کنید:
#include <IRremote.h>
#include <LiquidCrystal.h>

const int RECV_PIN = 7;
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
IRrecv irrecv(RECV_PIN);
decode_results results;
unsigned long key_value = 0;

void setup(){
  Serial.begin(9600);
  irrecv.enableIRIn(); 
  irrecv.blink13(true);
  lcd.begin(16, 2);
}

void loop(){
  if (irrecv.decode(&results)){
 
        if (results.value == 0XFFFFFFFF)
        results.value = key_value;
        lcd.setCursor(0, 0);
        lcd.clear();
        
        switch(results.value){
          case 0xFFA25D:          
          lcd.print("CH-");
          break;
          case 0xFF629D:
          lcd.print("CH");
          break;
          case 0xFFE21D:
          lcd.print("CH+");
          break;
          case 0xFF22DD:
          lcd.print("|<<");
          break;
          case 0xFF02FD:
          lcd.print(">>|");
          break ;  
          case 0xFFC23D:
          lcd.print(">|");
          break ;               
          case 0xFFE01F:
          lcd.print("-");
          break ;  
          case 0xFFA857:
          lcd.print("+");
          break ;  
          case 0xFF906F:
          lcd.print("EQ");
          break ;  
          case 0xFF6897:
          lcd.print("0");
          break ;  
          case 0xFF9867:
          lcd.print("100+");
          break ;
          case 0xFFB04F:
          lcd.print("200+");
          break ;
          case 0xFF30CF:
          lcd.print("1");
          break ;
          case 0xFF18E7:
          lcd.print("2");
          break ;
          case 0xFF7A85:
          lcd.print("3");
          break ;
          case 0xFF10EF:
          lcd.print("4");
          break ;
          case 0xFF38C7:
          lcd.print("5");
          break ;
          case 0xFF5AA5:
          lcd.print("6");
          break ;
          case 0xFF42BD:
          lcd.print("7");
          break ;
          case 0xFF4AB5:
          lcd.print("8");
          break ;
          case 0xFF52AD:
          lcd.print("9");
          break ;                   
        }
        key_value = results.value;
        irrecv.resume(); 
  }
}
مجدداً، اگر کدهای هگزا با کدهای خروجی ریموت شما مطابقت ندارند، کافی است آنها را برای هر کاراکتری که در آن نوشته شده است 0xXXXXXXXXXX; جایگزین کنید.

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

مدار مثال دارای گیرنده IR متصل به آردوینو است که یک LED قرمز به پایه 10 و یک LED سبز به پایه 11 متصل است:

کد زیر با فشردن دکمه «5» به مدت 2 ثانیه پین دیجیتال 10 HIGH و با فشار دادن دکمه «2» پین دیجیتال 11 HIGH را به مدت 2 ثانیه می نویسد:

#include <IRremote.h>

const int RECV_PIN = 7;
IRrecv irrecv(RECV_PIN);
decode_results results;
const int redPin = 10;
const int greenPin = 11;


void setup(){
  irrecv.enableIRIn();
  irrecv.blink13(true);
  pinMode(redPin, OUTPUT);
  pinMode(greenPin, OUTPUT);
}

void loop(){
    if (irrecv.decode(&results)){

        switch(results.value){
          case 0xFF38C7: //Keypad button "5"
          digitalWrite(redPin, HIGH);
          delay(2000);
          digitalWrite(redPin, LOW);
          }

        switch(results.value){
          case 0xFF18E7: //Keypad button "2"
          digitalWrite(greenPin, HIGH);
          delay(2000);
          digitalWrite(greenPin, LOW);
          }

        irrecv.resume(); 
    }
}
تا اینجا به خواص تابش مادون قرمز و چگونگی ارتباط بین فرستنده و گیرنده پرداختیم. ما دیدیم که چگونه کدهای کلید IR را برای یک کنترل از راه دور مشخص شناسایی کنیم. ما یاد گرفتیم که چگونه فشار دادن کلید را روی مانیتور سریال و روی صفحه LCD نمایش دهیم. در نهایت به شما نشان دادم که چگونه خروجی آردوینو را با ریموت کنترل کنید. از بازی با این لذت ببرید و اگر سوالی دارید یا مشکلی در تنظیم آن دارید حتما در نظرات به ما اطلاع دهید!

منابع :

منبع 1

منبع 2


از سری ای سی های استفاده شده در بازار نصب شده روی  ریموت های تلویزیون و دیگر دستگاه ها می توان به مدل زیر اشاه کرد :

GW6122


19 آموزش کد دهی به ریموت بلوتوثی

ریموت کنترلر ها در اکثر اماکن مورد استفاده قرار می گیرند نظیر انواع دزدگیر اماکن یا خودرو ها ، درب باز کن های برقی و...

ابتدایی ترین مدل ریموت تحت عنوان FIX CODE  شناخته می شدند.

پس از آن ریموت های لرن مورد استفاده قرار گرفتند که کد آنها قابل تغییر نبوده و ریموت تکراری در این مدل بندرت مشاهده می شود .

فرکانس کاری آنها معمولا 315 کیلو هرتز یا 433 کیلو هرتز بوده

بمنظور ارتباط با دستگاه گیرنده بایستی ریموت جداگانه تعریف گردد که این کار توسط دکمه لرن دستگاه گیرنده امکان پذیر است.

اما مدتی است که ریموت های با قابلیت خواندن و نوشتن تولید شده تحت عنوان ریموت های بلوتوثی

این ریموت ها قابلیت خواندن اطلاعات ارسالی یک ریموت لرن را داشته فلذا این اطلاعات را در خود ذخیره کرده و سپس آنها را ارسال می کند:

در مدل فلزی :

بمنظور پاک کردن اطلاعات بایستی همزمان کلید قفل و باز را گرفته تا LED  شروع به چشمک زدن کند

سپس دست را از روی شاسی باز برداشته و سه بار این شاسی را مجدد فشار می دهیم

سپس نحوه چشمک زدن تغییر کرده و ریموت پاک می شود.

منبعد با زدن هر دکمه ریموت ، LED  روشن نمی شود تا کد جدید تعریف شود.


در مدل طرح چوب :

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


کد دهی :

بمنظور کد دهی بایستی ابتدا فرکانس کاری دو ریموت مشخص شود و پس از آن از ریموت های هم فرکانس استفاده کنیم

سپس با گرفتن دکمه مورد نظر از ریموت مادر  در کنار ریموت بلوتوثی ، دکمه ای که قرار است در ریموت بلوتوثی کپی شود را فشرده تا پس از سه ثانیه ریموت کپی شود.


پیشنهاد :

از این ریموت جهت باز کردن درب نفر رو مجتمع های مسکونی می توان استفاده نمود.

54 شبیه سازی مدار های صنعتی در نرم افزار EKTS

در نرم افزار EKTS  که بمنظور طراحی مدار های صنعتی نظیر کنتاکتور و کلید های STOP_START و ... ساخته شده است ، می توان جهت شبیه سازی مدار های فرمان و قدرت استفاده نمود .

در این شبیه سازی تعدادی از مدارات قدرت و فرمان بمنظور شبیه سازی آماده شده که لیست آن بشرح ذیل می باشد :

02 مدار راه انداز لحظه ای

03 مدار راه انداز دایم

04 مدارددستگاه پرس

05 مدار کنترل از دو محل

06 مدار یکی پس از دیگری دستی

07 مدار یکی پس از دیگری اتوماتیک

08 مدار یکی بدون دیگری دستی

09 مدار یکی بدون دیگری اتوماتیک

12 مدار چپگرد راستگرد1

14 مدار چپگرد راستگرد2

16 مدار ستاره مثلث دستی

17 مدار ستاره مثلت اتوماتیک

شبیه سازی با نرم افزار EKTS

 45000 ت


53 نحوه تولید میدان گردان در استاتور موتور الکتریکی سه فاز

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


ولی در ماشین های سه فاز میدان گردان تولید می شود که نحوه تولید آن در این مقاله آموزش داده شده است.

 یک فایل PDF شامل 5 صفحه

مبلغ : 50,000 R

52 راه اندازی سنسور اولتراسونیک MICROSONIC ULTRASONIC توسط آردویینو

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

سنسور اولتراسونیک MICROSONIC  بسته به مسافت اندازه گیری در 5 مدل ساخته شده است :

DISTANCE

MODEL

3 cm : 35 cm

MIC+25

6.5 cm : 60 cm

MIC+35

20 cm : 2 m

MIC+130

35 cm : 5 m

MIC+340

60 cm:6 m

MIC+600

خروجی این سنسور ها معمولا هم ولتاژی است و هم جریانی

لذا با یک برنامه نویسی ساده می توان مقادیر نمایشی بر روی 7SEGMENT خود سنسور را بر روی نمایشگر دیگری نمایش داد.




51 ترسیم میدان های الکتریکی یک دو قطبی الکتریکی در نرم افزار MATLAB

همانگونه که میدانید یک دو قطبی الکتریکی به مجموعه دو بار نقطه ای مساوی و مختلف العلامت گفته می شود که فاصله آنها از هم نسبت به فاصله شان از نقطه P  که مقدار میدان های الکتریکی و پتانسیل آن مورد نظر ماست کم می باشد .

خطوط شار برای میدان های الکتریکی  و نیز خطوط هم پتانسیل طبق شکل زیر خواهد بود.




برای ترسیم میدان های الکتریکی در نرم افزار متلب لازم است معادله این خطوط را داشته باشیم لذا در ابتدا از معادلات ولتاژ استفاده نموده و پس از گرادیان گیری از این معادلات به خطوط میدان خواهیم رسید .

این معادلات در مختصات کروی محاسبه شده و ترسیم خواهند شد.

در ادامه برنامه معادلات میدان های الکتریکی در مختصات کروی را به دکارتی تبدیل نموده و نهایتا شکل ها ترسیم خواهند شد.

شبیه سازی با نرم افزار MATLAB

به همراه یک فایل PDF شامل 6 صفحه

مبلغ : 350,000 R



18 آموزش تحلیل شبکه های از دو سو تغذیه و کد نویسی در متلب

در شبکه های از دو سو تغذیه بمنظور تحلیل مدار ( افت ولتاژ هر خط - ولتاژ هر باس  و جریان هر مسیر ) می توان با استفاده از قانون kvl  استفاده نمود در شکل زیر نمونه ای از شبکه از دو سو تغذیه را مشاهده می کنید.

بمنظور تحلیل ای مدار کافی است ابتدا مدار را از نقطه ابتدایی باز کنیم و جریان هر خط را بر روی آن با استفاده از قانون kcl  مشخص کنیم:


حال با زدن یک kvl ساده می توان مدار را تحلیل کرد . در این بخش از آموزش با استفاده از کد نویسی متلب می خواهیم مدار را تحلیل کنیم :


17 آموزش : نحوه ساخت کلید چنج آور اتوماتیک تکفاز ( نقشه مداری کلید چنج آور )

بمنظور برقراری و تامین برق ثانویه نیاز به یک تابلویی به نام ATS(AUTOMATIC TRANSFER SWITCH )  می باشد که توسط این تابلو می توان تعیین کرد تا زمانیکه برق شهر در مدار هست مصرف کننده از این برق استفاده کند و در غیر این صورت منبع ثانویه ( ژنراتور یا UPS ) در مدار قرار گیرند . در این تابلو باید وقفه ای بمنظور عدم تداخل دو فاز قرار گیرد لذا از دو تایمر نیز در این مدار استفاده کرده ایم. در این ویدیو شما با نحوه ترسیم و تحلیل مدار آشنا خواهید شد


50 شبیه سازی ماشین القایی به همراه کنترلر pi بمنظور کنترل سرعت

تغییر در سرعت ماشین های القایی توسط تغییر در فرکانس انجام می شود. ولی در حین تغییر فرکانس باید نسبت v/f ثابت باشد تا شار در هسته بالا یا پایین نرود. بدین منظور روشی جهت تنظیم سرعت ماشین القایی توسط کنترلر pi  در نرم افزار psim طراحی گردیده است .


شماتیک مدار :

پاسخ سرعت :

شبیه سازی با نرم افزار psim

مبلغ : 450,000 R

تخفیف

توجه :

کلیه پروژه های وبلاگ برای 

مهر

۱۴۰۰

با

  ۲۵درصد تخفیف 

لحاظ می گردد



16 : آموزش ساخت برد شارژر چراغ اضطراری

در این بخش نحوه ساخت شارژر اتوماتیک باتری لیتیوم به همراه نحوه اتصال باتری به صفه LED  با ولتاژ کاری 4 ولت آموزش داده خواهد شد:

باتری شارژر لیتیوم :

دقت کنید پایه های ورودی این برد را بصورت جابجا وصل نکنید تا منجر بود سوختن برد نگردد.

رله :

مدار :




مدار چاپی :

15 آموزش : تحلیل آزمون نظام مهندسی مرداد 1400 نظارت












49 شبیه سازی اینورتر تکفاز کنترل کننده جریان توسط کنترل کننده PID

اینورتر های تکفاز معمولا توسط H-BRIDGE   که شامل 4 سوییچ می باشد ، کنترل می شوند روش مرسوم در مورد کنترل گیت های این سوییچ ها روش PWM است که  در آن یک موج سینوسی با یک موج دندانه  اره ای با فرکانس حداقل 10 برابر فرکانس شکل موج اصلی مقایسه می شود و خروجی مقایسه کننده به عنوان کنترل کننده گیت  می باشد. در این شبیه سازی ما جهت کنترل گیت ها  از کنترلر PID  به همراه مقایسه کننده باند هیسترزیس بهره می گیریم  که شکل مدار بفرم زیر می باشد :

نتیجه شبیه سازی :

شبیه سازی با نرم افزار matlab

  25000 ت

48 شمارنده زوج شمار نزولی 3 بیتی یا 4 بیتی

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

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

مدار :

شبیه سازی با نرم افزار PROTEUS

بهمراه فایل آموزشی  pdf
  15000 ت