2.4 ஜிகாஹெர்ட்ஸ் 10 சேனல் ரிமோட் கண்ட்ரோல் சுவிட்ச்

சிக்கல்களை அகற்ற எங்கள் கருவியை முயற்சிக்கவும்





இந்த இடுகையில் ஐ.எஸ்.எம் (தொழில்துறை, அறிவியல் மற்றும் மருத்துவ) இசைக்குழுவின் அடிப்படையில் 10 சேனல் ரிமோட் கண்ட்ரோல் சுவிட்சை உருவாக்க உள்ளோம்.

அறிமுகம்

தி ஐஎஸ்எம் இசைக்குழு 2.4 ஜிகாஹெர்ட்ஸில் இயக்கப்படுகிறது, இது நியாயமான சக்தி வெளியீட்டில் உரிமம் இல்லாமல் பயன்படுத்தப்படலாம்.



முன்மொழியப்பட்ட திட்டம் பொது நோக்கம் ஆன் / ஆஃப் வயர்லெஸ் சுவிட்ச் ஆகும், இது இந்த திட்டத்திற்கு வன்பொருள் அல்லது மென்பொருள் மாற்றங்களைக் கொண்டுவருவதற்கு போதுமான நம்பிக்கையுடன் இருந்தால் விளக்குகள், ரசிகர்கள், வீட்டு உபகரணங்களை வீட்டு ஆட்டோமேஷனுக்கு ஆன் / ஆஃப் செய்ய பயன்படுத்தலாம்.

திட்டம் இரண்டு பகுதிகளாக பிரிக்கப்பட்டுள்ளது: ரிமோட் மற்றும் ரிசீவர்.



தொலைநிலை கட்டுப்படுத்தி:

ரிமோட் கன்ட்ரோலர் ரிசீவரில் 10 தனிப்பட்ட ரிலேக்களைக் கட்டுப்படுத்த 10 புஷ் பொத்தான்களைக் கொண்டுள்ளது. ரிமோட் 9 வி பேட்டரி மூலம் இயக்கப்படுகிறது, இது சிறியதாக மாற்றுகிறது.

திட்டத்தின் இதயம் 2.4 ஜிகாஹெர்ட்ஸ் டிரான்ஸ்ஸீவர் தொகுதி NRF24L01 ஆகும், இது இரண்டு ஆர்டுயினோக்களுக்கு இடையேயான தகவல்தொடர்புகளை சாத்தியமாக்குகிறது.

ரிமோட் ஒரு ஒப்புதல் எல்.ஈ.

ஒவ்வொரு முறையும் ரிமோட்டில் ஒரு பொத்தானை அழுத்தும்போது ஒப்புதல் எல்.ஈ.டி சிறிது நேரத்தில் ஒளிரும், மேலும் பரிமாற்ற சிக்னலை ரிசீவர் பெற்றால் மட்டுமே, பின்னர் ரிசீவர் எல்.ஈ.டியைத் தூண்டுவதற்கு தொலைதூரத்திற்கு ஒரு பின்னூட்ட சமிக்ஞையை அனுப்புகிறார்.

இந்த செயல்முறை ரிமோட் கன்ட்ரோலரின் ஆன் / ஆஃப் கட்டளை காட்சி உறுதிப்படுத்தலுடன் அதன் இலக்கை அடைவதை உறுதி செய்யும்.

செயலற்ற நிலையில் இருக்கும்போது அதிக ஆற்றல் இழப்பைத் தடுப்பதற்காக ரிமோட் கன்ட்ரோலரின் சர்க்யூட்டில் ஆன் / ஆஃப் சுவிட்ச் வழங்கப்படுகிறது.

Arduino நானோ அல்லது Arduino Pro-mini தொலைதூரத்தை உருவாக்க பரிந்துரைக்கப்படுகிறது, ஏனெனில் இது சிறிய வடிவ காரணி என்பதால் சிறியதாக இருக்கும்.

சுற்று வரைபடம்:

