કોડ શોધો

પાઠ 98-6: આર્ડુઇનો સાથે સી-સો LED ગેમ

પાઠ 98-6: આર્ડુઇનો સાથે સી-સો LED ગેમ

સીસો LED પ્રોજેક્ટ એ એક ક્લાસિક શરૂઆતી કસરત છે જે Arduino પ્રોગ્રામિંગની સૌથી મહત્વપૂર્ણ વિભાવનાઓમાંની એક શીખવે છે: બે આઉટપુટને સમયબદ્ધ લયમાં એકાંતરે ચાલુ કરવા. ફક્ત બે LED, બે રેઝિસ્ટર અને થોડા જમ્પર વાયરનો ઉપયોગ કરીને, તમે એક સર્કિટ બનાવશો જ્યાં લીલી LED અને લાલ LED વારાફરતી પ્રકાશિત થાય છે, જે રમતના મેદાનના સીસોની ઉપર-નીચેની ગતિની નકલ કરે છે. તે એક સરળ બિલ્ડ છે, પરંતુ તે મુખ્ય બિલ્ડિંગ બ્લોક્સ — પિન વ્યાખ્યાઓ, સમય સ્થિરાંકો, અને ક્રમિક digitalWrite() કૉલ્સ — રજૂ કરે છે, જે તમે લખશો તે લગભગ દરેક Arduino સ્કેચમાં દેખાય છે.

two LEDs with resistor on breadboard connected to Arduino
two LEDs with resistor on breadboard connected to Arduino

કારણ કે સીસો પેટર્ન ખરેખર ફક્ત "એક વસ્તુ ચાલુ કરો, તેને બંધ કરો, બીજી વસ્તુ ચાલુ કરો, તેને બંધ કરો, પુનરાવર્તન કરો" છે, તે જ રચના ડઝનેક વ્યવહારુ ઉપયોગોમાં વિસ્તરે છે. તમારી કલ્પનાને જગાડવા માટે અહીં થોડા વિચારો છે:

  • એકાંતરે સૂચક લાઇટ્સ — કંટ્રોલ પેનલ પર "સુરક્ષિત / ચેતવણી" જોડી જે આગળ-પાછળ બદલાય છે.
  • રેલરોડ ક્રોસિંગ સિમ્યુલેશન — ટ્રેન નજીક આવતાં બે દીવા એકાંતરે ઝબકે છે.
  • બે-લેન દિશા ચિહ્ન — ડ્રાઇવવે અથવા પાર્કિંગ લોટ માટે "આ રીતે જાઓ / તે રીતે જાઓ" તીર ડિસ્પ્લે.
  • તહેવારની સજાવટ — ઉત્સવની ઝબકતી અસર માટે લાલ અને લીલી LED સ્થાન બદલે છે.
  • શીખવાનો પાયો — અહીંની સમય અને ક્રમિકતાની કુશળતા એ જ છે જેનો તમે પછીથી ટ્રાફિક લાઇટ્સ, વોકિંગ લાઇટ્સ અને મલ્ટી-LED એનિમેશન માટે ઉપયોગ કરશો.

સીસો અસર કેવી રીતે કાર્ય કરે છે

LED એ એક ડાયોડ છે જે પ્રકાશ ઉત્સર્જિત કરે છે, અને તેનું પ્રતીક એક રેખા તરફ નિર્દેશ કરતો ત્રિકોણ છે. સપાટ રેખા કેથોડ (નકારાત્મક) છે, અને ત્રિકોણની પાછળનો ભાગ એનોડ (હકારાત્મક) છે. ભૌતિક LED પર, લાંબો પગ એનોડ છે અને ટૂંકો, સપાટ બાજુવાળો પગ કેથોડ છે. પ્રવાહ એનોડથી કેથોડ તરફ વહે છે, તેથી એનોડ તમારા Arduino પિન તરફ જોડાય છે અને કેથોડ રેઝિસ્ટર દ્વારા ગ્રાઉન્ડ સાથે જોડાય છે (વિડિયોમાં 02:29 પર).

રેઝિસ્ટર મહત્વનું છે. એક સામાન્ય નાની LED તેની આસપાસ લગભગ 2 V અને લગભગ 10 mA પ્રવાહ ઇચ્છે છે. જો તમારું Arduino 5 V પૂરું પાડે, તો બાકીના 3 V રેઝિસ્ટર દ્વારા ઘટાડવા પડશે. ઓહ્મના નિયમનો ઉપયોગ કરીને, R = V / I = 3 V / 0.01 A = 300 Ω. લગભગ 300 Ω થી 1000 Ω સુધીનું કંઈપણ કામ કરશે — ઊંચા મૂલ્યો ફક્ત LEDને મંદ બનાવે છે (વિડિયોમાં 03:49 પર).

