الأربعاء، 18 سبتمبر 2019

التحكم بسيرفو موتور بواسطة ريموت كونترول مع الاردوينو -Servo Motor Control with Remote

المواد المطلوبة

اردوينو اونو او جينون
سرفو موتور
مستقبلة ir

حول هذا المشروع

من خلال مشروع Arduino البسيط هذا ، يمكنك التحكم في الماكينة باستخدام جهاز التحكم عن بُعد. كل ما تحتاجه هو لوحة Arduino Uno (أو ما شابه) ، ومحرك سرفو  وجهاز تحكم عن بعد في التلفزيون وجهاز استقبال IR (TS0P1738) وقطعة صغيرة من الورق المقوى.

هيا بنا نبدأ!

أول ما نحتاج إلى القيام به مع اردوينو هو تنزيل مكتبة الأشعة تحت الحمراء.

قم بتنزيل مكتبة IR من الرابط أدناه وتثبيتها:
هنــــــــــــــــــــــــــا

إذا كنت لا تعرف كيفية تثبيت مكتبة ، اتبع الرابط أدناه:
التعليمات

تحتاج أولاً إلى توصيل الأجزاء وفقًا لمخطط الدائرة المعطى:



يمكنك الخروج من TSOP1738 أدناه:



استخدم الكود التالي لفك تشفير IR remote:

/*The IR sensor's pins are attached to Arduino as so:Pin 1 to Vout (pin 11 on Arduino)Pin 2 to GNDPin 3 to Vcc (+5v from Arduino)*/#include <IRremote.h>int IRpin = 11;IRrecv irrecv(IRpin);decode_results results;void setup(){Serial.begin(9600); irrecv.enableIRIn(); // Start the receiver}void loop() { if (irrecv.decode(&results))    {     Serial.println(results.value, DEC); // Print the Serial 'results.value'     irrecv.resume();   // Receive the next value   }}



افتح Arduino IDE ورفع الكود

فتح سيريال مونيتر على برنامج الاردوينو
في جهاز التحكم عن بعد في المستشعر واضغط على كل الازرار
تستطيع أن ترى أرقام مختلفة لكل زر
النظر في أي اثنين من الأزرار ، وتدوين القيم فك الشفرة. في حالتي لقد اخترت زر الطاقة وزر الوضع.

حصلت على القيم التالية:

زر الطاقة = 33441975
زر الوضع = 33446055
سنستخدم هاتين القيمتين للتحكم في دوران محرك سيرفو. ستحتاج إلى إضافة هذه القيمتين في البرنامج الذي يتم تقديمه في الخطوة التالية:

الدائرة النهائية!


كود برمجة الاردوينو

