It's true that my question might not be clear. By software PWM, I mean that you have to write a program (maybe C program) to generate a PWM signal on one GPIO output but it's not what I want to do. What I want to do is to programmatically control the board that generate the PWM signals, and by that I mean that you have to give a speed value (a program running on the Raspberry) that control a motor shield to effectively give that speed on the motors. So I would have to create a shield for my motors and be able to give a speed as input.
@mahjongg & jojopi :
I heard about your solution to use the PWM signal from the audio channel, it seems to effectively generates some strange noise on the audio channels. But this solution seems to be a little bit tricky for me, I think that it would be better in my case to create my own reusable shield.
Your analogue solution seems to be the best for me, I just need to completely understand what you're saying haha.
1 - Triangle wave generator :
Is a NE555 will do the job ? But how could I digitally control the rate ? Because in that case you have to control the input voltage.
2 - Analogue comparator :
Ok, it seems that I only need an ANx IC component ? You give two input signals to compare and you have '1' or '0' on your output (aka your PWM signal).
3 - Input of the analogue comparator :
So you have on one hand the output of the wave generator which give the pulse command for the PWM signal and on the other hand a signal generated by the DAC. But what is the role of the DAC because you just need the generator to give a controlled pulse ? When you wrote D->A, it means Digital to Analogue Converter, right ?
By the way, thanks a lot for your responses ! It's really great to have some people to help