સીસો માટે, બંને LED સમાન રીતે વાયર કરવામાં આવે છે: દરેક એનોડ તેના પોતાના Arduino પિન પર જાય છે, અને દરેક કેથોડ તેના પોતાના રેઝિસ્ટર દ્વારા સહિયારા ગ્રાઉન્ડ રેલ પર જાય છે. બંને વચ્ચેનો એકમાત્ર તફાવત એ છે કે તેઓ કયા પિન સાથે જોડાયેલા છે.

હાર્ડવેર અને ઘટકો

  • 1 × Arduino બોર્ડ (Uno, Nano, Mega, અથવા સમાન)
  • 2 × LED — એક લાલ, એક લીલી (કોઈપણ બે રંગો કામ કરે છે)
  • 2 × રેઝિસ્ટર, 300 Ω થી 1000 Ω (220 Ω અથવા 330 Ω સામાન્ય પસંદગીઓ છે)
  • 1 × બ્રેડબોર્ડ
  • જમ્પર વાયર (DuPont વાયર)
  • પ્રોગ્રામિંગ અને પાવર માટે USB કેબલ

બસ એટલું જ — કોઈ પુશ બટન નહીં, કોઈ પોટેન્શિયોમીટર નહીં, કોઈ સેન્સર નહીં. આ જાણી જોઈને શક્ય તેટલી ઓછામાં ઓછી ભાગોની યાદી છે જેથી તમે સંપૂર્ણપણે કોડ લોજિક પર ધ્યાન કેન્દ્રિત કરી શકો.

વાયરિંગ માર્ગદર્શિકા

Arduino schematic for two LEDs see saw
Arduino schematic for two LEDs see saw
Arduino wiring for two LEDs see saw
Arduino wiring for two LEDs see saw

વાયરિંગ સપ્રમાણ છે અને અનુસરવામાં સરળ છે. બંને LED બ્રેડબોર્ડમાં દાખલ કરો. લીલી LEDના એનોડ (લાંબો પગ) ને Arduino પિન 2 સાથે અને લાલ LEDના એનોડને Arduino પિન 3 સાથે જોડો. દરેક કેથોડ (ટૂંકો પગ) તેના પોતાના રેઝિસ્ટરના એક છેડે જોડાય છે, અને બંને રેઝિસ્ટરના બીજા છેડા એક સહિયારા રેલમાં જોડાય છે જે Arduinoના GND પિન પર જાય છે (વિડિયોમાં 27:45 પર).

કારણ કે બંને LED સમાન ગ્રાઉન્ડ રેલ વહેંચે છે, બ્રેડબોર્ડથી Arduino પર પાછા ફક્ત એક ગ્રાઉન્ડ વાયરની જરૂર છે. બે સિગ્નલ વાયર — એક પિન 2 પર, એક પિન 3 પર — એ જ એકમાત્ર જોડાણો છે જે બંને LED વચ્ચે બદલાય છે.

કોડ સમજૂતી

સ્કેચ જાણી જોઈને ટૂંકું છે જેથી દરેક લાઇન અર્થપૂર્ણ હોય. અહીં તે ભાગો છે જે તમે ખરેખર સમાયોજિત કરવા માંગશો:

પિન વ્યાખ્યાઓ

const int greenLEDPin = 2;//define a pin for green LED
const int redLEDPin = 3;//define a pin for red LED

આ બે સ્થિરાંકો Arduino ને કહે છે કે LED કયા પિન સાથે જોડાયેલા છે. જો તમે તમારા LED ને અલગ પિન પર વાયર કર્યા હોય — જેમ કે પિન 8 અને પિન 9 — તો આ એકમાત્ર જગ્યા છે જ્યાં તમારે બદલવાની જરૂર છે. const કીવર્ડનો અર્થ છે કે મૂલ્ય પ્રોગ્રામના જીવનકાળ માટે નિશ્ચિત છે અને પછીથી આકસ્મિક રીતે ફરીથી લખી શકાતું નથી.

સમય સ્થિરાંક

const int ON_TIME = 500;

આ એકલ મૂલ્ય નિયંત્રિત કરે છે કે દરેક LED કેટલા સમય સુધી પ્રકાશિત રહે છે, મિલિસેકન્ડમાં. 500નું મૂળભૂત મૂલ્ય એટલે કે દરેક LED અડધી સેકન્ડ માટે ચાલુ રહે છે, તેથી પૂર્ણ લીલા-પછી-લાલ ચક્ર એક સેકન્ડ લે છે. ઝડપી બ્લિંક માટે તેને 200 સુધી ઘટાડો, અથવા ધીમા, વિચારપૂર્વક એક-સેકન્ડ-પ્રતિ-LED લય માટે તેને 1000 સુધી વધારો (વિડિયોમાં 30:17 પર). કારણ કે બંને LED આ સ્થિરાંક વહેંચે છે, તેઓ હંમેશા સિંકમાં રહે છે — સીસૉ સંતુલિત રહે છે.

