સંપૂર્ણ માર્ગદર્શિકા: Arduino અને વધુ સાથે PCA9685 કંટ્રોલર

  • PCA9685 એ 16-ચેનલ PWM નિયંત્રક છે જે I2C દ્વારા વાતચીત કરે છે.
  • તે LED લાઇટ અને સર્વો બંનેને નિયંત્રિત કરી શકે છે અને તેની આવર્તન 1600 Hz સુધી એડજસ્ટેબલ છે.
  • સમાન I62C બસમાં 2 મોડ્યુલ સુધી કનેક્ટ કરવું શક્ય છે, 992 નિયંત્રણક્ષમ PWM આઉટપુટ સુધી પહોંચે છે.
  • Adafruit જેવી લાઇબ્રેરીઓનો ઉપયોગ Arduino જેવા પ્લેટફોર્મ પર આ ઘટક સાથે કામ કરવાનું સરળ બનાવે છે.

pca9685

મોડ્યુલ Arduino માટે PCA9685 નિયંત્રક જ્યારે તમારે PWM સિગ્નલો સાથે કામ કરતા કેટલાક ઉપકરણોને નિયંત્રિત કરવાની જરૂર હોય ત્યારે અને અન્ય પ્લેટફોર્મ એ વ્યાપકપણે ઉપયોગમાં લેવાતા ઉકેલ છે. જો કે તે શરૂઆતમાં LEDs ને નિયંત્રિત કરવા માટે ડિઝાઇન કરવામાં આવ્યું હતું, તેની વૈવિધ્યતાએ તેને સર્વો નિયંત્રિત કરવા માટે વારંવાર વિકલ્પ બનવાની મંજૂરી આપી છે. આ ચિપ ચોક્કસતા અને સરળતા સાથે બહુવિધ ઉપકરણોને નિયંત્રિત કરવાની ક્ષમતા માટે રોબોટિક્સ અને ઓટોમેશન પ્રોજેક્ટ્સમાં અત્યંત લોકપ્રિય છે.

આ લેખ તમને ફક્ત PCA9685 નો ઉપયોગ Arduino અને અન્ય માઇક્રોકન્ટ્રોલર્સ સાથે કેવી રીતે કરવો તે બતાવશે નહીં, પરંતુ આ ઘટકમાંથી સૌથી વધુ મેળવવા માટે તમારે જાણવાની જરૂર હોય તેવા દરેક તકનીકી પાસાઓની વિગતો પણ આપશે. અમે તેને કેવી રીતે કનેક્ટ કરવું તેનાથી લઈને કોડ લાઇબ્રેરીઓનું સંચાલન કેવી રીતે કરવું તે બધું સમજાવવા જઈ રહ્યા છીએ જેથી કરીને તમે તમારા મોટર્સ અને સર્વોને સંપૂર્ણ સરળતા સાથે નિયંત્રિત કરી શકો.

PCA9685 શું છે અને તેનો ઉપયોગ શેના માટે થાય છે?

PCA9685 પિન-આઉટ

El PCA9685 PWM (પલ્સ પહોળાઈ મોડ્યુલેશન) નિયંત્રક છે જે 16 આઉટપુટ સુધીનું સંચાલન કરવા માટે રચાયેલ છે, જે LED લાઇટ અને સર્વો મોટર્સને નિયંત્રિત કરવા માટે આદર્શ છે. તે I2C બસ દ્વારા વાતચીત કરે છે, જેનો અર્થ છે કે તેને Arduino અથવા Raspberry Pi જેવા માઇક્રોકન્ટ્રોલર સાથે કનેક્ટ કરવા માટે માત્ર બે પિનની જરૂર છે. ચોક્કસ સરનામાંઓના ઉપયોગ દ્વારા, તમે લગભગ 62 PWM આઉટપુટને નિયંત્રિત કરીને, સમાન I2C બસ સાથે આ મોડ્યુલોમાંથી 992 સુધી કનેક્ટ પણ કરી શકો છો. આનાથી તે એવા પ્રોજેક્ટ્સ માટે ખૂબ જ શક્તિશાળી વિકલ્પ બને છે કે જેમાં ઘણા બધા ઉપકરણોને સંકલિત રીતે સંચાલિત કરવાની જરૂર હોય છે.

