dinsdag 5 december 2023

ESP32 [4 : ESP32 - S2 testen van de I2C bus ]

De gemakkelijkste manier om de I²C bus te testen is het gebruik van een OLED display, daar heb ik al wat ervaring mee.

Het I²C adres wist ik nog ( 0x3C) en de SDA en SCL zijn gemakkelijk te vinden op de OLED , maar waar zitten die op het LOLIN S2  bordje?

Internet gaf uitsluitels ( na toch wat zoeken) en het bleek dat SDA dezelfde pin is  als MOSI en de CLK blijft de CLK.

Samengevat :

SDA : pin 11

CLK : pin 7

 

Ik gebruikte de lib's van Arduino om deze OLED aan te sturen maar dit werkte niet.

 

#include <Wire.h> // libraries voor oled display
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
 
Het vermoeden was dat de lib default de standaard pins gebruikte voor 
I²C voor de Adafruit bordjes.
 
Door in de Wire.h te snuisteren zag ik dat de mogelijk bestond om de
class te "overriden" ( = overloading) met de pins die ik nodig had
 
Snippet uit de lib:
 
public:
TwoWire(uint8_t bus_num);
~TwoWire();

//call setPins() first, so that begin() can be called without
  arguments from libraries

bool setPins(int sda, int scl);
 
 
 
Daar heb ik dan ook gebruik van gemaakt in mijne soft :
 
snippet :

Wire.setPins(11, 7); //override default pins met S2 pins voor SDA en CLK
 
Resultaat ziet U hieronder , het werkt! 



Geen opmerkingen:

Een reactie posten