DYNAMENT AN0007 Arduino al Platinum COMM Uzantogvidilo

AN0007 Arduino al Platena Komunumo

Produktaj Informoj

Specifoj

  • Produkta Nomo: ARDUINO al PLATINUM COMMS HELP DOKUMENTO
  • Produktanto: Dynament Limited
  • Adreso: HermitagIndustria Zono e Lane, Kings Mill Way,
    Mansfield, Nottinghamshire, NG18 5ER, Britio
  • Kontakto: Tel.: 44 (0)1623 663636, Retpoŝto: sales@dynament.com,
    Webretejo: www.dynament.com
  • Eldono: 1.2, Dato: 09/04/2025

Produktaj Uzado-Instrukcioj

Konektante la Sensilon

Ĉi tiu datenfolio uzas la Arduino Mega kiel ekz.ampekz. Konekti kiel
sekvas:

  • 5v -> 5v Arduino-pinglo
  • 0v -> Arduino GND
  • Sendilo -> Arduino RX1
  • Rx -> Iras al la eligo de la potenciala dividilo. La enigo
    iras al Arduino Tx

Voltage Kongrueco

La Arduino uzas 5v logikan altan tensio dum la Platena Sensilo uzas
3.3v. Uzu voltage-dividilo kun proponitaj valoroj por R1 kaj R2 kiel
4K7 por malhelpi difekton al la Sensilo.

Agordo de Arduino IDE

  1. Elŝutu la plej novan version de la programaro Arduino IDE de
    la Arduino webretejo.
  2. Elektu la Arduino-tabulon, procesoron kaj pordon en la iloj
    falmenuo.

Koda Alŝuto

  1. Kopiu la donitan ekz.ampla kodon en la Arduino IDE.
  2. Alŝutu la kodon al la Arduino alklakante la sagon.
  3. Malfermu la serian monitoron por view transdono de datumoj.

Oftaj Demandoj

D: Kion mi faru se mi havas Arduino Uno kun nur unu komunikilo?
haveno?

A: Konekti la Platenan Sensilon al tiu pordo. Kiam vi uzas la
seria ekrano, ĝi ankaŭ montros la transdonitan heksagenon.

