Использование библиотеки servo в tinkercad вызывает странное поведение

#c #arduino #servo #tinkercad

#c #arduino #servo #tinkercad

Вопрос:

Я использую analogWrite() в своем коде. Все работает нормально, когда я не использую библиотеку servo. Другими словами, все в порядке, когда я отключаю эту строку //servo_9.attach(9); Если я включу эту строку, PWM будет неправильным и странным. Есть идеи, почему симулятор Tinkercad ведет себя странно?

 #include <Servo.h>
int led =9;
Servo servo_9;

void setup() {
servo_9.attach(9);

Serial.begin(9600);

}


 void loop() {
 for(int n=0;n<255;n  ){
     analogWrite(led,n);
     delay(5);
   }
 }
  

Это видео показывает, что происходит:
нажмите здесь

Комментарии:

1. У вас действительно есть сервопривод и светодиод, подключенные к одному контакту? Как вы предлагаете, чтобы один вывод мог выполнять обе функции?

2. Никогда не бойтесь проверять документацию. Чтение имеет фундаментальное значение. Проверьте второе предложение второго абзаца в разделе «Использование» arduino.cc/reference/en/libraries/servo

Ответ №1:

В документации к библиотеке servo четко указано.

На платах, отличных от Mega, использование библиотеки отключает функцию analogWrite () (PWM) на выводах 9 и 10, независимо от того, есть ли сервопривод на этих выводах.

Комментарии:

1. Спасибо! Это было очень полезно. Я использовал pin6, сигнал выглядит намного лучше, но все равно отличается, когда линия подачи отключена. Я также удалил светодиод.

2. Как по-другому? Это реальная жизнь или симуляция?

3. это была симуляция, а не реальное оборудование.

4. Тогда вы не знаете, что будет делать реальное оборудование. Возможно, проблема в симуляторе. Там был еще один вопрос, на который вы не ответили.

5. Сигнал не совсем такой же. Похоже, что есть какой-то шум. Если вы не возражаете попробовать это самостоятельно: tinkercad.com/things/6qIZvzIdVKb-lab2-part1 /…