2.4 ஜிகாஹெர்ட்ஸ் 10 சேனல் ரிமோட் கண்ட்ரோல் டிரான்ஸ்மிட்டர்

மேலே உள்ளவை ரிமோட் கன்ட்ரோலருக்கான முழுமையான சுற்று வரைபடம். NRF24L01 க்கான முள் இணைப்பு வரைபடமும் அதே திட்டத்தில் கொடுக்கப்பட்டுள்ளது.

நீங்கள் முடிந்ததும் ரிமோட்டை அணைக்கவும்.

நூலக கோப்பை இங்கே பதிவிறக்கவும்: github.com/nRF24/RF24.git

தொலைநிலைக்கான திட்டம்:

//-----Program Developed by R.Girish----//
#include
#include
RF24 radio(9,10)
const byte address[][6] = {'00001', '00002'}
const int ip1 = 2
const int ip2 = 3
const int ip3 = 4
const int ip4 = 5
const int ip5 = 6
const int ip6 = 7
const int ip7 = 8
const int ip8 = A0
const int ip9 = A1
const int ip10 = A2
const int buzzer = A3
char buzzchar[32] = ''
const char constbuzzer[32] = 'buzz'
const char button1[32] = 'activate_1'
const char button2[32] = 'activate_2'
const char button3[32] = 'activate_3'
const char button4[32] = 'activate_4'
const char button5[32] = 'activate_5'
const char button6[32] = 'activate_6'
const char button7[32] = 'activate_7'
const char button8[32] = 'activate_8'
const char button9[32] = 'activate_9'
const char button10[32] = 'activate_10'
void setup()
{
pinMode(ip1, INPUT)
pinMode(ip2, INPUT)
pinMode(ip3, INPUT)
pinMode(ip4, INPUT)
pinMode(ip5, INPUT)
pinMode(ip6, INPUT)
pinMode(ip7, INPUT)
pinMode(ip8, INPUT)
pinMode(ip9, INPUT)
pinMode(ip10, INPUT)
pinMode(buzzer, OUTPUT)
digitalWrite(ip1, HIGH)
digitalWrite(ip2, HIGH)
digitalWrite(ip3, HIGH)
digitalWrite(ip4, HIGH)
digitalWrite(ip5, HIGH)
digitalWrite(ip6, HIGH)
digitalWrite(ip7, HIGH)
digitalWrite(ip8, HIGH)
digitalWrite(ip9, HIGH)
digitalWrite(ip10, HIGH)
radio.begin()
radio.openWritingPipe(address[1])
radio.openReadingPipe(1, address[0])
radio.setChannel(100)
radio.setDataRate(RF24_250KBPS)
radio.setPALevel(RF24_PA_MAX)
radio.stopListening()
}
void loop()
{
if(digitalRead(ip1) == LOW)
{
radio.write(&button1, sizeof(button1))
radio.startListening()
while(!radio.available())
radio.read(&buzzchar, sizeof(buzzchar))
if(strcmp(buzzchar,constbuzzer) == 0)
{
digitalWrite(buzzer, HIGH)
delay(500)
digitalWrite(buzzer,LOW)
}
radio.stopListening()
}
if(digitalRead(ip2) == LOW)
{
radio.write(&button2, sizeof(button2))
radio.startListening()
while(!radio.available())
radio.read(&buzzchar, sizeof(buzzchar))
if(strcmp(buzzchar,constbuzzer) == 0)
{
digitalWrite(buzzer, HIGH)
delay(500)
digitalWrite(buzzer,LOW)
}
radio.stopListening()
}
if(digitalRead(ip3) == LOW)
{
radio.write(&button3, sizeof(button3))
radio.startListening()
while(!radio.available())
radio.read(&buzzchar, sizeof(buzzchar))
if(strcmp(buzzchar,constbuzzer) == 0)
{
digitalWrite(buzzer, HIGH)
delay(500)
digitalWrite(buzzer,LOW)
}
radio.stopListening()
}
if(digitalRead(ip4) == LOW)
{
radio.write(&button4, sizeof(button4))
radio.startListening()
while(!radio.available())
radio.read(&buzzchar, sizeof(buzzchar))
if(strcmp(buzzchar,constbuzzer) == 0)
{
digitalWrite(buzzer, HIGH)
delay(500)
digitalWrite(buzzer,LOW)
}
radio.stopListening()
}
if(digitalRead(ip5) == LOW)
{
radio.write(&button5, sizeof(button5))
radio.startListening()
while(!radio.available())
radio.read(&buzzchar, sizeof(buzzchar))
if(strcmp(buzzchar,constbuzzer) == 0)
{
digitalWrite(buzzer, HIGH)
delay(500)
digitalWrite(buzzer,LOW)
}
radio.stopListening()
}
if(digitalRead(ip6) == LOW)
{
radio.write(&button6, sizeof(button6))
radio.startListening()
while(!radio.available())
radio.read(&buzzchar, sizeof(buzzchar))
if(strcmp(buzzchar,constbuzzer) == 0)
{
digitalWrite(buzzer, HIGH)
delay(500)
digitalWrite(buzzer,LOW)
}
radio.stopListening()
}
if(digitalRead(ip7) == LOW)
{
radio.write(&button7, sizeof(button7))
radio.startListening()
while(!radio.available())
radio.read(&buzzchar, sizeof(buzzchar))
if(strcmp(buzzchar,constbuzzer) == 0)
{
digitalWrite(buzzer, HIGH)
delay(500)
digitalWrite(buzzer,LOW)
}
radio.stopListening()
}
if(digitalRead(ip8) == LOW)
{
radio.write(&button8, sizeof(button8))
radio.startListening()
while(!radio.available())
radio.read(&buzzchar, sizeof(buzzchar))
if(strcmp(buzzchar,constbuzzer) == 0)
{
digitalWrite(buzzer, HIGH)
delay(500)
digitalWrite(buzzer,LOW)
}
radio.stopListening()
}
if(digitalRead(ip9) == LOW)
{
radio.write(&button9, sizeof(button9))
radio.startListening()
while(!radio.available())
radio.read(&buzzchar, sizeof(buzzchar))
if(strcmp(buzzchar,constbuzzer) == 0)
{
digitalWrite(buzzer, HIGH)
delay(500)
digitalWrite(buzzer,LOW)
}
radio.stopListening()
}
if(digitalRead(ip10) == LOW)
{
radio.write(&button10, sizeof(button10))
radio.startListening()
while(!radio.available())
radio.read(&buzzchar, sizeof(buzzchar))
if(strcmp(buzzchar,constbuzzer) == 0)
{
digitalWrite(buzzer, HIGH)
delay(500)
digitalWrite(buzzer,LOW)
}
radio.stopListening()
}
}
//-----Program Developed by R.Girish----//

