અરડિનો સાથે તમારી સર્વોને કેવી રીતે નિયંત્રિત કરવી

જ્હોન ન્યુસી દ્વારા

પોન્ટિનોમીટર (અથવા કોઈપણ એનાલોગ સેન્સર) નો ઉપયોગ કરીને, તમે આર્કેડ્સ પરના યાંત્રિક પંજાને નિયંત્રિત કરશો તેવી રીતે તમારા આર્દોનો સાથેનો સર્વો સીધો જ નિયંત્રિત કરવો શક્ય છે.



નોબ સ્કેચ

આ ઉદાહરણ તમને બતાવે છે કે તમે તમારા સર્વોને કોઈ વિશિષ્ટ ડિગ્રીમાં ખસેડવા માટે સંભવિત માધ્યમનો ઉપયોગ કેવી રીતે કરી શકો છો.



તમને જરૂર છે:

સ્વીપો ઉદાહરણ તરીકે સ્વીપના દાખલામાં બરાબર વાયર થયેલ છે, પરંતુ આ સમયે તમારે પોન્ટિનોમીટર માટે 5 વી અને જી.એન.ડી. સાથે વધારાના જોડાણોની જરૂર છે, તેથી તમારે વધારાના પિન આપવા માટે બ્રેડબોર્ડનો ઉપયોગ કરવો આવશ્યક છે. બર્ડબોર્ડ પર હકારાત્મક (+) અને નકારાત્મક (-) પંક્તિઓ સાથે અરડિનો પર 5 વી અને જીએનડી પિનને કનેક્ટ કરો.

સર્વરને બ્રેડબોર્ડ પર ત્રણ હેડર પિન અથવા ત્રણ જમ્પ વાયરની પંક્તિનો ઉપયોગ કરીને કનેક્ટ કરો. લાલ સોકેટને 5 વી પંક્તિ સાથે, કાળો / ભૂરા રંગનું સોકેટ જી.એન.ડી. પંક્તિમાં અને સફેદ / પીળી સોકેટને અરડિનો પર 9 પિન કરવા માટે કનેક્ટ કરો.

image0.jpg

બentiંટબોર્ડ પર પોટેંટીઓમીટર માટે જગ્યા શોધો. અરડિનો પર A0 પિન કરવા માટે સેન્ટર પિન અને બાકીની પિનને એક બાજુ 5V અને બીજી બાજુ GND થી કનેક્ટ કરો.

image1.jpg

તમે સર્કિટ બનાવ્યા પછી, ફાઇલ → ઉદાહરણો → સર્વો → નોબ પસંદ કરીને સ્કેચ ખોલો. સ્કેચ માટેનો કોડ નીચે મુજબ છે:

// Controlling a servo position using a potentiometer (variable resistor) // by Michal Rinott #include <  Servo  .h>  Servo  myservo; // create servo object to control a servo  int  potpin = 0; // analog pin used to connect the potentiometer  int  val; // variable to read the value from the analog pin void setup() { myservo.  attach  (9); // attaches the servo on pin 9 to the servo object } void loop() { val =  analogRead  (potpin); // reads the value of the // potentiometer (value between // 0 and 1023) val =  map  (val, 0, 1023, 0, 179); // scale it to use it with // the servo (value between 0 and // 180) myservo.  write  (val); // sets the servo position according // to the scaled value  delay  (15); // waits for the servo to get there }

તમે નોંધ્યું છે કે ટિપ્પણીઓ અને કોડ વચ્ચે થોડી વિસંગતતાઓ છે. સર્વો ખસેડવા માટેની ડિગ્રીની શ્રેણીનો ઉલ્લેખ કરતી વખતે, સ્કેચમાં 0 થી 179 અને 0 થી 180 બંનેનો ઉલ્લેખ છે.

યુ -47700 દવા પરીક્ષણ

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

તમને સ્કેચ મળ્યા પછી, કોડ ચકાસવા માટે કમ્પાઇલ બટન દબાવો. કમ્પાઇલરે સંદેશ બ inક્સમાં કોઈપણ સિન્ટેક્સ ભૂલોને પ્રકાશિત કરવી જોઈએ, જે શોધવામાં આવે ત્યારે લાલ રંગમાં પ્રકાશ પામે છે.

જો સ્કેચ યોગ્ય રીતે કમ્પાઇલ કરે છે, તો તમારા બોર્ડ પર સ્કેચ અપલોડ કરવા માટે અપલોડ કરો ક્લિક કરો. જ્યારે તે અપલોડ થઈ જાય, ત્યારે તમારું સર્વો ચાલુ થવું જોઈએ જ્યારે તમે તમારું સંભવિત .ંચું કદ ફેરવશો.