“`

Aplika Noto AN0007
HELPDOKUMENTO DE ARDUINO AL PLATENA KOMUNIKO

Dynament Limited
HermitagIndustria Zono e Lane, Kings Mill Way, Mansfield, Nottinghamshire, NG18 5ER, Britio. Tel.: 44 (0)1623 663636
retpoŝto: sales@dynament.com www.dynament.com

AN0007

Afero 1.2

09/04/2025

Ŝanĝa Noto 805

Paĝo 1 el 14

Enhavo
Dynament Limited …………………………………………………………………………………………………….1 Konektante la Sensilon……………………………………………………………………………………..3 Arduino IDE ……………………………………………………………………………………………………5 Kodklarigo…………………………………………………………………………………………..9 Pakaĵa Disdivido ………………………………………………………………………………………….11 Uzante Serial.read() ………………………………………………………………………………………….13
Altnivelaj Konvertaj Notoj……………………………………………………………………………….14

AN0007

Afero 1.2

09/04/2025

Ŝanĝa Noto 805

Paĝo 2 el 14

Konektante la Sensilon Ĉi tiu datenfolio uzas la Arduino Mega kiel eksampekz. La Ardunio Mega provizas pli ol unu komunikan pordon, tial komunika pordo 1 estas uzata por komuniki kun la sensilo kaj komunika pordo 0 estas uzata por presi al la komputilo.
La Arduino uzas logikan 5v altan tension, dum la Platena Sensilo uzas 3.3v, do por eviti difekton al la Sensilo, volumeno...tagOni devas uzi dividilon. Sugestitaj valoroj por R1 kaj R2 estas 4K7.

Figuro 1: Malaltigas la volumenontage al uzebla nivelo
La sensila dissenda linio iranta al la Arduino-ricevilo ne bezonas dividilon, ĉar 3.3v estas akceptebla enigo al la Arduino.
Por funkciigi la Sensilon, ĝi devas esti konektita al 5v kaj 0v. Por fari tion, vi povas uzi la pinglojn sur la Arduino.
Post kiam ĉi tio finiĝos, la sensilo nun devus havi la jenajn stiftojn konektitajn:
5v -> 5v Arduino-pinglo
0v -> Arduino GND
Sendilo -> Arduino RX1
Rx -> Iras al la eligo de la potencialdividilo. La enigo iras al Arduino Tx

AN0007

Afero 1.2

09/04/2025

Ŝanĝa Noto 805

Paĝo 3 el 14

Post kiam ĉi tio finiĝos, via Platena Sensilo devus esti konektita kiel montrite:
Figuro 2: Sensilo montrita renverse kun lutaĵadaptilo
Se vi uzas Arduinon kun nur unu komunikada pordo (kiel la Arduino Uno), vi devos konekti ĝin al tiu, tamen kiam vi uzas la serian monitoron (montrita poste), ĝi ankaŭ montros la deksesuman numeron, kiu estas transdonita.

AN0007

Afero 1.2

09/04/2025

Ŝanĝa Noto 805

Paĝo 4 el 14

Arduino IDE Iru al la Arduino webretejo kaj elŝutu la plej novan version de la Arduino IDE-programaro. Post instalado, vi devus vidi la jenan ekranon:
Figuro 3: Hejma ekrano de Arduino
En la falmenuo "iloj" elektu la Arduino-platon, procesoron kaj pordon, kiujn vi uzas:

Figuro 4: Elektu la opciojn por Platformo, Procesoro kaj Pordo

AN0007

Afero 1.2

09/04/2025

Ŝanĝa Noto 805

Paĝo 5 el 14

Kopiu en ĉi tiu ekz.ampla kodo: void send_read_live_data_simple(); void receive_read_live_data_simple();
malplena agordo() { Seria.komenco(38400); Seria1.komenco(38400);
}
void loop() { sendu_legado_de_vivaj_datumoj_simple(); ricevu_legado_de_vivaj_datumoj_simple(); prokrasto(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);
}
void ricevi_legitajn_vivajn_datumojn_simple(){ dum (Serial1.available()) { Seria.print(Serial1.read(), HEX); Seria.print("|"); } Seria.println();
}

AN0007

Afero 1.2

09/04/2025

Ŝanĝa Noto 805

Paĝo 6 el 14

Figuro 5: Kodo preta por alŝuto
Alklaku la sagon por alŝuti la kodon al la Arduino. Post kiam la Arduino estas programita, malfermu la serian monitoron.

AN0007

Figuro 6: Malfermu la Serian Monitoron

Afero 1.2

09/04/2025

Ŝanĝa Noto 805

Paĝo 7 el 14

Figuro 7: La Seria Monitorilo montras la ricevitan pakaĵon

AN0007

Afero 1.2

09/04/2025

Ŝanĝa Noto 805

Paĝo 8 el 14

Klarigo pri la kodo La Arduino IDE uzas C++ por programi la Arduinon.
Ĉi tiu linio estas antaŭa deklaro. Ĝi estas uzata por diri al la mikroregilo, ke pli sube en la programo la funkcioj `send_read_live_data_simple' kaj `receive_read_live_data_simple' estos vokitaj.
Sekvas la agorda funkcio. Ĉi tiu kodo estas ekzekutita nur unufoje ĉe starto. Ĝi startas la pordojn Serial0 kaj Serial1. Serial0 estas tio, kio estas montrata sur la ekrano de la seria monitoro. Serial1 estas la pordo por komuniki kun la sensilo.
Jen la ĉefa buklo, ĉi tiu kodo estas plurfoje ripetata. Vi povas vidi legante la funkcionomojn, ke ĝi sendas peton por legi simpligitan version de la viva datumstrukturo. Poste ĝi legas la ricevan pordon por legi la respondon. Post tio la mikroregilo atendas 5000ms.
Ĉi tiu funkcio skribas la peton por akiri la vivajn datumojn per simpla strukturo al seria pordo 1. Kiel antaŭe menciite, se vi havas nur unu serian pordon, vi devus ŝanĝi Serial1 al Seria. Por vidi la plenan liston de komandoj, vidu la dokumenton pri la Premier Sensor Communications Protocol. Jen la parto de la dokumento, kiu diras al vi, kion skribi por ĉi tiu komando:

AN0007

Afero 1.2

09/04/2025

Ŝanĝa Noto 805

Paĝo 9 el 14

Ĉi tiu funkcio ripetas la funkcion "read" dum ankoraŭ estas datumoj ricevotaj de la Platinum Sensor. Serial1.read() legas la datumojn de Serial1, kiu estas konektita al la sensoro, kaj presas ilin sur Serial0, por ke ili estu videblaj sur la seria ekrano. La signo `|` estas poste presata por dividi ĉiun ricevitan bajton por igi ĝin pli klara sur la seria ekrano.
Post kiam ĉi tio finiĝas, ĝi skribas novan linion al la seria monitoro.

AN0007

Afero 1.2

09/04/2025

Ŝanĝa Noto 805

Paĝo 10 el 14

