પાઠ ૨૧/૩૧: આર્ડુઇનો સાથે ઇન્ફ્રારેડ રિમોટ કંટ્રોલનો ઉપયોગ | સનફાઉન્ડર રોબોજેક્સ
પરિચય
આ પાઠમાં, આપણે આર્ડુઈનોનો ઉપયોગ કરીને પ્રમાણભૂત રિમોટ કંટ્રોલમાંથી સિગ્નલો ડીકોડ કરતો પ્રોજેક્ટ બનાવીને ઇન્ફ્રારેડ (IR) સંચારની રસપ્રદ દુનિયાનું અન્વેષણ કરીએ છીએ. આ પ્રોજેક્ટ તમને શોધવાની મંજૂરી આપે છે કે IR રિમોટ પર કયું બટન દબાવવામાં આવ્યું છે અને તે મુજબ ક્રિયાઓ ટ્રિગર કરે છે, જેમ કે બઝર ચાલુ કરવું. IR રિમોટ સાથે ઇન્ટરફેસ કરવાની ક્ષમતા સરળ હોમ ઓટોમેશનથી લઈને કસ્ટમ કંટ્રોલ સિસ્ટમ્સ સુધીની વ્યાપક વ્યવહારિક એપ્લિકેશનો ખોલે છે.
આ ટેકનોલોજી વડે તમે શું બનાવી શકો છો તેના માટે અહીં કેટલાક પ્રેરણાદાયી વિચારો છે:
- યુનિવર્સલ રિમોટ રિપ્લેસમેન્ટ: તમારા ટીવી, ઓડિયો સિસ્ટમ અથવા અન્ય IR-નિયંત્રિત ઉપકરણો માટે કસ્ટમ રિમોટ બનાવો.
- હોમ ઓટોમેશન: પ્રમાણભૂત રિમોટ પર બટન દબાવીને લાઇટ, પંખા અથવા અન્ય ઉપકરણોને નિયંત્રિત કરો.
- ઇન્ટરેક્ટિવ પ્રોજેક્ટ્સ: એક સુરક્ષા સિસ્ટમ બનાવો જે ચોક્કસ બટન દબાવવામાં આવે ત્યારે એલાર્મ ટ્રિગર કરે.
- રોબોટિક્સ કંટ્રોલ: રોબોટની હિલચાલ અને ક્રિયાઓને વાયરલેસ રીતે નિયંત્રિત કરવા માટે IR રિમોટનો ઉપયોગ કરો.
- એક્સેસિબિલિટી એડ્સ: મર્યાદિત ગતિશીલતા ધરાવતી વ્યક્તિઓ માટે સરળ, મોટા બટનવાળું રિમોટ વિકસાવો.
હાર્ડવેર અને ઘટકો
આ પ્રોજેક્ટ થોડા સરળ ઘટકોની આસપાસ બનેલો છે, જે તમામ સામાન્ય રીતે સનફાઉન્ડર 3-ઇન-1 કિટ જેવી સ્ટાર્ટર કિટમાં શામેલ હોય છે. તમારે આની જરૂર પડશે:
- એક આર્ડુઈનો બોર્ડ (દા.ત., Uno)
- એક IR રીસીવર મોડ્યુલ (દા.ત., TSOP38238 અથવા સમાન)
- એક પ્રમાણભૂત IR રિમોટ કંટ્રોલ (CR2025 બેટરી સાથે)
- એક પેસિવ બઝર
- જમ્પર વાયર અને બ્રેડબોર્ડ
વાયરિંગ માર્ગદર્શિકા
આ પ્રોજેક્ટ માટે અહીં સરળ વાયરિંગ ડાયાગ્રામ છે. IR રીસીવર એ મુખ્ય ઘટક છે. જ્યારે તમે રીસીવરની વક્ર સપાટી જુઓ છો, ત્યારે પિન લેઆઉટ નીચે મુજબ છે:
- જમણો પિન: આર્ડુઈનો પરના 5V પિન સાથે કનેક્ટ કરો.
- મધ્યમ પિન: આર્ડુઈનો પરના GND પિન સાથે કનેક્ટ કરો.
- ડાબો પિન (સિગ્નલ): આર્ડુઈનો પરના ડિજિટલ પિન 11 સાથે કનેક્ટ કરો.
વધુમાં, પ્રોજેક્ટના એક્શન ભાગ માટે, બઝરના પોઝિટિવ (લાંબા) લીડને ડિજિટલ પિન 2 સાથે અને બીજા લીડને GND સાથે કનેક્ટ કરો.
કોડ સમજૂતી
આ પ્રોજેક્ટ ઇન્ફ્રારેડ સિગ્નલોને ડીકોડ કરવાનું જટિલ કાર્ય સંભાળવા માટે IRremote લાઇબ્રેરી પર આધાર રાખે છે. કોડ એવી રીતે રચાયેલ છે કે પહેલા તમારા રિમોટમાંથી ચોક્કસ કોડ શીખે અને પછી તેનો ઉપયોગ ક્રિયાઓ ટ્રિગર કરવા માટે કરે. ચાલો વપરાશકર્તા-રૂપરેખાંકિત ભાગોને તોડીએ.
પ્રથમ, આપણે તે પિન વ્યાખ્યાયિત કરીએ છીએ જેની સાથે IR રીસીવરનો સિગ્નલ વાયર કનેક્ટેડ છે. આ એક નિર્ણાયક રૂપરેખાંકન છે જે તમારે તમારા ભૌતિક વાયરિંગ સાથે મેળ ખાતું હોવું જોઈએ.
const int IR_RECEIVE_PIN = 11; // IR સેન્સર માટે પિન નંબર વ્યાખ્યાયિત કરો
setup() ફંક્શનમાં, IR રીસીવરને આપણે હમણાં વ્યાખ્યાયિત કરેલા પિનનો ઉપયોગ કરીને ઇનિશિયલાઇઝ કરવામાં આવે છે. આ લાઇબ્રેરીને તે પિન પર સિગ્નલો સાંભળવાનું શરૂ કરવા કહે છે.
IrReceiver.begin(IR_RECEIVE_PIN, ENABLE_LED_FEEDBACK); // IR રીસીવર શરૂ કરો
એક્શન લેવાની લોજિકનો મુખ્ય ભાગ loop() માં છે. કોડ તપાસે છે કે કી દબાવવામાં આવી છે કે નહીં અને તેને ડીકોડ કરે છે. decodeKeyValue() ફંક્શન એક કસ્ટમ ફંક્શન છે જે રિમોટમાંથી કાચા હેક્સાડેસિમલ કોડને "POWER" અથવા "MUTE" જેવી માનવ-વાંચી શકાય તેવી સ્ટ્રિંગમાં અનુવાદિત કરે છે. આ તે ભાગ છે જે તમે તમારા ચોક્કસ રિમોટ સાથે મેળ કરવા માટે સંશોધિત કરશો. ઉદાહરણ કોડ buzzerPin વ્યાખ્યાયિત કરે છે અને તેને ફક્ત ત્યારે જ ચાલુ કરે છે જ્યારે "POWER" બટન દબાવવામાં આવે.
const int buzzerPin = 2; // બઝર માટે પિન વ્યાખ્યાયિત કરો
// ... loop() ની અંદર
if (decodedValue == "POWER") {
digitalWrite(buzzerPin, HIGH); // બઝર ચાલુ કરો
} else {
digitalWrite(buzzerPin, LOW); // બઝર બંધ કરો
}
કેવી રીતે ઉપયોગ કરવો: decodeKeyValue() ફંક્શન આ પ્રોજેક્ટને કસ્ટમાઇઝ કરવાની ચાવી છે. તેને તમારા પોતાના રિમોટ સાથે ઉપયોગ કરવા માટે, તમારે પહેલા સીરિયલ મોનિટર ખુલ્લું રાખીને કોડ ચલાવવો આવશ્યક છે. તમારા રિમોટ પર દરેક બટન દબાવો અને દરેક માટે છપાયેલ હેક્સાડેસિમલ મૂલ્ય નોંધો. પછી, decodeKeyValue() ફંક્શનમાં switch સ્ટેટમેન્ટને અપડેટ કરીને તે મૂલ્યોને અર્થપૂર્ણ નામો સાથે મેપ કરો. તમે પછી આ નામોનો ઉપયોગ તમારા if સ્ટેટમેન્ટ્સમાં વિવિધ ક્રિયાઓ ટ્રિગર કરવા માટે કરી શકો છો, જેમ ઉદાહરણ "POWER" બટન માટે કરે છે.
લાઇવ પ્રોજેક્ટ અને પ્રદર્શન
કોડ અપલોડ થયા પછી, સીરિયલ મોનિટરને 9600 ની બોડ રેટ પર ખોલો. તમારા રિમોટને IR રીસીવર તરફ નિર્દેશ કરો અને બટન દબાવો. સીરિયલ મોનિટર અનુરૂપ કી નામ પ્રદર્શિત કરશે (દા.ત., "POWER", "MUTE"). અસરમાં ક્રિયા જોવા માટે, "POWER" બટન દબાવો. તમે બઝર ચાલુ થવાનો અવાજ સાંભળશો. અન્ય કોઈપણ બટન દબાવવાથી, જેમ કે "MUTE", બઝર બંધ થઈ જશે. આ એક સરળ પરંતુ શક્તિશાળી ખ્યાલ દર્શાવે છે: તમારા આર્ડુઈનો પર ડિજિટલ આઉટપુટ ટ્રિગર કરવા માટે રિમોટ કંટ્રોલનો ઉપયોગ કરવો.
પ્રકરણો
- [00:00] આર્ડુઇનો સાથે ઇન્ફ્રારેડ રિમોટ કંટ્રોલનો પરિચય
- [01:25] IR રીસીવર અને ટ્રાન્સમીટરની ઝાંખી
- [02:24] IR રીસીવર મોડ્યુલ અને વાયરિંગને સમજવું
- [03:31] IRremote લાઇબ્રેરી ઇન્સ્ટોલ કરવી
- [04:22] ડીકોડિંગ કોડ ખોલવો અને સમજાવવો
- [07:29] કોડ અપલોડ કરવો અને રિમોટ કી ટેસ્ટ કરવી
- [08:41] એક એક્શન ઉમેરવું: બઝરને નિયંત્રિત કરવું
- [10:37] આગામી IR પ્રોજેક્ટ્સની ઝલક
/*
Lesson 21/31: Decoding Infrared from remote
Get this code and watch video Download and resource page https://robojax.com/RJT604
YouTube video https://www.youtube.com/watch?v=EAlqaVy8fYY
*/
#include <IRremote.h>
const int IR_RECEIVE_PIN = 11; // Define the pin number for the IR Sensor
String lastDecodedValue = ""; // Variable to store the last decoded value
void setup() {
Serial.begin(9600); // Start serial communication at 9600 baud rate
IrReceiver.begin(IR_RECEIVE_PIN, ENABLE_LED_FEEDBACK); // Start the IR receiver
}
void loop() {
if (IrReceiver.decode()) {
String decodedValue = decodeKeyValue(IrReceiver.decodedIRData.command);
if (decodedValue != "ERROR") {
Serial.println(decodedValue);
delay(100);
}
IrReceiver.resume(); // Enable receiving of the next value
}
}
String decodeKeyValue(long result)
{
switch(result){
case 0x16:
return "0";
case 0xC:
return "1";
case 0x18:
return "2";
case 0x5E:
return "3";
case 0x8:
return "4";
case 0x1C:
return "5";
case 0x5A:
return "6";
case 0x42:
return "7";
case 0x52:
return "8";
case 0x4A:
return "9";
case 0x9:
return "+";
case 0x15:
return "-";
case 0x7:
return "EQ";
case 0xD:
return "U/SD";
case 0x19:
return "CYCLE";
case 0x44:
return "PLAY/PAUSE";
case 0x43:
return "FORWARD";
case 0x40:
return "BACKWARD";
case 0x45:
return "POWER";
case 0x47:
return "MUTE";
case 0x46:
return "MODE";
case 0x0:
return "ERROR";
default :
return "ERROR";
}
}
Common Course Links
Common Course Files
તમને જોઈતી વસ્તુઓ
-
Amazon
-
eBay
સંસાધનો અને સંદર્ભો
હજી સુધી કોઈ સંસાધનો નથી.
ફાઇલો📁
Arduino લાઇબ્રેરીઓ (zip)
-
SunFounder's 3-in-1 Smart Car learning kit source code
3in1-kit-main-v2.zip12.80 MB