Plus la vitesse sera élevée, et moins il y aura de couple.
Cette partie est assez ambiguë :
- à terrain/pente donné, si tu augmentes le PWM, tu augmente à la fois la vitesse et le couple
- à PWM donné, si ton moteur force plus (ie doit fournir plus de couple), alors il tournera moins vite
- à PWM et terrain donné, si ton moteur tourne plus vite, il aura moins de couple (donc ton robot accéléreras moins). Cette relation n'est en général pertinente que pour les phases d'accélération où le couple te sert d'accélérateur. C'est comme une voiture : si tu es en seconde à 30km et que tu enfonces la pédale d'accélération (=PWM) à fond, tu vas fournir un max de couple et accélérer très vite. Si tu es ddéjà à 60km (et toujours en seconde), alors tu n'aura presque plus de couple même en enfonçant la pédale à fond, donc tu n'arriveras pas à accélérer beaucoup
- pour un système de transmissions (engrenages, courroies, chaines, ...), tu peux "échanger" de la vitesse contre du couple et vice-versa. Plus précisément, dans un système idéal, le produit vitesse * couple reste constant, en pratique, il y a des pertes souvent non négligeables (quelques pourcents à plus de 50% selon la transmission utilisée)
Après, globalement, si tu es sur du plat sans obstacles, une valeur de PWM constante avec analogWrtie fait l'affaire.
Si tu as besoin d'un couple variable pour circuler sur divers pentes et/ou franchir des obstacles, alors soit tu changes le PWM à la main (télécommande, potentiomètre, ...) ou il faut lire la vitesse des encodeurs et adapter le PWM : a solution la plus simpliste est
Si vitesse>vitesse_cible
PWM=MIN(255, PWM+1)
Si vitesse<vitesse_cible
PWM=MAX(0, PWM-1)
Aidez-nous à vous aider : partagez toutes les informations pertinentes : description précise du problème, contexte, schéma de câblage, liens vers la documentation des composants, votre code (ou encore mieux un code minimal reproduisant le bug), ...
Vous recevrez ainsi plus de réponses, et elles seront plus pertinentes.