இது ரிமோட் கன்ட்ரோலர் சர்க்யூட்டை முடிக்கிறது.

பெறுநர்:

ரிசீவர் சர்க்யூட் உங்கள் விருப்பப்படி இருக்கக்கூடிய அர்டுயினோவைக் கொண்டுள்ளது, 330 ஓம் 10 தற்போதைய கட்டுப்படுத்தும் மின்தடையங்கள், 10 டிரான்சிஸ்டர்கள் மற்றும் 10 ரிலே ஆகியவை வெளியீட்டு கட்டத்தை உருவாக்குகின்றன.

அர்டுயினோவின் 10 வெளியீட்டு ஊசிகளில் ஒவ்வொன்றிலும் மின்தடை மற்றும் டிரான்சிஸ்டர் வழியாக 10 ரிலேக்களுடன் இணைக்கப்பட்டுள்ளது.

உங்கள் மின்சாரம் ஒரு தருணத்தில் பல ரிலேவை இயக்கத் தேவையான குறைந்தபட்சம் 1A மின்னோட்டத்தை வழங்கக்கூடியது என்பதை உறுதிப்படுத்தவும்.

2.4 ஜிகாஹெர்ட்ஸ் டிரான்ஸ்ஸீவர் தொகுதி NRF24L01 தொலைதூரத்திற்கு இடையேயான தகவல்தொடர்புகளை வழங்குகிறது.