નો સૌથી વ્યાપક ઉપયોગ PCA9685 તે એવા પ્રોજેક્ટ્સમાં છે જ્યાં PWM સિગ્નલની જરૂર છે. એક સ્પષ્ટ ઉદાહરણ સર્વોનું નિયંત્રણ છે, જે PWM સિગ્નલોથી નિયંત્રિત થાય છે. વધુમાં, નિયંત્રક પાસે ચોકસાઈ છે 12 બિટ્સ, જે તેને મહત્તમ 1600 Hz સુધી એડજસ્ટેબલ ફ્રીક્વન્સી સાથે ખૂબ જ ઝીણા સંકેતો ઉત્પન્ન કરવાની મંજૂરી આપે છે.

PCA9685 ની વિશેષતાઓ અને લાભો

નો મુખ્ય ફાયદો છે PCA9685 તે છે કે તે સતત PWM સિગ્નલો જનરેટ કરવાના સંદર્ભમાં માઇક્રોકન્ટ્રોલર પરથી બોજ દૂર કરે છે. આ ખાસ કરીને એવા પ્રોજેક્ટ્સમાં ઉપયોગી છે કે જેમાં ઘણા ઉપકરણોને નિયંત્રિત કરવાનો સમાવેશ થાય છે, કારણ કે તે મુખ્ય પ્રોસેસરને અન્ય કાર્યો પર ધ્યાન કેન્દ્રિત કરવાની મંજૂરી આપે છે.

  • 16 સ્વતંત્ર ચેનલો: 16 ચેનલોમાંથી દરેક સ્વતંત્ર PWM સિગ્નલ આઉટપુટ કરી શકે છે, જેનાથી તમે સર્વો, મોટર્સ અને LED લાઇટ્સ જેવા ઉપકરણોને નિયંત્રિત કરી શકો છો.
  • I2C નિયંત્રણ: PCA9685 મુખ્ય નિયંત્રક (Arduino, Raspberry Pi, વગેરે) સાથે વાતચીત કરવા માટે I2C ઈન્ટરફેસનો ઉપયોગ કરે છે અને સંચાર માટે માત્ર બે કેબલની જરૂર પડે છે (SDA અને SCL).
  • એક બસ પર બહુવિધ મોડ્યુલો: સમાન I62C બસમાં 9685 PCA2 મોડ્યુલ સુધી કનેક્ટ કરી શકાય છે, જે 992 PWM આઉટપુટ સુધી નિયંત્રિત કરે છે.
  • એડજસ્ટેબલ આવર્તન: 1600 હર્ટ્ઝ સુધીની ફ્રીક્વન્સીને સપોર્ટ કરે છે, જો કે લાક્ષણિક સર્વો કંટ્રોલ માટે 50-60 હર્ટ્ઝની આવર્તનનો ઉપયોગ થાય છે.

Arduino અને PCA9685 વચ્ચે જોડાણ

Arduino PCA9685

વચ્ચે જોડાણ PCA9685 મોડ્યુલ અને Arduino સરળ છે, અને તે I2C પિન (SCL અને SDA) અને પાવર પિનનો ઉપયોગ કરીને કરવામાં આવે છે. નીચેનું કોષ્ટક વિવિધ Arduino મોડલ્સ માટે લાક્ષણિક જોડાણોને સ્પષ્ટ કરે છે:

PCA9685 પિન કરો Arduino Uno/મોટા ભાઈ અરડિનો મેગા અરડિનો લિયોનાર્ડો
GND GND GND GND
5V 5V 5V 5V
એસસીએલ A5 21 3
એસડીએ A4 20 2

