ESP32 Easy short tutorial: Difference between revisions

From wikiluntti
Line 145: Line 145:
== Bluetooth ==
== Bluetooth ==


== CANbus ==
== CANbus TJA1051 T/3 ==
 
T/3 should mean that it is 3.3V compatible. All TJA1051 variants are not.
 
 
Datasheet https://www.nxp.com/docs/en/data-sheet/TJA1051.pdf


== Linux tutorial ==
== Linux tutorial ==


Great linux tutorial: https://curiousstuff.eu/post/how-to-blink-the-damn-esp32-built-in-led/
Great linux tutorial: https://curiousstuff.eu/post/how-to-blink-the-damn-esp32-built-in-led/

Revision as of 15:50, 8 August 2025

Introduction

My ESP32 is 32WROOM-32

Leds:

  • Tx led blinks when transmitting data.

Pull Up Resistors

Enable pull up:

pinMode(13, INPUT_PULLUP); // Enable built-in pullup on pin 13


Pull up resistors are between a digital input pin and the VCC. Two main purposes:

  1. Avoids issues with floating inputs.
  2. The default "ON" state for inputs like buttons and switches which actively pull the pin low. The pull up resistor keeps the circuit reading high until the button grounds the pin.

Some pins do not have pullup resistors:

  • GPIO34
  • GPIO35
  • GPIO36
  • GPIO39

Others do:

Pin Name GPIO Number Pull Up?
GPIO0 0 Yes
GPIO2 2 Yes
GPIO4 4 Yes
GPIO5 5 Yes
GPIO12 12 Yes
GPIO13 13 Yes
GPIO14 14 Yes
GPIO15 15 Yes
GPIO25 25 Yes
GPIO26 26 Yes
GPIO27 27 Yes
GPIO32 32 Yes
GPIO33 33 Yes


For pins without built-in pull ups, or in output applications needing precise levels, you can add external pull up resistors. See the references for more information.


References:

Serial and Tx blink

Check that ESP32 works

void setup() {
    Serial.begin(9600);
}

void loop() {
  Serial.println("luntti.net");
  delay(500); 
}

This should write a text to serial monitor every 0.5 secs and blink the Tx led at the same time.

Blink

Blink an internal led

No:(

Blink a led

void setup() {
pinMode(18, OUTPUT);
}

void loop() {
  digitalWrite(18, LOW);
  delay(1000);
  digitalWrite(18, HIGH);
  delay(1000); 
}

Wifi

Bluetooth

CANbus TJA1051 T/3

T/3 should mean that it is 3.3V compatible. All TJA1051 variants are not.


Datasheet https://www.nxp.com/docs/en/data-sheet/TJA1051.pdf

Linux tutorial

Great linux tutorial: https://curiousstuff.eu/post/how-to-blink-the-damn-esp32-built-in-led/