சுற்று வரைபடம்:



2.4 ஜிகாஹெர்ட்ஸ் 10 சேனல் ரிமோட் கண்ட்ரோல் ரிசீவர்

Arduino மற்றும் NRF24L01 தொகுதிக்கு இடையில் வயரிங் வரைபடத்துடன் நீங்கள் குழப்பமடைந்துவிட்டால், திட்டவட்டத்திற்கு அருகிலுள்ள அட்டவணையைப் பாருங்கள், ரிமோட் கன்ட்ரோலர் சுற்றுக்கும் இதுவே பொருந்தும்.

வெளியீட்டு வரிசை மற்றும் வெளியீட்டு ஊசிகளும் பின்வருமாறு:

Arduino PIN - வெளியீட்டு வரிசை

பின் 2 - வெளியீடு 1
பின் 3 - வெளியீடு 2
பின் 4 - வெளியீடு 3
பின் 5 - வெளியீடு 4
பின் 6 - வெளியீடு 5
பின் 7 - வெளியீடு 6
பின் 8 - வெளியீடு 7
பின் A0 - வெளியீடு 8
பின் A1 - வெளியீடு 9
பின் A2 - வெளியீடு 10

வெளியீட்டு நிலை:

2.4 ஜிகாஹெர்ட்ஸ் 10 சேனல் ரிமோட் கண்ட்ரோல் ரிலே இணைப்புகள்

வரைபடத்தின் எளிமைக்காக வெளியீடு இரண்டு வெளியீட்டு நிலைகளுடன் காட்சிப்படுத்தப்பட்டுள்ளது. நீங்கள் 10 சேனல்களையும் பயன்படுத்துகிறீர்கள் என்றால், அதை பத்தாக விரிவாக்க வேண்டும்.

பெறுநருக்கான திட்டம்:

