#define NUM_POINTS 1000
#define PI 3.14159265359
double my_sin(double x) {
double result = 0.0;
double term = x;
double power = x;
double factorial = 1.0;
double sign = 1.0;
for (int i = 1; i <= 10; ++i) {
result += term;
sign *= -1;
power *= x * x;
factorial *= (2 * i) * (2 * i + 1);
term = sign * power / factorial;
}
return result;
}
void setup() {
Serial.begin(115200);
pinMode(PB11, OUTPUT); // PB11 é um pino disponível no Blue Pill
}
void loop() {
double step = 2 * PI / NUM_POINTS;
double angle = 0.0;
for (int i = 0; i < NUM_POINTS; ++i) {
double sin_value = my_sin(angle);
Serial.println(sin_value);
angle += step;
if(sin_value > 0){
digitalWrite(PB11, HIGH);
} else {
digitalWrite(PB11, LOW);
}
delay(1); // Delay pequeno para visualizar o LED piscando
}
}
nucleo:PD0
nucleo:PD2
nucleo:VDD
nucleo:PA14
nucleo:PA13
nucleo:PC6
nucleo:GND.1
nucleo:PC13
nucleo:PC14
nucleo:PF0
nucleo:PF1
nucleo:PB11
nucleo:PA2
nucleo:PD1
nucleo:PD2.2
nucleo:E5V
nucleo:GND.2
nucleo:IOREF.1
nucleo:NRST.1
nucleo:3V3.1
nucleo:5V.1
nucleo:GND.3
nucleo:GND.4
nucleo:VIN.1
nucleo:PA0
nucleo:PA1
nucleo:PA4
nucleo:PB1
nucleo:PA11
nucleo:PA12
nucleo:IOREF.2
nucleo:NRST.2
nucleo:3V3.2
nucleo:5V.2
nucleo:GND.5
nucleo:GND.6
nucleo:VIN.2
nucleo:A0
nucleo:A1
nucleo:A2
nucleo:A3
nucleo:A4
nucleo:A5
nucleo:5V.3
nucleo:PA3
nucleo:PC15
nucleo:PB12.1
nucleo:PB12.2
nucleo:PB2
nucleo:GND.7
nucleo:PF3
nucleo:PA8
nucleo:PB15
nucleo:PB14
nucleo:PB13
nucleo:AGND
nucleo:PB0.1
nucleo:PD3
nucleo:PB8
nucleo:PB9
nucleo:AVDD.1
nucleo:GND.8
nucleo:PA5
nucleo:PA6
nucleo:PA7
nucleo:PB0.2
nucleo:PC7
nucleo:PA9
nucleo:PA15
nucleo:PB5
nucleo:PB4
nucleo:PB10
nucleo:PB3
nucleo:PA10
nucleo:PB6
nucleo:PB7
nucleo:D15
nucleo:D14
nucleo:AVDD.2
nucleo:GND.9
nucleo:D13
nucleo:D12
nucleo:D11
nucleo:D10
nucleo:D9
nucleo:D8
nucleo:D7
nucleo:D6
nucleo:D5
nucleo:D4
nucleo:D3
nucleo:D2
nucleo:D1
nucleo:D0
lcd1:GND
lcd1:VCC
lcd1:SDA
lcd1:SCL