வயர்லெஸ் சர்வோ மோட்டார் கட்டுப்பாடு 2.4 ஜிகாஹெர்ட்ஸ் தொடர்பு இணைப்பைப் பயன்படுத்துகிறது

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





இந்த இடுகையில் 2.4 ஜிகாஹெர்ட்ஸ் தொடர்பு இணைப்பில் 6 சர்வோ மோட்டார்கள் கம்பியில்லாமல் கட்டுப்படுத்தக்கூடிய வயர்லெஸ் சர்வோ மோட்டார் சர்க்யூட்டை உருவாக்க உள்ளோம்.



அறிமுகம்

இந்த திட்டம் இரண்டு பகுதிகளாக பிரிக்கப்பட்டுள்ளது: 6 பொட்டென்டோமீட்டர்களைக் கொண்ட ஒரு டிரான்ஸ்மிட்டர் மற்றும் 6 உடன் ரிசீவர் சர்க்யூட் சர்வோ மோட்டார்கள் .

ரிமோட்டில் 6 தனிப்பட்ட சர்வோ மோட்டார்கள் சுயாதீனமாக கட்டுப்படுத்த 6 பொட்டென்டோமீட்டர்கள் உள்ளன. பொட்டென்டோமீட்டரை சுழற்றுவதன் மூலம், கோணம் சர்வோ மோட்டார் கட்டுப்படுத்த முடியும் .



உங்களுக்கு கட்டுப்படுத்தப்பட்ட இயக்கம் தேவைப்படும் இடத்தில் முன்மொழியப்பட்ட சுற்று பயன்படுத்தப்படலாம், எடுத்துக்காட்டாக ஒரு ரோபோவின் கை அல்லது ஆர்.சி காரின் முன் சக்கர திசை கட்டுப்பாடு.

சுற்றுக்கு இதயம் NRF24L01 தொகுதி ஆகும், இது ஐஎஸ்எம் இசைக்குழுவில் (தொழில்துறை, அறிவியல் மற்றும் மருத்துவ இசைக்குழு) வேலை செய்யும் ஒரு டிரான்ஸ்ஸீவர் ஆகும், இது உங்கள் WI-FI வேலை செய்யும் அதே அதிர்வெண் இசைக்குழு ஆகும்.

NRF24L01 தொகுதிகளின் விளக்கம்:

இது 125 சேனல்களைக் கொண்டுள்ளது, இது அதிகபட்ச தரவு வீதத்தை 2MBps மற்றும் கோட்பாட்டு அதிகபட்ச வரம்பு 100 மீட்டர் கொண்டது. தகவல்தொடர்பு இணைப்பை நிறுவ உங்களுக்கு இதுபோன்ற இரண்டு தொகுதிகள் தேவைப்படும்.

முள் உள்ளமைவு:

இது SPI தொடர்பு நெறிமுறையில் செயல்படுகிறது. இந்த தொகுதி வேலை செய்ய நீங்கள் 8 ஊசிகளில் 7 ஐ ஆர்டுயினோவுடன் இணைக்க வேண்டும்.

இது 3.3 V இல் இயங்குகிறது மற்றும் 5V தொகுதியைக் கொல்கிறது, எனவே சக்தியளிக்கும் போது கவனமாக இருக்க வேண்டும். அதிர்ஷ்டவசமாக எங்களிடம் Arduino இல் 3.3V மின்னழுத்த சீராக்கி உள்ளது, அது Arduino இன் 3.3V சாக்கெட்டிலிருந்து மட்டுமே இயக்கப்பட வேண்டும்.

இப்போது டிரான்ஸ்மிட்டர் சுற்றுக்கு செல்லலாம்.

டிரான்ஸ்மிட்டர் சுற்று:

சுற்று 10K ஓம் மதிப்பின் 6 பொட்டென்டோமீட்டரைக் கொண்டுள்ளது. 6 பொட்டென்டோமீட்டர்களின் நடுத்தர முனையம் A0 முதல் A5 அனலாக் உள்ளீட்டு ஊசிகளுடன் இணைக்கப்பட்டுள்ளது.

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

இந்த சுற்று யூ.எஸ்.பி அல்லது 9 வி பேட்டரியிலிருந்து டி.சி ஜாக் வழியாக இயக்கப்படலாம்.

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

டிரான்ஸ்மிட்டருக்கான திட்டம்:

