#define AMPLITUDE 127  // Alterado para o intervalo de 0 a 255 para analogWrite
#define FREQUENCIA 100 // Defina a frequência desejada aqui
bool gerouOnda = false;
int ENA = 10;
int IN1 = 9;
int IN2 = 8;
float freqAng = 2 * PI * FREQUENCIA;
unsigned long tempoInicial = 0;

void setup() {
  Serial.begin(9600); // Inicia a comunicação serial
  // pinMode(ENA, OUTPUT);
  // pinMode(IN1, OUTPUT);
  // pinMode(IN2, OUTPUT);

  // digitalWrite(IN1, HIGH);
  // digitalWrite(IN2, LOW);
  delay(100);
  tempoInicial = micros(); // Armazena o tempo inicial
  Serial.println(tempoInicial);
  // delay(10000);
}

void loop() {
  unsigned long tempoAtual = micros(); // Obtém o tempo atual
  unsigned long tempoDecorrido = tempoAtual - tempoInicial; // Calcula o tempo decorrido desde o início
  Serial.println(tempoDecorrido);
  delay(10000);

  int valor = AMPLITUDE * sin(freqAng * tempoDecorrido / 1000000.0) + AMPLITUDE; // Calcula o valor da onda senoidal

  // analogWrite(ENA, valor);
  Serial.println(valor); // Imprime o valor no Serial Plotter
  //delay(1000 / (360 * FREQUENCIA)); // Pausa por aproximadamente 0,278 milissegundos
}