Pakaĵa Disdivido Figuro 8 kaj 9 montras la eliron de seria malĉifrilo konektita al la riceva kaj dissenda linioj.
Figuro 8: Eliranta pakaĵo
Figuro 9: Alvenanta pakaĵo
Figuro 10 kaj 11 montras la elirantan kaj alvenantan heksagonon respektive kun kolumno kiu montras, kiu komando ĝi estas.

Figuro 10: Priskribo de la eliranta pakaĵo

AN0007

Afero 1.2

09/04/2025

Ŝanĝa Noto 805

Paĝo 11 el 14

Figuro 11: Priskribo de Alvenanta Pakaĵo
Bonvolu noti, ke la gasa valoro estas decimala nombro, ne entjero. Ĉi tiu decimala nombro estas en IEEE-754-formato, vi povas uzi retan konvertilon kiel ĉi tiu por konverti ĝin. La gasa valoro en ĉi tiu kazo montras -250 (ĉar ĝi estis en erara reĝimo tiutempe).

AN0007

Afero 1.2

09/04/2025

Ŝanĝa Noto 805

Paĝo 12 el 14

Uzante Serial.read()
La antaŭa kodo nur presis la ricevitajn datumojn al la seria monitoro, se vi volas konservi la datumojn en variabloj vi devos fari plian prilaboradon. La pakaĵeto, kiun vi ricevas, estas dividita en bajtojn, pro tio vi devos kunmeti iujn el ĉi tiuj datumoj en variablojn. Serial1.Read() redonas entjeron (kiu por Arduino estas 16 bitoj), tamen nur la unuaj 8 bitoj estas uzataj. Pro tio ni povas kopii ĝin en pli malgrandan datumtipon, kiu estas nur 8 bitoj, en ĉi tiu kazo mi uzos char.
por la pakaĵetoj kiuj estas nur unu bajton longaj, ĉi tio funkcias bone:
Por la pakaĵetoj, kiuj estas 2 bajtojn aŭ 4 bajtojn longaj, vi devos kunmeti la datumojn.

Vi povas fari tion laŭ multaj diversaj manieroj, ĉi tie mi faros ŝovi la datumojn maldekstren kaj poste uzi AŬ-klavon.

Uzante ĉi tiun kodon, se readByte1 estas 0x34 kaj readByte2 estas 0x12.

(ent)legiBajton2

// ĉi tio konvertas 0x12 en 0x0012.

(ent)leguByte2 << 8

// ĉi tio ŝovas la bitojn je unu bajto, farante ĝin 0x1200.

(int)readByte2 << 8 | readByte1 // ĉi tio poste ricevas AŬ-on, kie 0x34 faras 0x1234.

Alia maniero fari tion estus meti la valorojn en tabelon kaj poste konverti la tabelon al la dezirata tipo:

AN0007

Afero 1.2

09/04/2025

Ŝanĝa Noto 805

Paĝo 13 el 14

signoj estas unu bajton longaj, dum float estas 4 bajtojn longa. Pro tio, se ni kreas tabelon de 4 signoj kun niaj valoroj en ĝi kaj ŝanĝas la tipon al float.
En ĉi tiu kazo, readArray estas montrilo al char-aro. (float*)readArray ĉi tiu parto konvertas ĝin al montrilo al float-valoro kaj poste * estas aldonita antaŭe por ricevi la valoron de la float-valoro.
Altnivelaj Konvertaj Notoj
1. Serial.read() redonas entjeron anstataŭ signon ĉar eraroj redonos negativajn valorojn. Via programo devus kontroli tion.
2. uint8_t kaj uint16_t estu uzataj anstataŭ char kaj int respektive, ĉar ĉi tiuj tipoj ne havas norman grandecon (ĉe mia komputilo int estas 32 bitoj dum ĉe la Arduino ĝi estas 16 bitoj).
3. La komunikada protokolo enhavas bajtplenajn signojn (ankaŭ konatajn kiel stirsignoj), ĉi tio estas klarigita pli detale en la dokumento pri la komunikprotokolo tds0045 Premier sensor. Pro tio, la simpla pakaĵo de legitaj vivaj datumoj foje estos pli granda ol atendita.

AN0007

Afero 1.2

09/04/2025

Ŝanĝa Noto 805

Paĝo 14 el 14

Dokumentoj/Rimedoj

DYNAMENT AN0007 Arduino al Platena Komunumo [pdf] Uzantogvidilo
AN0007 Arduino al Platena COMM, AN0007, Arduino al Platena COMM, al Platena COMM, Platena COMM

Referencoj

Lasu komenton

Via retadreso ne estos publikigita. Bezonataj kampoj estas markitaj *