//----------------------Program Developed by R.Girish------------------------//
#include
#include
#include
RF24 radio(9,10)
const byte address[6] = '00001'
#define pot1 A0
#define pot2 A1
#define pot3 A2
#define pot4 A3
#define pot5 A4
#define pot6 A5
const int threshold = 20
int potValue1 = 0
int potValue2 = 0
int potValue3 = 0
int potValue4 = 0
int potValue5 = 0
int potValue6 = 0
int angleValue1 = 0
int angleValue2 = 0
int angleValue3 = 0
int angleValue4 = 0
int angleValue5 = 0
int angleValue6 = 0
int check1 = 0
int check2 = 0
int check3 = 0
int check4 = 0
int check5 = 0
int check6 = 0
const char var1[32] = 'Servo1'
const char var2[32] = 'Servo2'
const char var3[32] = 'Servo3'
const char var4[32] = 'Servo4'
const char var5[32] = 'Servo5'
const char var6[32] = 'Servo6'
void setup()
{
Serial.begin(9600)
radio.begin()
radio.openWritingPipe(address)
radio.setChannel(100)
radio.setDataRate(RF24_250KBPS)
radio.setPALevel(RF24_PA_MAX)
radio.stopListening()
}
void loop()
{
potValue1 = analogRead(pot1)
if(potValue1 > check1 + threshold || potValue1 {
radio.write(&var1, sizeof(var1))
angleValue1 = map(potValue1, 0, 1023, 0, 180)
radio.write(&angleValue1, sizeof(angleValue1))
check1 = potValue1
Serial.println('INPUT:1')
Serial.print('Angle:')
Serial.println(angleValue1)
Serial.print('Voltage Level:')
Serial.println(potValue1)
Serial.println('----------------------------------')
}
potValue2 = analogRead(pot2)
if(potValue2 > check2 + threshold || potValue2 {
radio.write(&var2, sizeof(var2))
angleValue2 = map(potValue2, 0, 1023, 0, 180)
radio.write(&angleValue2, sizeof(angleValue2))
check2 = potValue2
Serial.println('INPUT:2')
Serial.print('Angle:')
Serial.println(angleValue2)
Serial.print('Voltage Level:')
Serial.println(potValue2)
Serial.println('----------------------------------')
}
potValue3 = analogRead(pot3)
if(potValue3 > check3 + threshold || potValue3 {
radio.write(&var3, sizeof(var3))
angleValue3 = map(potValue3, 0, 1023, 0, 180)
radio.write(&angleValue3, sizeof(angleValue3))
check3 = potValue3
Serial.println('INPUT:3')
Serial.print('Angle:')
Serial.println(angleValue3)
Serial.print('Voltage Level:')
Serial.println(potValue3)
Serial.println('----------------------------------')
}
potValue4 = analogRead(pot4)
if(potValue4 > check4 + threshold || potValue4 {
radio.write(&var4, sizeof(var4))
angleValue4 = map(potValue4, 0, 1023, 0, 180)
radio.write(&angleValue4, sizeof(angleValue4))
check4 = potValue4
Serial.println('INPUT:4')
Serial.print('Angle:')
Serial.println(angleValue4)
Serial.print('Voltage Level:')
Serial.println(potValue4)
Serial.println('----------------------------------')
}
potValue5 = analogRead(pot5)
if(potValue5 > check5 + threshold || potValue5 {
radio.write(&var5, sizeof(var5))
angleValue5 = map(potValue5, 0, 1023, 0, 180)
radio.write(&angleValue5, sizeof(angleValue5))
check5 = potValue5
Serial.println('INPUT:5')
Serial.print('Angle:')
Serial.println(angleValue5)
Serial.print('Voltage Level:')
Serial.println(potValue5)
Serial.println('----------------------------------')
}
potValue6 = analogRead(pot6)
if(potValue6 > check6 + threshold || potValue6 {
radio.write(&var6, sizeof(var6))
angleValue6 = map(potValue6, 0, 1023, 0, 180)
radio.write(&angleValue6, sizeof(angleValue6))
check6 = potValue6
Serial.println('INPUT:6')
Serial.print('Angle:')
Serial.println(angleValue6)
Serial.print('Voltage Level:')
Serial.println(potValue6)
Serial.println('----------------------------------')
}
}
//----------------------Program Developed by R.Girish------------------------//

அது டிரான்ஸ்மிட்டரை முடிக்கிறது.

பெறுநர்:

ரிசீவர் சுற்று 6 சர்வோ மோட்டார்கள், ஒரு அர்டுயினோ மற்றும் இரண்டு தனித்தனி மின்சாரம் ஆகியவற்றைக் கொண்டுள்ளது.

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

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

எந்த நேரமும் இல்லாதபோது கூட சர்வோ மோட்டார் சில சக்தியைப் பயன்படுத்துகிறது என்பதை நினைவில் கொள்க, ஏனென்றால் சர்வோ மோட்டரின் கை எப்போதுமே அதன் கருத்து நிலையில் இருந்து எந்த மாற்றத்திற்கும் எதிராக போராடுகிறது.

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

//----------------------Program Developed by R.Girish------------------------//
#include
#include
#include
#include
RF24 radio(9,10)
const byte address[6] = '00001'
Servo servo1
Servo servo2
Servo servo3
Servo servo4
Servo servo5
Servo servo6
int angle1 = 0
int angle2 = 0
int angle3 = 0
int angle4 = 0
int angle5 = 0
int angle6 = 0
char input[32] = ''
const char var1[32] = 'Servo1'
const char var2[32] = 'Servo2'
const char var3[32] = 'Servo3'
const char var4[32] = 'Servo4'
const char var5[32] = 'Servo5'
const char var6[32] = 'Servo6'
void setup()
{
Serial.begin(9600)
servo1.attach(2)
servo2.attach(3)
servo3.attach(4)
servo4.attach(5)
servo5.attach(6)
servo6.attach(7)
radio.begin()
radio.openReadingPipe(0, address)
radio.setChannel(100)
radio.setDataRate(RF24_250KBPS)
radio.setPALevel(RF24_PA_MAX)
radio.startListening()
}
void loop()
{
delay(5)
while(!radio.available())
radio.read(&input, sizeof(input))
if((strcmp(input,var1) == 0))
{
while(!radio.available())
radio.read(&angle1, sizeof(angle1))
servo1.write(angle1)
Serial.println(input)
Serial.print('Angle:')
Serial.println(angle1)
Serial.println('--------------------------------')
}
else if((strcmp(input,var2) == 0))
{
while(!radio.available())
radio.read(&angle2, sizeof(angle2))
servo2.write(angle2)
Serial.println(input)
Serial.print('Angle:')
Serial.println(angle2)
Serial.println('--------------------------------')
}
else if((strcmp(input,var3) == 0))
{
while(!radio.available())
radio.read(&angle3, sizeof(angle3))
servo3.write(angle3)
Serial.println(input)
Serial.print('Angle:')
Serial.println(angle3)
Serial.println('--------------------------------')
}
else if((strcmp(input,var4) == 0))
{
while(!radio.available())
radio.read(&angle4, sizeof(angle4))
servo4.write(angle4)
Serial.println(input)
Serial.print('Angle:')
Serial.println(angle4)
Serial.println('--------------------------------')
}
else if((strcmp(input,var5) == 0))
{
while(!radio.available())
radio.read(&angle5, sizeof(angle5))
servo5.write(angle5)
Serial.println(input)
Serial.print('Angle:')
Serial.println(angle5)
Serial.println('--------------------------------')
}
else if((strcmp(input,var6) == 0))
{
while(!radio.available())
radio.read(&angle6, sizeof(angle6))
servo6.write(angle6)
Serial.println(input)
Serial.print('Angle:')
Serial.println(angle6)
Serial.println('--------------------------------')
}
}
//----------------------Program Developed by R.Girish------------------------//

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

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

The இரண்டு சுற்றுக்கும் சக்தி கொடுங்கள்.
• இப்போது பொட்டென்டோமீட்டரின் குமிழ் ஒன்றை சுழற்றுங்கள்.
3rd எடுத்துக்காட்டாக 3 வது பொட்டென்டோமீட்டர், ரிசீவரில் உள்ள சர்வோ சுழல்கிறது.
• இது அனைத்து சர்வோ மோட்டார்கள் மற்றும் பொட்டென்டோமீட்டர்களுக்கும் பொருந்தும்.

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

இந்த Arduino அடிப்படையிலான வயர்லெஸ் சர்வோ மோட்டார் திட்டம் குறித்து உங்களுக்கு ஏதேனும் கேள்வி இருந்தால், தயவுசெய்து கருத்துப் பிரிவில் வெளிப்படுத்தவும் நீங்கள் விரைவான பதிலைப் பெறலாம்.




முந்தைய: மெயின்ஸ் 220 வி இல் 200, 600 எல்இடி சரம் சுற்று அடுத்து: பேக் ஈ.எம்.எஃப் பயன்படுத்தி உயர் மின்னோட்ட சென்சார்லெஸ் பி.எல்.டி.சி மோட்டார் கன்ட்ரோலர்