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

در این بخش قصد توسعه کنترل از راه دور RF را با استفاده از رزبری پای داریم که میتواند به کنترل وسایل ، بدون سیم کمک کند.میتوان وسایل را بدین طریق از راه دور روشن و خاموش نمود.
اجزا مورد نیاز :
سمت فرستنده:
فرستنده RF ( هیبرید ASK )
ای سی HT12E
4 عدد میکروسوئیچ
مقاومت 750k
باتری 9 ولت
سمت گیرنده:
رزبری پای
ال سی دی 2*16
پتانسیومتر 10k
بردبورد
پنج عدد مقاومت 1k
مقاومت 33k
ای سی HT12D
گیرنده RF ( هیبرید ASK )
پنج عدد ال ای دی
4 عدد مقاومت 10k
سیم اتصال
منبع تغذیه
ماژول RF :
این ماژول یک فرستنده و گیرنده هیبرید ASK می باشد و در فرکانس 433 مگاهرتز عمل می کند.این ماژول دارای یک نوسانگر کریستالی تثبیت شده برای کنترل فرکانس دقیق در بهترین محدوده می باشد.بنابراین ما تنها نیازمند یک آنتن خارجی برای این ماژول می باشیم.

شخصه های فرستنده RF :
محدوده فرکانسی ( 433 مگاهرتز )
توان خروجی ( 4 تا 16 dBm )
تغذیه ورودی ( 3 تا 12 ولت DC )
تشریح پین های فرستنده RF :
GND : زمین
Data in : پذیرش داده سریال از سوی انکودر
VCC : ا +/- 5 ولت باید به این پایه اعمال شود
Antenna : برای ارسال بهتر داده یک سیم پیچانده شده به این پایه متصل شود

مشخصه های گیرنده RF :
حساسیت : dBm -105
فرکانس میانی : 1 مگاهرتز
جریان : mA 3.5
ولتاژ تغذیه : 5 ولت
تشریح پین های گیرنده RF :
GND : زمین
Data in : خروج داده سریال به دیکودر
VCC : ا +/- 5 ولت باید به این پایه اعمال شود
Antenna : برای دریافت بهتر داده یک سیم پیچانده شده به این پایه متصل شود

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

دانلود کد برنامه ی کنترل ال ای دی با استفاده از رزبری پای و ریموت RF :
[maxbutton id=”255″ url=”http://avatrobo.ir/wp-content/uploads/2018/07/RF-Remote-Controlled-LEDs-Using-Raspberry-Pi.txt” ]
#include<wiringPi.h>
#include <wiringSerial.h>
#include<stdio.h>
#include <string.h>
#define RS 11
#define EN 10
#define D4 6
#define D5 5
#define D6 4
#define D7 1
#define led1 26
#define led2 27
#define led3 28
#define led4 29
#define buzz 0
#define d1 25
#define d2 24
#define d3 23
#define d4 22
int flag1=0,flag2=0,flag3=0,flag4=0;
void lcdcmd(unsigned int ch)
{
int temp=0x80;
digitalWrite(D4, temp & ch<<3);
digitalWrite(D5, temp & ch<<2);
digitalWrite(D6, temp & ch<<1);
digitalWrite(D7, temp & ch);
digitalWrite(RS, LOW);
digitalWrite(EN, HIGH);
delay(10);
digitalWrite(EN, LOW);
digitalWrite(D4, temp & ch<<7);
digitalWrite(D5, temp & ch<<6);
digitalWrite(D6, temp & ch<<5);
digitalWrite(D7, temp & ch<<4);
digitalWrite(RS, LOW);
digitalWrite(EN, HIGH);
delay(10);
digitalWrite(EN, LOW);
}
void write(unsigned int ch)
{
int temp=0x80;
digitalWrite(D4, temp & ch<<3);
digitalWrite(D5, temp & ch<<2);
digitalWrite(D6, temp & ch<<1);
digitalWrite(D7, temp & ch);
digitalWrite(RS, HIGH);
digitalWrite(EN, HIGH);
delay(10);
digitalWrite(EN, LOW);
digitalWrite(D4, temp & ch<<7);
digitalWrite(D5, temp & ch<<6);
digitalWrite(D6, temp & ch<<5);
digitalWrite(D7, temp & ch<<4);
digitalWrite(RS, HIGH);
digitalWrite(EN, HIGH);
delay(10);
digitalWrite(EN, LOW);
}
void clear()
{
lcdcmd(0x01);
}
void setCursor(int x, int y)
{
int set=0;
if(y==0)
set=128+x;
if(y==1)
set=192+x;
lcdcmd(set);
}
void print(char *str)
{
while(*str)
{
write(*str);
str++;
}
}
void begin(int x, int y)
{
lcdcmd(0x02);
lcdcmd(0x28);
lcdcmd(0x06);
lcdcmd(0x0e);
lcdcmd(0x01);
}
void buzzer()
{
digitalWrite(buzz, HIGH);
delay(1000);
digitalWrite(buzz, LOW);
}
void setup()
{
if (wiringPiSetup () == -1)
{
clear();
print("Unable to start");
setCursor(0,1);
print("wiringPi");
}
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
pinMode(buzz, OUTPUT);
pinMode(RS, OUTPUT);
pinMode(EN, OUTPUT);
pinMode(D4, OUTPUT);
pinMode(D5, OUTPUT);
pinMode(D6, OUTPUT);
pinMode(D7, OUTPUT);
pinMode(d1, INPUT);
pinMode(d2, INPUT);
pinMode(d3, INPUT);
pinMode(d4, INPUT);
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
digitalWrite(buzz, LOW);
begin(16,2);
}
//void loop()
void main()
{
setup();
clear();
print(" RF Module ");
setCursor(0,1);
print(" Interfacing ");
delay(2000);
clear();
print("Raspberry Pi");
setCursor(0,1);
print("Circuit Digest");
delay(2000);
clear();
print("System Ready");
delay(1000);
clear();
setCursor(0,1);
print("OFF OFF OFF OFF");
while(1)
{
setCursor(0,0);
print("D1 D2 D3 D4");
if(digitalRead(d1)==0)
{
flag1++;
setCursor(0,1);
if(flag1%2==1)
{
print("ON ");
digitalWrite(led1,HIGH);
}
else
{
print("OFF");
digitalWrite(led1,LOW);
}
buzzer();
while(digitalRead(d1)==0);
}
else if(digitalRead(d2)==0)
{
flag2++;
setCursor(4,1);
if(flag2%2==1)
{
print("ON ");
digitalWrite(led2,HIGH);
}
else
{
print("OFF");
digitalWrite(led2,LOW);
}
buzzer();
while(digitalRead(d2)==0);
}
else if(digitalRead(d3)==0)
{
flag3++;
setCursor(8,1);
if(flag3%2==1)
{
print("ON ");
digitalWrite(led3,HIGH);
}
else
{
print("OFF");
digitalWrite(led3,LOW);
}
buzzer();
while(digitalRead(d3)==0);
}
else if(digitalRead(d4)==0)
{
flag4++;
setCursor(12,1);
if(flag4%2==1)
{
print("ON ");
digitalWrite(led4,HIGH);
}
else
{
print("OFF");
digitalWrite(led4,LOW);
}
buzzer();
while(digitalRead(d4)==0);
}
}
}
پست های مرتبط
اردیبهشت 9, 1398
اسفند 5, 1397
بهمن 2, 1397
دیدگاهتان را بنویسید