જો એવું ન થાય, તો તમારે તમારા વાયરિંગને બે વાર તપાસવું જોઈએ:

  • ખાતરી કરો કે તમે સર્નોથી ડેટા (સફેદ / પીળો) લાઇનને કનેક્ટ કરવા માટે પિન 9 નો ઉપયોગ કરી રહ્યાં છો.

  • પોટિનોમીટરથી તમારા કનેક્શંસ તપાસો અને ખાતરી કરો કે સેન્ટર પિન એ એનાલોગ પિન 0 થી કનેક્ટેડ છે.

  • બ્રેડબોર્ડ પરના જોડાણો તપાસો. જો બ્રેડબોર્ડમાં સાચી પંક્તિઓનો ઉપયોગ કરીને જમ્પ વાયર અથવા ભાગો જોડાયેલ ન હોય તો, તેઓ કામ કરશે નહીં.

નોબ સ્કેચ ભંગાણ

ઘોષણાઓમાં, સર્વો લાઇબ્રેરી, સર્વો., અને એક નવો સર્વો objectબ્જેક્ટ નામ આપવામાં આવ્યું છે. એનાલોગ ઇનપુટ પિન 0 ની કિંમત સાથે જાહેર કરવામાં આવે છે, તે બતાવે છે કે તમે એનાલોગ 0 નો ઉપયોગ કરી રહ્યાં છો.

તમે નોંધ્યું હશે કે પિનને 0 માં ગણવામાં આવે છે, અન્ય ઉદાહરણોમાં નહીં 0. કાં તો સારું છે, કારણ કે A0 એ 0 નો માત્ર એક ઉપનામ છે, કારણ કે A1 એ 1 નો છે, અને તેથી વધુ. એ 0 નો ઉપયોગ સ્પષ્ટતા માટે સારું છે, પરંતુ વૈકલ્પિક છે.

વાંચનના મૂલ્યને સંગ્રહિત કરવા માટે એક છેલ્લું ચલ છે, જે આઉટપુટ બનશે.

#include <  Servo  .h>  Servo  myservo; // create servo object to control a servo  int  potpin = 0; // analog pin used to connect the potentiometer  int  val; // variable to read the value from the analog pin

સેટઅપમાં, વ્યાખ્યાયિત કરવાની એકમાત્ર વસ્તુ માયસેર્વો છે, જે પિન 9 નો ઉપયોગ કરી રહી છે.

શ્વાન માટે pg 600
void setup() { myservo.  attach  (9); // attaches the servo on pin 9 to the servo object }

ઇનપુટ અને આઉટપુટ માટે બે અલગ ચલોનો ઉપયોગ કરવાને બદલે, આ સ્કેચ ફક્ત એકનો ઉપયોગ કરે છે. પ્રથમ,કલાકકાચા સેન્સર ડેટા સંગ્રહિત કરવા માટે વપરાય છે, 0 થી 1023 ની કિંમત. આ મૂલ્ય પછી. ની મદદથી પ્રક્રિયા કરવામાં આવે છેનકશોસર્વોની તેની રેન્જને સ્કેલ કરવા માટે કાર્ય: 0 થી 179.

આ મૂલ્ય પછી સર્વો પર ઉપયોગ કરીને લખવામાં આવશેmyservo.writ. તે સ્થાન પર પહોંચવામાં 15 મિલિસેકન્ડ વિલંબ પણ છે. પછી લૂપ પુનરાવર્તન કરે છે અને તેની સ્થિતિને જરૂરી મુજબ અપડેટ કરે છે.

void loop() { val =  analogRead  (potpin); // reads the value of the potentiometer // (value between 0 and 1023) val =  map  (val, 0, 1023, 0, 179); // scale it to use it with the servo // (value between 0 and 180) myservo.  write  (val); // sets the servo position according to // the scaled value  delay  (15); // waits for the servo to get there }

સર્કિટમાં આ સરળ ઉમેરા સાથે, કોઈપણ પ્રકારના ઇનપુટ સાથે સર્વોને નિયંત્રિત કરવું શક્ય છે. આ ઉદાહરણમાં, કોડ એનાલોગ ઇનપુટનો ઉપયોગ કરે છે, પરંતુ થોડા ફેરફારો સાથે તે સરળતાથી ડિજિટલ ઇનપુટનો ઉપયોગ કરી શકે છે.