//-----Program Developed by R.Girish----//
#include
#include
RF24 radio(9,10)
const byte address[][6] = {'00001', '00002'}
const int op1 = 2
const int op2 = 3
const int op3 = 4
const int op4 = 5
const int op5 = 6
const int op6 = 7
const int op7 = 8
const int op8 = A0
const int op9 = A1
const int op10 = A2
const char buzzer[32] = 'buzz'
char buttonstate[32] = ''
const char button1[32] = 'activate_1'
const char button2[32] = 'activate_2'
const char button3[32] = 'activate_3'
const char button4[32] = 'activate_4'
const char button5[32] = 'activate_5'
const char button6[32] = 'activate_6'
const char button7[32] = 'activate_7'
const char button8[32] = 'activate_8'
const char button9[32] = 'activate_9'
const char button10[32] = 'activate_10'
boolean status1 = false
boolean status2 = false
boolean status3 = false
boolean status4 = false
boolean status5 = false
boolean status6 = false
boolean status7 = false
boolean status8 = false
boolean status9 = false
boolean status10 = false
void setup()
{
Serial.begin(9600)
pinMode(op1, OUTPUT)
pinMode(op2, OUTPUT)
pinMode(op3, OUTPUT)
pinMode(op4, OUTPUT)
pinMode(op5, OUTPUT)
pinMode(op6, OUTPUT)
pinMode(op7, OUTPUT)
pinMode(op8, OUTPUT)
pinMode(op9, OUTPUT)
pinMode(op10, OUTPUT)
radio.begin()
radio.openReadingPipe(1, address[1])
radio.openWritingPipe(address[0])
radio.setChannel(100)
radio.setDataRate(RF24_250KBPS)
radio.setPALevel(RF24_PA_MAX)
radio.startListening()
}
void loop()
{
while(!radio.available())
radio.read(&buttonstate, sizeof(buttonstate))
Serial.println(buttonstate)
if((strcmp(buttonstate,button1) == 0) && status1 == false)
{
digitalWrite(op1, HIGH)
status1 = true
radio.stopListening()
for(int i = 0 i <10 i++)
{
radio.write(&buzzer, sizeof(buzzer))
delay(10)
}
radio.startListening()
}
else if((strcmp(buttonstate,button1) == 0) && status1 == true)
{
digitalWrite(op1, LOW)
status1 = false
radio.stopListening()
for(int i = 0 i <10 i++)
{
radio.write(&buzzer, sizeof(buzzer))
delay(10)
}
radio.startListening()
}
else if((strcmp(buttonstate,button2) == 0) && status2 == false)
{
digitalWrite(op2, HIGH)
status2 = true
radio.stopListening()
for(int i = 0 i <10 i++)
{
radio.write(&buzzer, sizeof(buzzer))
delay(10)
}
radio.startListening()
}
else if((strcmp(buttonstate,button2) == 0) && status2 == true)
{
digitalWrite(op2, LOW)
status2 = false
radio.stopListening()
for(int i = 0 i <10 i++)
{
radio.write(&buzzer, sizeof(buzzer))
delay(10)
}
radio.startListening()
}
else if((strcmp(buttonstate,button3) == 0) && status3 == false)
{
digitalWrite(op3, HIGH)
status3 = true
radio.stopListening()
for(int i = 0 i <10 i++)
{
radio.write(&buzzer, sizeof(buzzer))
delay(10)
}
radio.startListening()
}
else if((strcmp(buttonstate,button3) == 0) && status3 == true)
{
digitalWrite(op3, LOW)
status3 = false
radio.stopListening()
for(int i = 0 i <10 i++)
{
radio.write(&buzzer, sizeof(buzzer))
delay(10)
}
radio.startListening()
}
else if((strcmp(buttonstate,button4) == 0) && status4 == false)
{
digitalWrite(op4, HIGH)
status4 = true
radio.stopListening()
for(int i = 0 i <10 i++)
{
radio.write(&buzzer, sizeof(buzzer))
delay(10)
}
radio.startListening()
}
else if((strcmp(buttonstate,button4) == 0) && status4 == true)
{
digitalWrite(op4, LOW)
status4 = false
radio.stopListening()
for(int i = 0 i <10 i++)
{
radio.write(&buzzer, sizeof(buzzer))
delay(10)
}
radio.startListening()
}
else if((strcmp(buttonstate,button5) == 0) && status5 == false)
{
digitalWrite(op5, HIGH)
status5 = true
radio.stopListening()
for(int i = 0 i <10 i++)
{
radio.write(&buzzer, sizeof(buzzer))
delay(10)
}
radio.startListening()
}
else if((strcmp(buttonstate,button5) == 0) && status5 == true)
{
digitalWrite(op5, LOW)
status5 = false
radio.stopListening()
for(int i = 0 i <10 i++)
{
radio.write(&buzzer, sizeof(buzzer))
delay(10)
}
radio.startListening()
}
else if((strcmp(buttonstate,button6) == 0) && status6 == false)
{
digitalWrite(op6, HIGH)
status6 = true
radio.stopListening()
for(int i = 0 i <10 i++)
{
radio.write(&buzzer, sizeof(buzzer))
delay(10)
}
radio.startListening()
}
else if((strcmp(buttonstate,button6) == 0) && status6 == true)
{
digitalWrite(op6, LOW)
status6 = false
radio.stopListening()
for(int i = 0 i <10 i++)
{
radio.write(&buzzer, sizeof(buzzer))
delay(10)
}
radio.startListening()
}
else if((strcmp(buttonstate,button7) == 0) && status7 == false)
{
digitalWrite(op7, HIGH)
status7 = true
radio.stopListening()
for(int i = 0 i <10 i++)
{
radio.write(&buzzer, sizeof(buzzer))
delay(10)
}
radio.startListening()
}
else if((strcmp(buttonstate,button7) == 0) && status7 == true)
{
digitalWrite(op7, LOW)
status7 = false
radio.stopListening()
for(int i = 0 i <10 i++)
{
radio.write(&buzzer, sizeof(buzzer))
delay(10)
}
radio.startListening()
}
else if((strcmp(buttonstate,button8) == 0) && status8 == false)
{
digitalWrite(op8, HIGH)
status8 = true
radio.stopListening()
for(int i = 0 i <10 i++)
{
radio.write(&buzzer, sizeof(buzzer))
delay(10)
}
radio.startListening()
}
else if((strcmp(buttonstate,button8) == 0) && status8 == true)
{
digitalWrite(op8, LOW)
status8 = false
radio.stopListening()
for(int i = 0 i <10 i++)
{
radio.write(&buzzer, sizeof(buzzer))
delay(10)
}
radio.startListening()
}
else if((strcmp(buttonstate,button9) == 0) && status9 == false)
{
digitalWrite(op9, HIGH)
status9 = true
radio.stopListening()
for(int i = 0 i <10 i++)
{
radio.write(&buzzer, sizeof(buzzer))
delay(10)
}
radio.startListening()
}
else if((strcmp(buttonstate,button9) == 0) && status9 == true)
{
digitalWrite(op9, LOW)
status9 = false
radio.stopListening()
for(int i = 0 i <10 i++)
{
radio.write(&buzzer, sizeof(buzzer))
delay(10)
}
radio.startListening()
}
else if((strcmp(buttonstate,button10) == 0) && status10 == false)
{
digitalWrite(op10, HIGH)
status10 = true
radio.stopListening()
for(int i = 0 i <10 i++)
{
radio.write(&buzzer, sizeof(buzzer))
delay(10)
}
radio.startListening()
}
else if((strcmp(buttonstate,button10) == 0) && status10 == true)
{
digitalWrite(op10, LOW)
status10 = false
radio.stopListening()
for(int i = 0 i <10 i++)
{
radio.write(&buzzer, sizeof(buzzer))
delay(10)
}
radio.startListening()
}
}
//-----Program Developed by R.Girish----//