આ રૂપરેખાંકનમાં, પિન એ 4 અને એ 5 અથવા અનુરૂપ પ્લેટફોર્મ પર તેમના સમકક્ષ, PCA9685 મોડ્યુલના SDA (ડેટા) અને SCL (ક્લોક) પિન સાથે કનેક્ટ કરો. વધુમાં, સર્વો મોટર્સ માટે યોગ્ય બાહ્ય વીજ પુરવઠો હોવો મહત્વપૂર્ણ છે, ખાસ કરીને જો તમે બહુવિધ સર્વોને કનેક્ટ કરી રહ્યાં હોવ, કારણ કે Arduino તેમને યોગ્ય રીતે ચલાવવા માટે પૂરતો પ્રવાહ પ્રદાન કરતું નથી.

એનો ઉપયોગ કરવાની ભલામણ કરવામાં આવે છે 5V પુરવઠો સર્વોને પાવર કરવા માટે, અને ખાતરી કરો કે તમે પાવર પિનને યોગ્ય રીતે કનેક્ટ કરો છો. જો તમે 16 થી વધુ સર્વો વાપરો છો, તો પાવરને સ્થિર કરવા માટે બોર્ડ પર 1000uF કેપેસિટરને સોલ્ડર કરવાની પણ ભલામણ કરવામાં આવે છે.

કોડમાં રૂપરેખાંકન

ના PWM આઉટપુટનું સંચાલન કરવા માટે PCA9685, Adafruit દ્વારા વિકસિત પુસ્તકાલયનો ઉપયોગ થાય છે. તમે તેને પરથી ડાઉનલોડ કરી શકો છો તમારું ગિટહબ પૃષ્ઠ. અહીં અમે તમને મોડ્યુલને રૂપરેખાંકિત કરવા અને સર્વોને ખસેડવા માટે મૂળભૂત ઉદાહરણ બતાવીએ છીએ:

#include <Wire.h> #include <Adafruit_PWMServoDriver.h> Adafruit_PWMServoDriver servos = Adafruit_PWMServoDriver(); void setup() { servos.begin(); servos.setPWMFreq(60); // Configura la frecuencia PWM a 60Hz } void loop() { servos.setPWM(0, 0, 172); // Mueve el servo del canal 0 a la posición 0 grados delay(1000); servos.setPWM(0, 0, 565); // Mueve el servo a la posición 180 grados delay(1000); }

આ સરળ કોડ ચેનલ 0 સાથે જોડાયેલ સર્વો પર સ્વીપ ગતિ કરે છે, તેને 0 ડિગ્રીથી 180 ડિગ્રી સુધી લઈ જાય છે. તમે ફંક્શનનો ઉપયોગ કરી શકો છો સેટ પીડબલ્યુએમ() દરેક PCA9685 આઉટપુટને સ્વતંત્ર રીતે નિયંત્રિત કરવા માટે.

એક જ સમયે અનેક સર્વો ખસેડવું

નો એક મહાન ફાયદો PCA9685 તે તમને એકસાથે બહુવિધ સર્વો નિયંત્રિત કરવા દે છે. એક જ કોડ ચક્રની અંદર તમે બહુવિધ સર્વમોટર્સને અલગ-અલગ સ્થાનો પર કેવી રીતે ખસેડી શકો છો તે અહીં છે:

void loop() { setServo(0, 30); setServo(2, 90); setServo(4, 180); delay(1000); } void setServo(uint8_t n_servo, int angulo) { int duty = map(angulo, 0, 180, 172, 565); servos.setPWM(n_servo, 0, duty); }

આ કિસ્સામાં, અમે નામના કાર્યને વ્યાખ્યાયિત કરીએ છીએ setServo જે સર્વો નંબર અને તેના કોણને પરિમાણો તરીકે મેળવે છે, યોગ્ય પલ્સ પહોળાઈની ગણતરી કરીને અને તેને ઇચ્છિત સ્થિતિમાં ખસેડે છે. આ રીતે તમે બહુવિધ ચેનલોને સરળતાથી નિયંત્રિત કરી શકો છો.