#include <IRremote.h>
#include <Servo.h>
int IRpin = 11;  // pin for the IR sensor
IRrecv irrecv(IRpin);
decode_results results;
Servo myservo;
void setup()
{
 Serial.begin(9600);
 irrecv.enableIRIn(); // Start the receiver
 myservo.attach(9);  // attaches the servo on pin 9 to the servo object
}
void loop() 
{
 if (irrecv.decode(&results)) 
   {
     irrecv.resume();   // Receive the next value
   }
  if (results.value == 33441975)  // change according to your IR remote button number
    {
      myservo.write(0);
      delay(15);
    }
    if (results.value == 33446055)  // change according  to your IR remote button number
    {
      myservo.write(30);
    delay(15);

الاثنين، 6 مايو 2019

عرض في ورقة Excel باستخدام RFID-RC522

RFID-RC522 مع Arduino UNO وحفظ المعلومات حول البطاقات في ملف Excel.

المواد المستخدمة

اردوينو اونو او جينون

R fid tags

يعتمد هذا المشروع على حضور RFID ، وقد استعملت هنا Arudino uno كوحدة تحكم. ويمكن استخدام هذا لضمان وصول جميع الموظفين في الشركة في الوقت المناسب يوميًا وحفظ ملف Excel حيث يتم تخزين الأسماء وكل رقم فريد عند تخزين جميع الموظفين لقد حضروا


الربط
يتم الاتصال وفقا للرسم البياني معين.

الآن فتح Arudino IDE ، وتشمل ملفات المكتبة

include <SPI.h>

include <MFRC522.h>

#include <TimeLib.h>

بعد ذلك open-> مثال -> MFRC522 -> rfid قراءة البيانات الشخصية

بعد تشغيل الشفرة أعلاه ، افتح الشاشة التسلسلية وإظهار العلامة rfid للقارئ ، ثم يوفر معرف كل العلامات.




في المرفقات التي حمّلتها الكود المصدري ، أضف معرّف البطاقة إليه.

قم بتشغيل الكود وافتح الشاشة التسلسلية

سيتم الكشف عن معرف البطاقة ، ثم إغلاق الشاشة التسلسلية

انتقل إلى PLX-DAQ (الحصول على البيانات لـ excel) ، قم بتوصيل منفذ COMB ، والآن قم بإظهار علامة RFID ، سيتم طباعة تفاصيل الموظفين.


كود البرمجة

#include <SPI.h>
#include <MFRC522.h>
#include <TimeLib.h>

#define SS_PIN 10 
#define RST_PIN 9

MFRC522 mfrc522(SS_PIN, RST_PIN); 
String card_ID=""; 

//Add as many cards you want 
String Name1="89 48 C9 2F";
String Name2="12122112947";
String Name3="15353114169";
String Name4="13937143185";
String Name5="79 DD 81 2F";
String Name6="89 48 C9 2F";

int NumbCard[6];
int j=0;  
int statu[6];
int s=0;  

int const RedLed=6;
int const GreenLed=5;
int const Buzzer=8;

String Log;
String Name;
long Number;
int n ;
int ID=1;
void setup() {
  setTime(20,0,0,3,30,2019);
  Serial.begin(9600);
  SPI.begin();  
  mfrc522.PCD_Init(); 
  
  Serial.println("CLEARSHEET");                
  Serial.println("LABEL,ID,Date,Name,Number,Card ID,Time IN,Time OUT");
  pinMode(RedLed,OUTPUT);
  pinMode(GreenLed,OUTPUT);
  pinMode(Buzzer,OUTPUT);
  setTime(20,0,0,3,30,2019);
  

  delay(200);
   }
   
void loop() {
  
   if ( ! mfrc522.PICC_IsNewCardPresent()) {
  return;
 }
 
 if ( ! mfrc522.PICC_ReadCardSerial()) {
  return;
 }

 for (byte i = 0; i < mfrc522.uid.size; i++) {
     card_ID += mfrc522.uid.uidByte[i];
 }
 
 Serial.println(card_ID);
 
       if(card_ID==Name1){
       Name="First employee";
       Number="79 DD 81 2F";
       j=0;
       s=0;
      }
      else if(card_ID==Name2){
       Name="Second employee";
       Number=789101;
       j=1;
       s=1;
      }
      else if(card_ID==Name3){
       Name="Third employee";
       Number=789101;
       j=2;
       s=2;
      }
      else if(card_ID==Name4){
       Name="Fourth employee";
       Number=789101;
       j=3;
       s=3;
      }
      else if(card_ID==Name5){
       Name="Fiveth employee";
       Number=789101;
       j=4;
       s=4;
      }
      else if(card_ID==Name6){
       Name="Sixth employee";
       Number=789101;
       j=5;
       s=5;
      }
      else{
          digitalWrite(GreenLed,LOW);
          digitalWrite(RedLed,HIGH);
          goto cont;
     }

      if(NumbCard[j] == 1 && statu[s] == 0){
      statu[s]=1;
    
      Serial.print("DATA,");
      Serial.print(ID);
      Serial.print(",");
      Serial.print("DATE");
      Serial.print(",");
      Serial.print(Name);
      Serial.print(",");
      Serial.print(Number); 
      Serial.print(",");
      Serial.print(card_ID); 
      Serial.print(",");
      Serial.print("");
      Serial.print(",");
      Serial.println("TIME");
      ID=ID+1;
      digitalWrite(GreenLed,HIGH);
      digitalWrite(RedLed,LOW);
      digitalWrite(Buzzer,HIGH);
      delay(30);
      digitalWrite(Buzzer,LOW);
      }
      else if(NumbCard[j] == 0){
      NumbCard[j] = 1;
      
      n++;
    
      Serial.print("DATA,");
      Serial.print(ID);
      Serial.print(",");
      Serial.print("DATE");
      Serial.print(",");
      Serial.print(Name);
      Serial.print(",");
      Serial.print(Number); 
      Serial.print(",");
      Serial.print(card_ID); 
      Serial.print(",");
      Serial.print("TIME");
      Serial.print(",");
      Serial.println("");
      digitalWrite(GreenLed,HIGH);
      digitalWrite(RedLed,LOW);
      digitalWrite(Buzzer,HIGH);
      delay(30);
      digitalWrite(Buzzer,LOW);
      ID=ID+1;
      }
      else if(statu[s] == 1){
     
      }
      delay(1000);
     
cont:
delay(2000);
digitalWrite(GreenLed,LOW);
digitalWrite(RedLed,LOW);
card_ID="";

}
    void printTime() {
  Serial.print(hour());
  Serial.print(":");
  Serial.print(minute());
  Serial.print(":");
  Serial.print(second());
  Serial.print(",");