அது பெறுநரை முடிக்கிறது.

இது 100 மீட்டர் தத்துவார்த்த வரம்பைக் கொண்டுள்ளது, இது நடைமுறையில் 30 மீட்டர் மற்றும் அதற்கு மேல் வேலை செய்யக்கூடும், இது தொலைநிலை மற்றும் பெறுநருக்கு இடையிலான திடமான தடைகளைப் பொறுத்து மாறுபடலாம்.

இந்த திட்டத்தை எவ்வாறு இயக்குவது:

First முதலில் ரிசீவரை இயக்கவும், பின்னர் ரிமோட் செய்யவும்.

One தொலைதூரத்தில் உள்ள எந்த பொத்தான்களையும் ஒரு நேரத்தில் அழுத்தவும்.

Button நீங்கள் முதல் பொத்தானை அழுத்தினால், தொடர்புடைய வெளியீடு தூண்டப்படும், அதாவது வெளியீடு 1 இயங்கும். ரிமோட்டில் அதே பொத்தானை மீண்டும் அழுத்தினால், அது ரிசீவரில் வெளியீடு 1 ஐ முடக்கும்.

• இது அனைத்து பொத்தான்கள் மற்றும் 10 வெளியீடுகளுக்கும் பொருந்தும்.

After பயன்பாட்டிற்குப் பிறகு ரிமோட்டை அணைக்கவும்.

மேலே விவாதிக்கப்பட்ட 2.4 ஜிகாஹெர்ட்ஸ் 10 சேனல் ரிமோட் கண்ட்ரோல் சுவிட்சைப் பற்றி மேலும் ஏதேனும் கேள்விகள் இருந்தால், தயவுசெய்து அவற்றை கருத்துப் பிரிவில் வெளிப்படுத்தவும்.




முந்தைய: Arduino PWM சிக்னல் ஜெனரேட்டர் சுற்று அடுத்து: ஐசி 555 ஐப் பயன்படுத்தி சர்வோ மோட்டாரை இயக்குவது எப்படி