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

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

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

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

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

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 ت


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

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



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


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 خود سنسور را بر روی نمایشگر دیگری نمایش داد.




36 : ساخت دماسنج بهمراه کنترل فن /Lm35 + Arduino

همانگونه که می دانید سنسور های مختلفی جهت نمایش دما در بازار موجود هستند که سنسور Lm35  به دلیل نسبت کیفیت به قیمت در جایگاه ویژه ای قرار دارد لذا در این شبیه سازی از این سنسور بمنظور نمایش دما استفاده شده است.

همانگونه که در عکس میبینید ، این شبیه سازی  دارای ویژگی های زیر است :

استفاده از برد َArduino

استفاده  از  سنسورLm35

 برنامه نویسی با زبان Arduino

شبیه سازی در محیط نرم افزار Proteus  



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

مبلغ : 350,000 R

آموزش 9 : نحوه کار با 7SEGMRNT در برنامه نویسی AVR

در این آموزش نحوه کار با 7SEGMRNT  و نحوه برنامه نویسی آن با میکرو کنترلرAVR آموزش داده شده است :


دانلود