UP | HOME

ESP 32 WROOM - Software Serial

Table of Contents

Personalizzazione dei PIN

In riferimento a quanto detto nella lezione precedente riepilogato nell'immagine seguente e nella tab. n. 1 installando la libreria EspSoftwareSerial by Dirk Kaar e' possibile modificare i PIN assegnati di default alle varie porte.

ESP32.jpg

Figure 1: Schema PIN-OUT della board ESP32 WROOM

Table 1: Tabella delle porte seriali predefinite della board ESP32
UART Oggetto RX IO TX IO CTS RTS Desc
UART0 Serial GPIO3 GPIO1 N / A N / A duplicazione della porta USB della ESP32
UART1 Serial1 GPIO9 GPIO10 GPIO6 GPIO11 Porta persononalizzabile
UART2 Serial2 GPIO16 GPIO17 GPIO8 GPIO7 Porta personalizzabile

La porzione di codice seguente mostra come personalizzare i PIN assegnati alla porta Serial2. Per commenti piu' dettagliati sul codice vds la Lezione sul costrutto MAP.

     #include <SoftwareSerial.h> // la classe e' ottenuta installando la libreria EspSoftwareSerial by Dirk Kaar

  /* Associazione dei PIN della ESP32 alla board LoRa
   * G21    -->     M0
   * G19    -->     M1
   * V5     -->     VCC
   * GND    -->     GND
   * G18    -->     AUX
   * G16    -->     TX
   * G17    -->     RX
   */
  #define BUTTON GPIO_NUM_12 // pin per il button che permette l'accesso alla shell
  #define M0 GPIO_NUM_21
  #define M1 GPIO_NUM_19
  #define AUX GPIO_NUM_18
  #define TX GPIO_NUM_16
  #define RX GPIO_NUM_17

// ...


      /*
     * una volta defniti i PIN si crea una struttura che modella la coppia
     * (nome PIN, numero PIN) di modo da poterla utilizzare in un vettore che poi potra' essere
     * passato a classi in cui sara' utilizzato
     *
     */
    std::map<std::string, int> myPIN;

    // ...

/* imposta il modo dei PIN */
pinMode(BUTTON, INPUT);
pinMode(M0, OUTPUT);
pinMode(M1, OUTPUT);
pinMode(AUX, OUTPUT);
pinMode(TX, OUTPUT);
pinMode(RX, INPUT);


/* costruisce l'array dei PIN */
sh.pin_push_back("BUTTON", BUTTON);
sh.pin_push_back("M0", M0);
sh.pin_push_back("M1", M1);
sh.pin_push_back("AUX", AUX);
sh.pin_push_back("TX", TX);
sh.pin_push_back("RX", RX);



    // ...

    Serial2.setPins(myPIN["TX"], myPIN["RX"]); // Arduino RX <-- e220 TX, Arduino TX --> e220 RX
    LoRa_E220 e220ttl(&Serial2, myPIN["AUX"], myPIN["M0"], myPIN["M1"]);
    e220ttl.begin();

    // ...

Link Utili

BLOG Sezione ARI Montecatini Terme

ARI ( Associazione Radioamatori Italiani)

PTLUG ( Linux User Group Pistoia )

ARAL ( Associazione Radiamatori Monte Amiata / Monte Labbro )

Author: ARI people

Created: 2023-06-05 lun 23:57

Validate