સેટઅપ

setup()ની અંદર, બે પિન pinMode() સાથે આઉટપુટ તરીકે જાહેર કરવામાં આવે છે, અને સીરિયલ મોનિટર 9600 બૉડ પર શરૂ કરવામાં આવે છે જેથી તમે LED સ્થિતિના સંદેશા સ્ક્રોલ થતા જોઈ શકો. આ એક વાર ચાલે છે, જ્યારે બોર્ડ પાવર અપ થાય છે.

લૂપ

loop() ફંક્શન એ છે જ્યાં સીસૉ થાય છે. તે ક્રમમાં ચાર ક્રિયાઓ કરે છે: લીલી LED ચાલુ કરો, ON_TIME મિલિસેકન્ડ રાહ જુઓ, તેને બંધ કરો, પછી લાલ LED માટે તે જ કરો. જ્યારે લૂપ અંતે પહોંચે છે, તે આપમેળે ઉપરથી ફરી શરૂ થાય છે — એટલે કે આખું "સીસૉ" વર્તન. ત્યાં કોઈ સ્થિતિ ચલ નથી અને તપાસવા માટે કોઈ શરત નથી, કારણ કે પેટર્ન સંપૂર્ણપણે ક્રમિક છે.

લાઇવ પ્રોજેક્ટ અને નિદર્શન

એકવાર કોડ અપલોડ થાય પછી, તમે લીલી LED અડધી સેકન્ડ માટે પ્રકાશિત થતી જોશો, પછી લાલ LED, પછી ફરી લીલી, અનંતપણે. સીરિયલ મોનિટર ખોલવાથી (Tools → Serial Monitor, અથવા Ctrl+Shift+M) પેટર્ન ચાલતી વખતે "Green LED ON" અને "Red LED ON" છપાયેલા દેખાય છે, જે તમે સેટ કરેલા સમય સાથે સમય મેળ ખાય છે તેની પુષ્ટિ કરવાની એક સરળ રીત છે.

ON_TIMEને 200માં બદલીને ફરીથી અપલોડ કરવાનો પ્રયાસ કરો — LED નોંધપાત્ર રીતે ઝડપથી બદલાશે. તેને 1000 પર સેટ કરો અને સીસૉ ધીમું, વિચારપૂર્વક વૈકલ્પિક બની જાય છે. તમે Arduino ને USB થી ડિસ્કનેક્ટ કરીને બેટરી અથવા 5 V એડેપ્ટરથી પાવર આપી શકો છો; સ્કેચ સમાન રીતે ચાલે છે કારણ કે તે પહેલેથી જ બોર્ડની મેમરીમાં સંગ્રહિત છે.

આ વિડિયોના સંબંધિત પ્રોજેક્ટ્સ

પ્રકરણો

  • [00:00] 10 Arduino LED પ્રોજેક્ટ્સની ઝલક
  • [01:22] Arduino સ્ટેપ-બાય-સ્ટેપ કોર્સનો પરિચય
  • [02:29] LED સમજવી: પ્રતીક, એનોડ, અને કેથોડ
  • [03:49] ઓહ્મના નિયમ સાથે LED શ્રેણી રેઝિસ્ટરની ગણતરી
  • [27:32] સીસૉ LED પ્રોજેક્ટનો પરિચય
  • [27:45] સીસૉ પ્રોજેક્ટ માટે વાયરિંગ ડાયાગ્રામ
  • [28:28] સીસૉ કોડ સમજાવવો
  • [30:06] વિવિધ સમય સાથે સીસૉનું નિદર્શન
  • [30:47] વૉકિંગ લાઇટ પ્રોજેક્ટની ઝલક
  • [36:41] પુશ બટન દ્વારા નિયંત્રિત વૉકિંગ લાઇટ
  • [42:25] પોટેન્શિયોમીટર સાથે LED વોલ્ટેજ બાર મીટર
  • [49:25] Arduino ટ્રાફિક લાઇટ પ્રોજેક્ટ

છબીઓ

Arduino wiring for two LEDs see saw
Arduino wiring for two LEDs see saw
Arduino schematic for two LEDs see saw
Arduino schematic for two LEDs see saw
330_ohm_resistor
330_ohm_resistor
Arduino સાથે જોડાયેલા બ્રેડબોર્ડ પર રેઝિસ્ટર સાથે બે LED
Arduino સાથે જોડાયેલા બ્રેડબોર્ડ પર રેઝિસ્ટર સાથે બે LED
938-Lessson 98-LED-6: Arduino code two LED, See-saw
ભાષા: C++
This code has not been parsed yet. Please return to the admin panel to parse it.

તમને જોઈતી વસ્તુઓ

સંસાધનો અને સંદર્ભો

ફાઇલો📁

Arduino લાઇબ્રેરીઓ (zip)

વપરાશકર્તાનું માર્ગદર્શિકા