This device can be used if we need to generate PWM signals. It has hardware buttons, so we can adjust frequency "by hand". It also has RX/TX pins, which allows us to change the frequency programmatically, say, from Arduino.
A rather cheap solution (a jumper would be much more convenient) is a "cut this wire if you want to use an external power source (rather than USB power). I am going to use an external power source, so I took a knife and cut the wire.
A VERY important note: if you use NodeMCU as a controller, it can not provide 5V power for generator, so you need a separate power source. One can think that it is possible to do with Arduino's provided 5V: the answer is NO. As you connect Arduino's 5V as a power source, the generator drains too much power and attemp to upload a sketch fails with something like:
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00
At the photo below, ypu can see Arduino powered by USB from the PC, while the generator is powered through a separate 5V power sourcs: this approach works fine.
The following is a surprisingly detailed description I have copied from Ali (usually they have no descriptions whatsoever):
Two independent generators, you can set frequency and working cycle.
...
Frequency is represented as three ranges:
Example:
"100" means that the frequency is 100 Hz;
"54,1" means 54,1 kHz;
"1.2.4" means 124 kHz;
Working cycle is in range 0 - 100;
All three frequences of the working cycle are the same, all parameters are not energy dependent.
Module parameters:
Working voltage is 5 - 30V, micro USB power is supposed to be 5V;
Frequency range 1 Hz - 150 kHz;
Frequency is within ± 2%;
Output current: <30mA;
Output voltage: 5V (can be set);
Temperature range: -30 ~ +70°;
Setup:
The module has 3 setup buttons: set, up, down;
Press [Set] to select one of four parameters: (FR1: frequency PWM1; dU1: working cycle PWM1;
FR2: frequency PWM2; dU2: working cycle PWM2), before parameters are set, the corresponding name will flash.
Set [Up], [Dn], to change the parameter value (long press is supported).
Two independent outputs, each can be set separately, (XXX: 1 Hz ~ 999 Hz; X X.X: 0,1 Hz ~ 99,9 Hz; X.X.X .: 1 kHz ~ 150 kHz);
Serial control
Data transfer speed at 9600 bits per second;
Data bits: 8
Stop bits: 1
Parity: no
Flow control: no
1. Setting frequency
«S1FXXXT»: setting PWM1 XXX Hz (001 ~ 999)
«S1FXX.XT»: PWM1 X X.X kHz (00,1 ~ 99,9)
«S1F: X.X.X.T»: PWM1 XXX kHz (001 ~ 150 ..)
'S1': PWM1
'S2': PWM2
'F': frequency
'D': working cycle
'T'-flag of the end of command
Setting the working cycle
«S1DXXXT»: setting the working cycle PWM1 XXX; (001 ~ 100)
"S2DXXXT": PWM2 working cycle XXX; (001 ~ 100)
In this particular project I used Arduino Uno, it only has one pair of serial pins: 0(RX) and 1(TX). The following program sets frequency from 50 Hz to 900 Hz, and then to 50 Hz again, in cycle. It also can optionally blink a diode, which is just a decoration.
Note that I am not sending any logs to PC by Serial: serial is used to control the generator.