Так и не нарисовал…
А я вот кое-чего накидал)))
#include <Servo.h>
Servo motor;
uint8_t mot_pin = 9; // Пин подключения мотора
int max_pwm = 1940; // Максимальное значение ШИМ 2.3 мс
int min_pwm = 980; // Минимальное значени ШИМ 0.8 мс
uint8_t Speed;
uint8_t table[] = { // Таблица из 180 элементов
0,0,1,1,2,2,3,3,4,4,5,5,5,6,6,6,6,7,7,7,7,8,8,8,8,8,9,9,9,9,10,10,10,11,11,12,12,13,13,14,15,15,15,15,15,16,16,16,16,16,17,17,17,18,18,18,19,19,20,20,21,21,21,22,22,23,23,23,24,24,25,25,26,26,27,27,28,29,30,31,32,32,33,33,34,34,35,35,36,37,38,38,39,39,40,40,41,42,43,44,45,45,46,46,47,47,48,48,49,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,65,66,67,68,69,70,72,74,76,78,80,82,84,86,88,89,90,92,94,96,98,99,101,103,105,107,108,110,113,114,116,118,120,123,125,127,128,130,133,135,137,138,140,143,146,149,150,153,155,158,163,165,169,173,177,180
};
void setup() {
// Serial.begin(9600); // запуск последовательного порта
motor.attach(mot_pin); // инициализация мотора
delay(1000); // калибровка
motor.writeMicroseconds(max_pwm);
delay(2000);
motor.writeMicroseconds(min_pwm);
delay(4000);
}
void loop() {
uint16_t tmp = analogRead(A1);
tmp = map(tmp, 0, 1023, 0, 180);
Speed = table[tmp];
motor.write(Speed);
}
График рисовал от руки, что-то наподобие y= a^x, только начинается с нуля.