વિવિધ સર્વો માટે મર્યાદા કેવી રીતે સેટ કરવી

બધા સર્વો પાસે 0° થી 180° સુધીના ખૂણાઓ માટે સમાન મૂલ્યોની શ્રેણી હોતી નથી. કેટલાક કિસ્સાઓમાં, તમારે આ મૂલ્યોને કસ્ટમ એડજસ્ટ કરવા પડશે. વિવિધ સર્વો માટે તમે આ સેટિંગ્સ કેવી રીતે બનાવી શકો છો તે અહીં છે:

unsigned int pos0[16]= {172, 256, 246, 246, 246, 172, 246, 200}; unsigned int pos180[16]= {565, 492, 492, 492, 492, 565, 492, 550}; void setServo(uint8_t n_servo, int angulo) { int duty = map(angulo, 0, 180, pos0[n_servo], pos180[n_servo]); servos.setPWM(n_servo, 0, duty); }

આ કોડ તમને PCA9685 સાથે જોડાયેલ દરેક સર્વો માટે લઘુત્તમ અને મહત્તમ મૂલ્યોને સમાયોજિત કરવાની મંજૂરી આપે છે, જો તમે વિવિધ સિગ્નલ રેન્જ સાથે સર્વોનો ઉપયોગ કરો છો તો તે અત્યંત ઉપયોગી થશે.

આ બધાને ધ્યાનમાં રાખીને, હવે તમારી પાસે PCA9685 નો ઉપયોગ કરીને તમારા પ્રથમ પ્રોજેક્ટને સેટ કરવા, કનેક્ટ કરવા અને કોડ કરવા માટે જરૂરી બધું છે. ભલે તમે સ્વતંત્રતાની બહુવિધ ડિગ્રી સાથે રોબોટ પર કામ કરી રહ્યાં હોવ, અથવા સમાંતરમાં ઘણા ઉપકરણોને નિયંત્રિત કરવાની જરૂર હોય, આ મોડ્યુલ તમને તે કાર્યક્ષમ અને સચોટ રીતે કરવા દેશે.

ભલે તમે સર્વો અથવા PWM આઉટપુટ સાથે કામ કરી રહ્યાં હોવ, PCA9685 તમારા માઇક્રોકન્ટ્રોલર પર માત્ર બે પિનનો ઉપયોગ કરીને 16 ચેનલો સુધી નિયંત્રિત કરવાનું ખૂબ જ સરળ બનાવે છે. થોડો અનુભવ અને સારા કોડ સાથે, તમે મુખ્ય પ્રોસેસરને ઓવરલોડ કર્યા વિના ખૂબ જ શક્તિશાળી એપ્લિકેશનો બનાવી શકો છો.


ટિપ્પણી કરવા માટે સૌ પ્રથમ બનો

તમારી ટિપ્પણી મૂકો

તમારું ઇમેઇલ સરનામું પ્રકાશિત કરવામાં આવશે નહીં. આવશ્યક ક્ષેત્રો સાથે ચિહ્નિત થયેલ છે *

*

*

  1. ડેટા માટે જવાબદાર: મિગ્યુએલ gelંજેલ ગેટóન
  2. ડેટાનો હેતુ: નિયંત્રણ સ્પામ, ટિપ્પણી સંચાલન.
  3. કાયદો: તમારી સંમતિ
  4. ડેટાની વાતચીત: કાયદાકીય જવાબદારી સિવાય ડેટા તૃતીય પક્ષને આપવામાં આવશે નહીં.
  5. ડેટા સ્ટોરેજ: cસેન્ટસ નેટવર્ક્સ (ઇયુ) દ્વારા હોસ્ટ કરેલો ડેટાબેઝ
  6. અધિકાર: કોઈપણ સમયે તમે તમારી માહિતીને મર્યાદિત, પુન recoverપ્રાપ્ત અને કા deleteી શકો છો.