AN0007 Arduino થી પ્લેટિનમ COMM
“
ઉત્પાદન માહિતી
વિશિષ્ટતાઓ
- ઉત્પાદનનું નામ: ARDUINO થી PLATINUM COMMS HELP DOCUMENT
- ઉત્પાદક: ડાયનામેન્ટ લિમિટેડ
- સરનામું: હર્મીtagઇ લેન ઇન્ડસ્ટ્રિયલ એસ્ટેટ, કિંગ્સ મિલ વે,
મેન્સફિલ્ડ, નોટિંગહામશાયર, NG18 5ER, યુકે - સંપર્ક: ટેલિફોન: 44 (0)1623 663636, ઇમેઇલ: sales@dynament.com,
Webસાઇટ: www.dynament.com - અંક: ૧.૨, તારીખ: ૦૯/૦૪/૨૦૨૫
ઉત્પાદન વપરાશ સૂચનાઓ
સેન્સરને કનેક્ટ કરી રહ્યું છે
આ ડેટા શીટ Arduino Mega નો ઉપયોગ ભૂતપૂર્વ તરીકે કરે છેampલે. આ રીતે કનેક્ટ કરો
નીચે મુજબ
- 5v -> 5v આર્ડિનો પિન
- 0v -> આર્ડિનો GND
- Tx -> Arduino RX1
- Rx -> પોટેન્શિયલ ડિવાઇડરના આઉટપુટ પર જાય છે. ઇનપુટ
Arduino Tx પર જાય છે
ભાગtage સુસંગતતા
Arduino 5v લોજિક હાઇ વાપરે છે જ્યારે પ્લેટિનમ સેન્સર વાપરે છે
૩.૩v. વોલ્યુમનો ઉપયોગ કરોtagR1 અને R2 માટે સૂચવેલ મૂલ્યો સાથે e વિભાજક
સેન્સરને નુકસાન અટકાવવા માટે 4K7.
Arduino IDE સેટઅપ
- Arduino IDE સોફ્ટવેરનું નવીનતમ સંસ્કરણ અહીંથી ડાઉનલોડ કરો
આર્ડુઇનો webસાઇટ - ટૂલ્સમાં Arduino બોર્ડ, પ્રોસેસર અને પોર્ટ પસંદ કરો.
ડ્રોપ-ડાઉન મેનુ.
કોડ અપલોડ
- આપેલ ભૂતપૂર્વ નકલ કરોampArduino IDE માં કોડ દાખલ કરો.
- તીર પર ક્લિક કરીને Arduino પર કોડ અપલોડ કરો.
- સીરીયલ મોનિટર ખોલો view ડેટા ટ્રાન્સમિશન.
FAQ
પ્રશ્ન: જો મારી પાસે ફક્ત એક જ કોમ સાથે Arduino Uno હોય તો મારે શું કરવું જોઈએ?
બંદર?
A: પ્લેટિનમ સેન્સરને તે પોર્ટ સાથે કનેક્ટ કરો. ઉપયોગ કરતી વખતે
સીરીયલ મોનિટર, તે ટ્રાન્સમિટેડ હેક્સ પણ બતાવશે.
"`
એપ્લિકેશન નોંધ AN0007
ARDUINO થી PLATINUM COMMS મદદ દસ્તાવેજ
ડાયનામેન્ટ લિમિટેડ
હર્મીtagઇ લેન ઇન્ડસ્ટ્રિયલ એસ્ટેટ કિંગ્સ મિલ વે મેન્સફિલ્ડ નોટિંગહામશાયર NG18 5ER યુકે. ટેલિફોન: 44 (0)1623 663636
ઇમેઇલ: sales@dynament.com www.dynament.com
AN0007
અંક 1.2
09/04/2025
નોટ 805 બદલો
1 માંથી પૃષ્ઠ 14
સામગ્રી
ડાયનામેન્ટ લિમિટેડ ………………………………………………………………………………………………….૧ સેન્સરને કનેક્ટ કરવું…………………………………………………………………………………………………………..૩ આર્ડિનો IDE ……………………………………………………………………………………………………………૫ કોડ સમજૂતી………………………………………………………………………………………………..૯ પેકેટ બ્રેકડાઉન …………………………………………………………………………………………………………….૧૧ Serial.read() નો ઉપયોગ કરીને …………………………………………………………………………………………………………….૧૩
અદ્યતન રૂપાંતર નોંધો………………………………………………………………………….14
AN0007
અંક 1.2
09/04/2025
નોટ 805 બદલો
2 માંથી પૃષ્ઠ 14
સેન્સરને કનેક્ટ કરવું આ ડેટા શીટ Arduino Mega નો ઉપયોગ ભૂતપૂર્વ તરીકે કરે છેample. Ardunio Mega એક કરતાં વધુ કોમ પોર્ટ પૂરા પાડે છે, તેથી કોમ પોર્ટ 1 નો ઉપયોગ સેન્સર સાથે વાતચીત કરવા માટે થાય છે અને કોમ પોર્ટ 0 નો ઉપયોગ PC પર પ્રિન્ટ કરવા માટે થાય છે.
આર્ડુઇનો 5v લોજિક હાઇ વાપરે છે જ્યારે પ્લેટિનમ સેન્સર 3.3v વાપરે છે, તેથી સેન્સરને નુકસાન અટકાવવા માટે વોલ્યુમtage વિભાજકનો ઉપયોગ કરવો આવશ્યક છે. R1 અને R2 માટે સૂચવેલ મૂલ્યો 4K7 છે.
આકૃતિ 1: વોલ્યુમ ઘટાડે છેtage થી ઉપયોગી સ્તર સુધી
આર્ડુનો રીસીવરમાં જતી સેન્સર ટ્રાન્સમિટ લાઇનને ડિવાઇડરની જરૂર નથી કારણ કે 3.3v એ આર્ડુનો માટે સ્વીકાર્ય ઇનપુટ છે.
સેન્સરને પાવર આપવા માટે તે 5v અને 0v સાથે જોડાયેલ હોવું જરૂરી છે. આ કરવા માટે તમે Arduino પરના પિનનો ઉપયોગ કરી શકો છો.
આ પૂર્ણ થયા પછી, સેન્સરમાં હવે નીચેના પિન જોડાયેલા હોવા જોઈએ:
5v -> 5v આર્ડિનો પિન
0v -> આર્ડિનો GND
Tx -> Arduino RX1
Rx -> પોટેન્શિયલ ડિવાઈડરના આઉટપુટ પર જાય છે. ઇનપુટ Arduino Tx પર જાય છે.
AN0007
અંક 1.2
09/04/2025
નોટ 805 બદલો
3 માંથી પૃષ્ઠ 14
આ પૂર્ણ થયા પછી, તમારું પ્લેટિનમ સેન્સર બતાવ્યા પ્રમાણે જોડાયેલ હોવું જોઈએ:
આકૃતિ 2: સોલ્ડર એડેપ્ટર સાથે સેન્સર ઊંધું બતાવેલ છે
જો તમે ફક્ત એક જ કોમ્યુટર પોર્ટ (જેમ કે Arduino Uno) ધરાવતો Arduino વાપરી રહ્યા છો, તો તમારે તેને તેની સાથે કનેક્ટ કરવું પડશે, જો કે જ્યારે તમે સીરીયલ મોનિટરનો ઉપયોગ કરો છો (પછીથી બતાવેલ છે) ત્યારે તે ટ્રાન્સમિટ થયેલ હેક્સ પણ બતાવશે.
AN0007
અંક 1.2
09/04/2025
નોટ 805 બદલો
4 માંથી પૃષ્ઠ 14
Arduino IDE Arduino પર જાઓ webસાઇટ પર જાઓ અને Arduino IDE સોફ્ટવેરનું નવીનતમ સંસ્કરણ ડાઉનલોડ કરો. ઇન્સ્ટોલ થયા પછી તમને નીચેની સ્ક્રીન દેખાશે:
આકૃતિ 3: આર્ડુનો હોમ સ્ક્રીન
ટૂલ્સ ડ્રોપ ડાઉન મેનૂમાં, તમે જે Arduino બોર્ડ, પ્રોસેસર અને પોર્ટનો ઉપયોગ કરી રહ્યા છો તે પસંદ કરો:
આકૃતિ 4: બોર્ડ, પ્રોસેસર અને પોર્ટ વિકલ્પો પસંદ કરો
AN0007
અંક 1.2
09/04/2025
નોટ 805 બદલો
5 માંથી પૃષ્ઠ 14
આ ભૂતપૂર્વમાં નકલ કરોampકોડ: રદબાતલ મોકલો_વાંચો_જીવંત_ડેટા_સરળ(); રદબાતલ પ્રાપ્ત કરો_વાંચો_જીવંત_ડેટા_સરળ();
રદબાતલ સેટઅપ() { સીરીયલ.બિગીન(38400); સીરીયલ1.બિગીન(38400);
}
રદબાતલ લૂપ() { મોકલો_વાંચો_જીવંત_ડેટા_સરળ(); પ્રાપ્ત કરો_વાંચો_જીવંત_ડેટા_સરળ(); વિલંબ(5000);
}
void send_read_live_data_simple(){ // 0x10, 0x13, 0x06, 0x10, 0x1F, 0x00, 0x58 Serial1.write(0x10); Serial1.write(0x13); Serial1.write(0x06); Serial1.write(0x10); Serial1.write(0x1F); Serial1.write(0x00); Serial1.write(0x58);
}
રદબાતલ રીસીવ_રીડ_લાઇવ_ડેટા_સિમ્પલ(){ જ્યારે (સીરીયલ1.ઉપલબ્ધ()) { સીરીયલ.પ્રિન્ટ(સીરીયલ1.રીડ(), હેક્સ); સીરીયલ.પ્રિન્ટ(“|”); } સીરીયલ.પ્રિન્ટએલએન();
}
AN0007
અંક 1.2
09/04/2025
નોટ 805 બદલો
6 માંથી પૃષ્ઠ 14
આકૃતિ 5: કોડ અપલોડ કરવા માટે તૈયાર છે
Arduino પર કોડ અપલોડ કરવા માટે તીર પર ક્લિક કરો. Arduino પ્રોગ્રામ થઈ ગયા પછી સીરીયલ મોનિટર ખોલો.
AN0007
આકૃતિ 6: સીરીયલ મોનિટર ખોલો
અંક 1.2
09/04/2025
નોટ 805 બદલો
7 માંથી પૃષ્ઠ 14
આકૃતિ 7: સીરીયલ મોન્ટર પ્રાપ્ત થયેલ પેકેટ બતાવે છે
AN0007
અંક 1.2
09/04/2025
નોટ 805 બદલો
8 માંથી પૃષ્ઠ 14
કોડ સમજૂતી Arduino IDE Arduino ને પ્રોગ્રામ કરવા માટે C++ નો ઉપયોગ કરે છે.
આ લાઈન ફોરવર્ડ ડિક્લેરેશન છે. આનો ઉપયોગ માઇક્રોકન્ટ્રોલરને કહેવા માટે થાય છે કે પ્રોગ્રામમાં આગળ નીચે `send_read_live_data_simple' ફંક્શન અને `receive_read_live_data_simple' ફંક્શન કહેવામાં આવશે.
આગળ સેટઅપ ફંક્શન છે. આ કોડ સ્ટાર્ટઅપ પર ફક્ત એક જ વાર ચાલે છે. તે Serial0 અને Serial1 પોર્ટ શરૂ કરે છે. Serial0 એ સીરીયલ મોનિટર સ્ક્રીનમાં બતાવવામાં આવે છે. Serial1 એ સેન્સર સાથે વાતચીત કરવા માટેનો પોર્ટ છે.
આ મુખ્ય લૂપ છે, આ કોડ વારંવાર લૂપ થાય છે. તમે ફંક્શન નામો વાંચીને જોઈ શકો છો કે તે લાઇવ ડેટા સ્ટ્રક્ટના સરળ સંસ્કરણને વાંચવા માટે વિનંતી મોકલે છે. પછી તે જવાબ વાંચવા માટે રીસીવ પોર્ટ વાંચે છે. આ પછી માઇક્રોકન્ટ્રોલર 5000mS રાહ જુએ છે.
આ ફંક્શન લાઇવ ડેટા સિમ્પલ સ્ટ્રક્ટને સીરીયલ પોર્ટ 1 પર મેળવવા માટેની વિનંતી લખે છે. જેમ પહેલા ઉલ્લેખ કર્યો છે તેમ જો તમારી પાસે ફક્ત એક જ સીરીયલ પોર્ટ હોય તો તમારે સીરીયલ 1 ને સીરીયલમાં બદલવું જોઈએ. આદેશોની સંપૂર્ણ સૂચિ જોવા માટે, પ્રીમિયર સેન્સર કોમ્યુનિકેશન્સ પ્રોટોકોલ દસ્તાવેજનો સંદર્ભ લો. અહીં દસ્તાવેજનો તે ભાગ છે જે તમને કહે છે કે આ આદેશ માટે શું લખવું:
AN0007
અંક 1.2
09/04/2025
નોટ 805 બદલો
9 માંથી પૃષ્ઠ 14
આ ફંક્શન પ્લેટિનમ સેન્સરમાંથી ડેટા પ્રાપ્ત થવાનો બાકી રહે ત્યારે રીડ ફંક્શનને લૂપ કરે છે. Serial1.read() સેન્સર સાથે જોડાયેલ Serial1 માંથી ડેટા વાંચે છે અને તેને Serial0 પર પ્રિન્ટ કરે છે જેથી તે સીરીયલ મોનિટર પર જોઈ શકાય. ત્યારબાદ `|' અક્ષર છાપવામાં આવે છે જેથી પ્રાપ્ત થતા દરેક બાઈટને અલગ કરી શકાય જેથી તે સીરીયલ મોનિટર પર સ્પષ્ટ થાય.
આ પૂર્ણ થયા પછી તે સીરીયલ મોનિટર પર એક નવી લાઇન લખે છે.
AN0007
અંક 1.2
09/04/2025
નોટ 805 બદલો
10 માંથી પૃષ્ઠ 14
પેકેટ બ્રેકડાઉન આકૃતિ 8 અને 9 રીસીવ અને ટ્રાન્સમિટ લાઇન સાથે જોડાયેલા સીરીયલ ડીકોડરનું આઉટપુટ દર્શાવે છે.
આકૃતિ 8: આઉટગોઇંગ પેકેટ
આકૃતિ 9: આવનાર પેકેટ
આકૃતિ 10 અને 11 અનુક્રમે આઉટગોઇંગ અને ઇનકમિંગ હેક્સ દર્શાવે છે જેમાં એક કોલમ છે જે દર્શાવે છે કે તે કયો આદેશ છે.
આકૃતિ 10: આઉટગોઇંગ પેકેટનું વર્ણન
AN0007
અંક 1.2
09/04/2025
નોટ 805 બદલો
11 માંથી પૃષ્ઠ 14
આકૃતિ ૧૧: આવનારા પેકેટનું વર્ણન
કૃપા કરીને નોંધ લો કે ગેસ રીડિંગ એ દશાંશ છે પૂર્ણાંક નથી. આ દશાંશ IEEE-754 ફોર્મેટમાં છે, તમે તેને કન્વર્ટ કરવા માટે આના જેવા ઓનલાઈન કન્વર્ટરનો ઉપયોગ કરી શકો છો. આ કિસ્સામાં ગેસ મૂલ્ય -250 દર્શાવે છે (જેમ કે તે સમયે ભૂલ મોડમાં હતું).
AN0007
અંક 1.2
09/04/2025
નોટ 805 બદલો
12 માંથી પૃષ્ઠ 14
Serial.read() નો ઉપયોગ કરીને
પહેલાનો કોડ ફક્ત સીરીયલ મોનિટર પર પ્રાપ્ત ડેટા છાપતો હતો, જો તમે ડેટાને ચલોમાં સાચવવા માંગતા હો, તો તમારે થોડી વધુ પ્રક્રિયા કરવાની જરૂર પડશે. તમને મળેલ પેકેટ બાઇટ્સમાં વિભાજિત થાય છે, આને કારણે તમારે આ ડેટામાંથી કેટલાકને ચલોમાં જોડવાની જરૂર પડશે. Serial1.Read() એક int પરત કરે છે (જે Arduino માટે 16 બિટ્સ છે), જોકે, ફક્ત પહેલા 8 બિટ્સનો ઉપયોગ થાય છે. આને કારણે આપણે તેને નાના ડેટા પ્રકારમાં કોપી કરી શકીએ છીએ જે ફક્ત 8 બિટ્સ છે, આ કિસ્સામાં હું char નો ઉપયોગ કરીશ.
જે પેકેટો ફક્ત એક બાઇટ લાંબા છે, તેમના માટે આ બરાબર કામ કરે છે:
2 બાઇટ અથવા 4 બાઇટ લાંબા પેકેટો માટે તમારે ડેટાને જોડવાની જરૂર પડશે.
તમે આ ઘણી અલગ અલગ રીતે કરી શકો છો, અહીં હું ડેટાને ડાબી બાજુ શિફ્ટ કરીશ અને પછી તેને OR કરીશ.
આ કોડનો ઉપયોગ કરીને, જો readByte1 0x34 છે અને readByte2 0x12 છે.
(ઇન્ટ)રીડબાઇટ2
// આ 0x12 ને 0x0012 માં રૂપાંતરિત કરે છે.
(પૂર્ણ) રીડબાઇટ2 << 8
// આ બિટ્સને બાઈટથી બદલીને તેને 0x1200 બનાવે છે.
(int)readByte2 << 8 | readByte1 // આ પછી OR'ed થાય છે, 0x34 સાથે 0x1234 બને છે.
આ કરવાની બીજી રીત એ છે કે મૂલ્યોને એરેમાં મૂકો અને પછી એરેને તમને જોઈતા પ્રકારમાં રૂપાંતરિત કરો:
AN0007
અંક 1.2
09/04/2025
નોટ 805 બદલો
13 માંથી પૃષ્ઠ 14
અક્ષરો એક બાઇટ લાંબા હોય છે, જ્યારે ફ્લોટ 4 બાઇટ લાંબા હોય છે. આ કારણે જો આપણે આપણા મૂલ્યો સાથે 4 અક્ષરોનો એરે બનાવીએ અને પ્રકારને ફ્લોટમાં બદલીએ.
આ કિસ્સામાં readArray એ char એરેનો પોઇન્ટર છે. (float*)readArray આ ભાગ તેને ફ્લોટના પોઇન્ટર પર કાસ્ટ કરે છે અને પછી ફ્લોટની કિંમત મેળવવા માટે આગળના ભાગમાં * ઉમેરવામાં આવે છે.
અદ્યતન રૂપાંતર નોંધો
૧. Serial.read() char ને બદલે int પરત કરે છે કારણ કે ભૂલો નકારાત્મક મૂલ્યો પરત કરશે. તમારા પ્રોગ્રામે આ તપાસવું જોઈએ.
2. char અને int ની જગ્યાએ અનુક્રમે uint8_t અને uint16_t નો ઉપયોગ કરવો જોઈએ, કારણ કે આ પ્રકારોનો કોઈ પ્રમાણભૂત કદ નથી (મારા PC પર int 32 બિટ્સ છે જ્યારે Arduino પર તે 16 બિટ્સ છે).
૩. કોમ્સ પ્રોટોકોલમાં બાઈટ સ્ટફ્ડ અક્ષરો (જેને કંટ્રોલ અક્ષરો તરીકે પણ ઓળખવામાં આવે છે) હોય છે, આ tds3 પ્રીમિયર સેન્સર કોમ્યુનિકેશન્સ પ્રોટોકોલ દસ્તાવેજમાં વધુ વિગતવાર સમજાવાયેલ છે. આને કારણે રીડ લાઈવ ડેટા સિમ્પલ પેકેટ ક્યારેક અપેક્ષા કરતા મોટું હશે.
AN0007
અંક 1.2
09/04/2025
નોટ 805 બદલો
14 માંથી પૃષ્ઠ 14
દસ્તાવેજો / સંસાધનો
![]() |
DYNAMENT AN0007 Arduino થી પ્લેટિનમ COMM [પીડીએફ] વપરાશકર્તા માર્ગદર્શિકા AN0007 Arduino થી પ્લેટિનમ COMM, AN0007, Arduino થી પ્લેટિનમ COMM, થી પ્લેટિનમ COMM, પ્લેટિનમ COMM |