test — ESP32 simulation

test

An interactive ESP32 circuit simulation you can run free in your browser on Velxio, by andrian25.

Components

Sketch code

#include <stdio.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "driver/i2c_master.h"

static i2c_master_dev_handle_t motor_dev;

void app_main(void)
{
    // Configurare magistrală I2C (Bus)
    i2c_master_bus_config_t bus_config = {
        .i2c_port = 0,
        .sda_io_num = 21,
        .scl_io_num = 22,
        .clk_source = I2C_CLK_SRC_DEFAULT,
        .glitch_ignore_cnt = 7,
    };
    i2c_master_bus_handle_t bus_handle;
    i2c_new_master_bus(&bus_config, &bus_handle);

    // Configurare dispozitiv (Driver L298P)
    i2c_device_config_t dev_config = {
        .dev_addr_length = I2C_ADDR_BIT_7,
        .device_address = 0x0F, // Adresa driverului
        .scl_speed_hz = 100000,
    };
    i2c_master_bus_add_device(bus_handle, &dev_config, &motor_dev);

    printf("L298P motor test start\n");

    while (1) {
        // Comandă motor A (Reg 0x00), Direcție 1, Viteză 100
        uint8_t write_buf1[] = {0x00, 1, 100};
        i2c_master_transmit(motor_dev, write_buf1, sizeof(write_buf1), -1);
        vTaskDelay(pdMS_TO_TICKS(2000));

        // Stop
        uint8_t write_buf2[] = {0x00, 1, 0};
        i2c_master_transmit(motor_dev, write_buf2, sizeof(write_buf2), -1);
        vTaskDelay(pdMS_TO_TICKS(1000));
    }
}